chibi-scheme/include/chibi
Daphne Preston-Kendal c09897c449 Add a feature to cache the most recent string index->cursor result
This is lighter-weight than building a full index->cursor table for
the string, adding a constant two words to the memory required to
store a string, as opposed to one word for every n characters. The
cached cursor is used for any string-ref operation requesting an index
after the most-recently-requested index, making potentially quadratic
repeated string-ref procedures run in linear time. In theory, it could
also use a heuristic to speed up moving backwards through the string
when it thinks that moving the old cursor backwards would be faster
than starting again at the start of the string. In practice, my
logging of when the cached cursor is actually reused during the Chibi
compilation and startup process shows that the most common case of
moving backwards is going back to the start of the string anyway.

Benchmarks to follow.
2021-12-10 21:24:05 +01:00
..
bignum.h make 9front "work" again by properly handling 64-bit typedefs 2021-02-20 17:10:43 -07:00
eval.h don't export sexp_primitive_opcodes (issue #669) 2020-07-14 10:08:21 +09:00
features.h Add a feature to cache the most recent string index->cursor result 2021-12-10 21:24:05 +01:00
gc_heap.h don't declare image loading operations if not enabled (issue #714) 2020-11-25 23:16:12 +09:00
install.h.in prefer configure_file over manual file(WRITE ...) 2021-07-13 14:03:24 +01:00
sexp-huff.h Added full support for packed images, both for static and dynamic libraries. 2016-02-15 21:12:58 -05:00
sexp-hufftabdefs.h Fix build with emscripten to run chibi in the browser. 2020-05-17 10:52:46 +02:00
sexp-hufftabs.c Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
sexp-hufftabs.h Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
sexp-unhuff.h Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
sexp.h Add a feature to cache the most recent string index->cursor result 2021-12-10 21:24:05 +01:00