make-s8vector is checking for an unsigned fill value, probably just a typo:
diff --git a/srfi-4.scm b/srfi-4.scm
index bfad8c84..2ae3733f 100644
--- a/srfi-4.scm
+++ b/srfi-4.scm
@@ -371,7 +371,7 @@ (define release-number-vector)
(if (not init)
v
(begin
- (check-uint-length init 8 'make-s8vector)
+ (check-int-length init 8 'make-s8vector)
(do ((i 0 (##core#inline "C_fixnum_plus" i 1)))
((##core#inline "C_fixnum_greater_or_equal_p" i len) v)
(##core#inline "C_u_i_s8vector_set" v i init) ) ) ) ) ) )
Diego