diff --git a/module/language/cps/effects-analysis.scm b/module/language/cps/effects-analysis.scm index 4ca6e9815..3c2b5da54 100644 --- a/module/language/cps/effects-analysis.scm +++ b/module/language/cps/effects-analysis.scm @@ -364,6 +364,8 @@ ;; Bytevectors. (define-primitive-effects + ((bytevector-length _) (cause &type-check)) + ((bv-u8-ref bv n) (logior (cause &type-check) &bytevector)) ((bv-s8-ref bv n) (logior (cause &type-check) &bytevector)) ((bv-u16-ref bv n) (logior (cause &type-check) &bytevector)) diff --git a/module/language/tree-il/primitives.scm b/module/language/tree-il/primitives.scm index 170338425..a959df25d 100644 --- a/module/language/tree-il/primitives.scm +++ b/module/language/tree-il/primitives.scm @@ -94,6 +94,8 @@ allocate-struct struct-vtable make-struct struct-ref struct-set! + bytevector-length + bytevector-u8-ref bytevector-u8-set! bytevector-s8-ref bytevector-s8-set! u8vector-ref u8vector-set! s8vector-ref s8vector-set! @@ -172,7 +174,7 @@ char=? char>? integer->char char->integer number->string string->number struct-vtable - length string-length vector-length + length string-length vector-length bytevector-length ;; These all should get expanded out by expand-primitives. caar cadr cdar cddr caaar caadr cadar caddr cdaar cdadr cddar cdddr