with above read-u8vector (approx 124 calls per run): ----- $ time csi -s extractor.scm #: 124 0.14s CPU time, 0.024s GC time (major), 27453/4760 mutations (total/tracked), 5/210 GCs (major/minor) real 0m5.221s user 0m0.304s sys 0m0.016s $ time csi -s extractor.scm #: 124 0.128s CPU time, 0.032s GC time (major), 27586/4777 mutations (total/tracked), 5/210 GCs (major/minor) real 0m5.211s user 0m0.284s sys 0m0.004s $ time csi -s extractor.scm #: 124 0.14s CPU time, 0.02s GC time (major), 27561/4769 mutations (total/tracked), 5/210 GCs (major/minor) real 0m5.194s user 0m0.288s sys 0m0.012s ----- with original u8vector-read: during compilation: ----- (stargate-lolevel.scm:170) in procedure call to `read-u8vector', expected argument #1 of type `fixnum', but was given an argument of type `false' ----- ----- $ time csi -s extractor.scm #: 124 0.56s CPU time, 0.028s GC time (major), 44719/8079 mutations (total/tracked), 6/4362 GCs (major/minor) real 0m5.554s user 0m0.700s sys 0m0.020s $ time csi -s extractor.scm #: 124 0.596s CPU time, 0.036s GC time (major), 44745/8017 mutations (total/tracked), 6/4364 GCs (major/minor) real 0m5.586s user 0m0.724s sys 0m0.028s $ time csi -s extractor.scm #: 124 0.588s CPU time, 0.028s GC time (major), 44745/8017 mutations (total/tracked), 6/4364 GCs (major/minor) real 0m5.582s user 0m0.724s sys 0m0.020s -----