From 5da13e0f55ccae4d9e9f723555239f500f09c7ff Mon Sep 17 00:00:00 2001 From: mainzelm Date: Tue, 7 Jan 2003 10:30:37 +0000 Subject: [PATCH] Merged definition of byte-vector from S48 1.0. --- scheme/interfaces.scm | 4 +++- scheme/rts/low.scm | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) 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)