This patchset adds better support for non-zero lower bound arrays. Specifically, the functions sort, sort!, restricted-vector-sort!, array-slice-for-each, and truncated-print from (ice-9 pretty print) now support non-zero lower bound arrays.
The patchset also adds support for bitvectors in truncated-print and completes the removal of uniform-vector-read!/write, which were still present in the manual. Finally, the patch installs the module (ice-9 arrays) with two (I think rather obvious) functions, array-copy and typed-array-copy. This module already existed in the tree, it just wasn't installed. (ice-9 arrays) also includes two private functions, array-print-prefix and array-print. These functions are meant to replace the C implementation in arrays.c (scm_i_print_array), but I haven't completed the replacement as the Guile version is about 3x slower in my benchmarks. However, array-print-prefix is used internally by both truncated-print and scm_i_print_array, and I believe that it will be possible to make array-print faster in the future. Regards Daniel