diff --git a/scheme/interfaces.scm b/scheme/interfaces.scm index c334e54..855f73f 100644 --- a/scheme/interfaces.scm +++ b/scheme/interfaces.scm @@ -141,7 +141,9 @@ byte-vector-length byte-vector-ref byte-vector-set! - make-byte-vector)) + make-byte-vector + + byte-vector)) ; Same again, but with old names for compatibility. diff --git a/scheme/rts/low.scm b/scheme/rts/low.scm index a640c11..e72ddbe 100644 --- a/scheme/rts/low.scm +++ b/scheme/rts/low.scm @@ -187,6 +187,20 @@ (define (undefine-exported-binding name) (undefine-shared-binding name #f)) +; This really shouldn't be here, but I don't know where else to put it. + +(define (byte-vector . l) + (let ((v (make-byte-vector (secret-length l 0) 0))) + (do ((i 0 (+ i 1)) + (l l (cdr l))) + ((eq? l '()) v) + (byte-vector-set! v i (car l))))) + +(define (secret-length list length) + (if (eq? list '()) + length + (secret-length (cdr list) (+ length 1)))) + ; Writing debugging messages. (define (debug-message . stuff)