>From 5c509db4db65e0078bbce53f776f0e9767dfb6de Mon Sep 17 00:00:00 2001
From: AwesomeAdam54321 <[email protected]>
Date: Mon, 9 Nov 2026 11:07:16 +0800
Subject: [PATCH] runtime: Add `bitvector` procedure.

* src/runtime/bitstr.scm: Define `bitvector` procedure.
* src/runtime/runtime.pkg: Export it.
---
 src/runtime/bitstr.scm  | 9 ++++++++-
 src/runtime/runtime.pkg | 1 +
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/runtime/bitstr.scm b/src/runtime/bitstr.scm
index 9d8ba4aa1..d4aa6d2f5 100644
--- a/src/runtime/bitstr.scm
+++ b/src/runtime/bitstr.scm
@@ -114,4 +114,11 @@ USA.
        (nbits (bit-string-length bit-string)))
     (if (bit-string-ref bit-string (-1+ nbits))        ;Sign bit.
        (- unsigned-result (expt 2 nbits))
-       unsigned-result)))
\ No newline at end of file
+       unsigned-result)))
+
+(define (bitvector . bits)
+  (unsigned-integer->bit-string
+   (length bits)
+   (string->number
+    (list->string
+     (map (lambda (x) (if x #\1 #\0)) bits)) 2)))
diff --git a/src/runtime/runtime.pkg b/src/runtime/runtime.pkg
index 4aa487c40..5be481ca1 100644
--- a/src/runtime/runtime.pkg
+++ b/src/runtime/runtime.pkg
@@ -114,6 +114,7 @@ USA.
          read-bits!
          signed-integer->bit-string
          unsigned-integer->bit-string
+         bitvector
          write-bits!))
 
 (define-package (runtime blowfish)
-- 
2.55.0

Reply via email to