~ chicken-core (master) e438ca5099df3a5468abe83bd035db2d725973db


commit e438ca5099df3a5468abe83bd035db2d725973db
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Jul 30 11:44:17 2026 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Thu Jul 30 11:44:17 2026 +0200

    correct rewrite rules for all chicken.number-vector operations

diff --git a/c-platform.scm b/c-platform.scm
index ea077314..becfc127 100644
--- a/c-platform.scm
+++ b/c-platform.scm
@@ -1079,76 +1079,76 @@
 (rewrite 'chicken.bytevector#bytevector-length 2 1 "C_block_size" #f)
 
 ;; TODO: Move this stuff to types.db
-(rewrite 'chicken.number-vectors8vector-ref 2 2 "C_u_i_s8vector_ref" #f)
-(rewrite 'chicken.number-vectors8vector-ref 2 2 "C_i_s8vector_ref" #t)
-(rewrite 'chicken.number-vectoru16vector-ref 2 2 "C_u_i_u16vector_ref" #f)
-(rewrite 'chicken.number-vectoru16vector-ref 2 2 "C_i_u16vector_ref" #t)
-(rewrite 'chicken.number-vectors16vector-ref 2 2 "C_u_i_s16vector_ref" #f)
-(rewrite 'chicken.number-vectors16vector-ref 2 2 "C_i_s16vector_ref" #t)
-
-(rewrite 'chicken.number-vectoru32vector-ref 16 2 "C_a_i_u32vector_ref" #t min-words-per-bignum)
-(rewrite 'chicken.number-vectors32vector-ref 16 2 "C_a_i_s32vector_ref" #t min-words-per-bignum)
-
-(rewrite 'chicken.number-vectorf32vector-ref 16 2 "C_a_u_i_f32vector_ref" #f words-per-flonum)
-(rewrite 'chicken.number-vectorf32vector-ref 16 2 "C_a_i_f32vector_ref" #t words-per-flonum)
-(rewrite 'chicken.number-vectorf64vector-ref 16 2 "C_a_u_i_f64vector_ref" #f words-per-flonum)
-(rewrite 'chicken.number-vectorf64vector-ref 16 2 "C_a_i_f64vector_ref" #t words-per-flonum)
-
-(rewrite 'chicken.number-vectoru8vector-set! 2 3 "C_u_i_u8vector_set" #f)
-(rewrite 'chicken.number-vectoru8vector-set! 2 3 "C_i_u8vector_set" #t)
-(rewrite 'chicken.number-vectors8vector-set! 2 3 "C_u_i_s8vector_set" #f)
-(rewrite 'chicken.number-vectors8vector-set! 2 3 "C_i_s8vector_set" #t)
-(rewrite 'chicken.number-vectoru16vector-set! 2 3 "C_u_i_u16vector_set" #f)
-(rewrite 'chicken.number-vectoru16vector-set! 2 3 "C_i_u16vector_set" #t)
-(rewrite 'chicken.number-vectors16vector-set! 2 3 "C_u_i_s16vector_set" #f)
-(rewrite 'chicken.number-vectors16vector-set! 2 3 "C_i_s16vector_set" #t)
-(rewrite 'chicken.number-vectoru32vector-set! 2 3 "C_u_i_u32vector_set" #f)
-(rewrite 'chicken.number-vectoru32vector-set! 2 3 "C_i_u32vector_set" #t)
-(rewrite 'chicken.number-vectors32vector-set! 2 3 "C_u_i_s32vector_set" #f)
-(rewrite 'chicken.number-vectors32vector-set! 2 3 "C_i_s32vector_set" #t)
-(rewrite 'chicken.number-vectoru64vector-set! 2 3 "C_u_i_u64vector_set" #f)
-(rewrite 'chicken.number-vectoru64vector-set! 2 3 "C_i_u64vector_set" #t)
-(rewrite 'chicken.number-vectors64vector-set! 2 3 "C_u_i_s64vector_set" #f)
-(rewrite 'chicken.number-vectors64vector-set! 2 3 "C_i_s64vector_set" #t)
-(rewrite 'chicken.number-vectorf32vector-set! 2 3 "C_u_i_f32vector_set" #f)
-(rewrite 'chicken.number-vectorf32vector-set! 2 3 "C_i_f32vector_set" #t)
-(rewrite 'chicken.number-vectorf64vector-set! 2 3 "C_u_i_f64vector_set" #f)
-(rewrite 'chicken.number-vectorf64vector-set! 2 3 "C_i_f64vector_set" #t)
-
-(rewrite 'chicken.number-vectoru8vector-length 2 1 "C_u_i_bytevector_length" #f)
-(rewrite 'chicken.number-vectoru8vector-length 2 1 "C_i_bytevector_length" #t)
-(rewrite 'chicken.number-vectors8vector-length 2 1 "C_u_i_s8vector_length" #f)
-(rewrite 'chicken.number-vectors8vector-length 2 1 "C_i_s8vector_length" #t)
-(rewrite 'chicken.number-vectoru16vector-length 2 1 "C_u_i_u16vector_length" #f)
-(rewrite 'chicken.number-vectoru16vector-length 2 1 "C_i_u16vector_length" #t)
-(rewrite 'chicken.number-vectors16vector-length 2 1 "C_u_i_s16vector_length" #f)
-(rewrite 'chicken.number-vectors16vector-length 2 1 "C_i_s16vector_length" #t)
-(rewrite 'chicken.number-vectoru32vector-length 2 1 "C_u_i_u32vector_length" #f)
-(rewrite 'chicken.number-vectoru32vector-length 2 1 "C_i_u32vector_length" #t)
-(rewrite 'chicken.number-vectors32vector-length 2 1 "C_u_i_s32vector_length" #f)
-(rewrite 'chicken.number-vectors32vector-length 2 1 "C_i_s32vector_length" #t)
-(rewrite 'chicken.number-vectoru64vector-length 2 1 "C_u_i_u64vector_length" #f)
-(rewrite 'chicken.number-vectoru64vector-length 2 1 "C_i_u64vector_length" #t)
-(rewrite 'chicken.number-vectors64vector-length 2 1 "C_u_i_s64vector_length" #f)
-(rewrite 'chicken.number-vectors64vector-length 2 1 "C_i_s64vector_length" #t)
-(rewrite 'chicken.number-vectorf32vector-length 2 1 "C_u_i_f32vector_length" #f)
-(rewrite 'chicken.number-vectorf32vector-length 2 1 "C_i_f32vector_length" #t)
-(rewrite 'chicken.number-vectorf64vector-length 2 1 "C_u_i_f64vector_length" #f)
-(rewrite 'chicken.number-vectorf64vector-length 2 1 "C_i_f64vector_length" #t)
+(rewrite 'chicken.number-vector#s8vector-ref 2 2 "C_u_i_s8vector_ref" #f)
+(rewrite 'chicken.number-vector#s8vector-ref 2 2 "C_i_s8vector_ref" #t)
+(rewrite 'chicken.number-vector#u16vector-ref 2 2 "C_u_i_u16vector_ref" #f)
+(rewrite 'chicken.number-vector#u16vector-ref 2 2 "C_i_u16vector_ref" #t)
+(rewrite 'chicken.number-vector#s16vector-ref 2 2 "C_u_i_s16vector_ref" #f)
+(rewrite 'chicken.number-vector#s16vector-ref 2 2 "C_i_s16vector_ref" #t)
+
+(rewrite 'chicken.number-vector#u32vector-ref 16 2 "C_a_i_u32vector_ref" #t min-words-per-bignum)
+(rewrite 'chicken.number-vector#s32vector-ref 16 2 "C_a_i_s32vector_ref" #t min-words-per-bignum)
+
+(rewrite 'chicken.number-vector#f32vector-ref 16 2 "C_a_u_i_f32vector_ref" #f words-per-flonum)
+(rewrite 'chicken.number-vector#f32vector-ref 16 2 "C_a_i_f32vector_ref" #t words-per-flonum)
+(rewrite 'chicken.number-vector#f64vector-ref 16 2 "C_a_u_i_f64vector_ref" #f words-per-flonum)
+(rewrite 'chicken.number-vector#f64vector-ref 16 2 "C_a_i_f64vector_ref" #t words-per-flonum)
+
+(rewrite 'chicken.number-vector#u8vector-set! 2 3 "C_u_i_u8vector_set" #f)
+(rewrite 'chicken.number-vector#u8vector-set! 2 3 "C_i_u8vector_set" #t)
+(rewrite 'chicken.number-vector#s8vector-set! 2 3 "C_u_i_s8vector_set" #f)
+(rewrite 'chicken.number-vector#s8vector-set! 2 3 "C_i_s8vector_set" #t)
+(rewrite 'chicken.number-vector#u16vector-set! 2 3 "C_u_i_u16vector_set" #f)
+(rewrite 'chicken.number-vector#u16vector-set! 2 3 "C_i_u16vector_set" #t)
+(rewrite 'chicken.number-vector#s16vector-set! 2 3 "C_u_i_s16vector_set" #f)
+(rewrite 'chicken.number-vector#s16vector-set! 2 3 "C_i_s16vector_set" #t)
+(rewrite 'chicken.number-vector#u32vector-set! 2 3 "C_u_i_u32vector_set" #f)
+(rewrite 'chicken.number-vector#u32vector-set! 2 3 "C_i_u32vector_set" #t)
+(rewrite 'chicken.number-vector#s32vector-set! 2 3 "C_u_i_s32vector_set" #f)
+(rewrite 'chicken.number-vector#s32vector-set! 2 3 "C_i_s32vector_set" #t)
+(rewrite 'chicken.number-vector#u64vector-set! 2 3 "C_u_i_u64vector_set" #f)
+(rewrite 'chicken.number-vector#u64vector-set! 2 3 "C_i_u64vector_set" #t)
+(rewrite 'chicken.number-vector#s64vector-set! 2 3 "C_u_i_s64vector_set" #f)
+(rewrite 'chicken.number-vector#s64vector-set! 2 3 "C_i_s64vector_set" #t)
+(rewrite 'chicken.number-vector#f32vector-set! 2 3 "C_u_i_f32vector_set" #f)
+(rewrite 'chicken.number-vector#f32vector-set! 2 3 "C_i_f32vector_set" #t)
+(rewrite 'chicken.number-vector#f64vector-set! 2 3 "C_u_i_f64vector_set" #f)
+(rewrite 'chicken.number-vector#f64vector-set! 2 3 "C_i_f64vector_set" #t)
+
+(rewrite 'chicken.number-vector#u8vector-length 2 1 "C_u_i_bytevector_length" #f)
+(rewrite 'chicken.number-vector#u8vector-length 2 1 "C_i_bytevector_length" #t)
+(rewrite 'chicken.number-vector#s8vector-length 2 1 "C_u_i_s8vector_length" #f)
+(rewrite 'chicken.number-vector#s8vector-length 2 1 "C_i_s8vector_length" #t)
+(rewrite 'chicken.number-vector#u16vector-length 2 1 "C_u_i_u16vector_length" #f)
+(rewrite 'chicken.number-vector#u16vector-length 2 1 "C_i_u16vector_length" #t)
+(rewrite 'chicken.number-vector#s16vector-length 2 1 "C_u_i_s16vector_length" #f)
+(rewrite 'chicken.number-vector#s16vector-length 2 1 "C_i_s16vector_length" #t)
+(rewrite 'chicken.number-vector#u32vector-length 2 1 "C_u_i_u32vector_length" #f)
+(rewrite 'chicken.number-vector#u32vector-length 2 1 "C_i_u32vector_length" #t)
+(rewrite 'chicken.number-vector#s32vector-length 2 1 "C_u_i_s32vector_length" #f)
+(rewrite 'chicken.number-vector#s32vector-length 2 1 "C_i_s32vector_length" #t)
+(rewrite 'chicken.number-vector#u64vector-length 2 1 "C_u_i_u64vector_length" #f)
+(rewrite 'chicken.number-vector#u64vector-length 2 1 "C_i_u64vector_length" #t)
+(rewrite 'chicken.number-vector#s64vector-length 2 1 "C_u_i_s64vector_length" #f)
+(rewrite 'chicken.number-vector#s64vector-length 2 1 "C_i_s64vector_length" #t)
+(rewrite 'chicken.number-vector#f32vector-length 2 1 "C_u_i_f32vector_length" #f)
+(rewrite 'chicken.number-vector#f32vector-length 2 1 "C_i_f32vector_length" #t)
+(rewrite 'chicken.number-vector#f64vector-length 2 1 "C_u_i_f64vector_length" #f)
+(rewrite 'chicken.number-vector#f64vector-length 2 1 "C_i_f64vector_length" #t)
 
 (rewrite 'chicken.base#atom? 17 1 "C_i_not_pair_p")
 
-(rewrite 'chicken.number-vectors8vector->bytevector/shared 7 1 "C_slot" 1 #f)
-(rewrite 'chicken.number-vectoru16vector->bytevector/shared 7 1 "C_slot" 1 #f)
-(rewrite 'chicken.number-vectors16vector->bytevector/shared 7 1 "C_slot" 1 #f)
-(rewrite 'chicken.number-vectoru32vector->bytevector/shared 7 1 "C_slot" 1 #f)
-(rewrite 'chicken.number-vectors32vector->bytevector/shared 7 1 "C_slot" 1 #f)
-(rewrite 'chicken.number-vectoru64vector->bytevector/shared 7 1 "C_slot" 1 #f)
-(rewrite 'chicken.number-vectors64vector->bytevector/shared 7 1 "C_slot" 1 #f)
-(rewrite 'chicken.number-vectorf32vector->bytevector/shared 7 1 "C_slot" 1 #f)
-(rewrite 'chicken.number-vectorf64vector->bytevector/shared 7 1 "C_slot" 1 #f)
-(rewrite 'chicken.number-vectorc64vector->bytevector/shared 7 1 "C_slot" 1 #f)
-(rewrite 'chicken.number-vectorc128vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#s8vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#u16vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#s16vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#u32vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#s32vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#u64vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#s64vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#f32vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#f64vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#c64vector->bytevector/shared 7 1 "C_slot" 1 #f)
+(rewrite 'chicken.number-vector#c128vector->bytevector/shared 7 1 "C_slot" 1 #f)
 
 (let ()
   (define (rewrite-make-vector db classargs cont callargs)
@@ -1207,18 +1207,18 @@
     (scheme#cdr . scheme#set-cdr!)
     (scheme#string-ref . scheme#string-set!)
     (scheme#vector-ref . scheme#vector-set!)
-    (chicken.number-vectoru8vector-ref . chicken.number-vectoru8vector-set!)
-    (chicken.number-vectors8vector-ref . chicken.number-vectors8vector-set!)
-    (chicken.number-vectoru16vector-ref . chicken.number-vectoru16vector-set!)
-    (chicken.number-vectors16vector-ref . chicken.number-vectors16vector-set!)
-    (chicken.number-vectoru32vector-ref . chicken.number-vectoru32vector-set!)
-    (chicken.number-vectors32vector-ref . chicken.number-vectors32vector-set!)
-    (chicken.number-vectoru64vector-ref . chicken.number-vectoru64vector-set!)
-    (chicken.number-vectors64vector-ref . chicken.number-vectors64vector-set!)
-    (chicken.number-vectorf32vector-ref . chicken.number-vectorf32vector-set!)
-    (chicken.number-vectorf64vector-ref . chicken.number-vectorf64vector-set!)
-    (chicken.number-vectorc64vector-ref . chicken.number-vectorc64vector-set!)
-    (chicken.number-vectorc128vector-ref . chicken.number-vectorc128vector-set!)
+    (chicken.number-vector#u8vector-ref . chicken.number-vector#u8vector-set!)
+    (chicken.number-vector#s8vector-ref . chicken.number-vector#s8vector-set!)
+    (chicken.number-vector#u16vector-ref . chicken.number-vector#u16vector-set!)
+    (chicken.number-vector#s16vector-ref . chicken.number-vector#s16vector-set!)
+    (chicken.number-vector#u32vector-ref . chicken.number-vector#u32vector-set!)
+    (chicken.number-vector#s32vector-ref . chicken.number-vector#s32vector-set!)
+    (chicken.number-vector#u64vector-ref . chicken.number-vector#u64vector-set!)
+    (chicken.number-vector#s64vector-ref . chicken.number-vector#s64vector-set!)
+    (chicken.number-vector#f32vector-ref . chicken.number-vector#f32vector-set!)
+    (chicken.number-vector#f64vector-ref . chicken.number-vector#f64vector-set!)
+    (chicken.number-vector#c64vector-ref . chicken.number-vector#c64vector-set!)
+    (chicken.number-vector#c128vector-ref . chicken.number-vector#c128vector-set!)
     (chicken.locative#locative-ref . chicken.locative#locative-set!)
     (chicken.memory#pointer-u8-ref . chicken.memory#pointer-u8-set!)
     (chicken.memory#pointer-s8-ref . chicken.memory#pointer-s8-set!)
Trap