mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-25 14:01:07 -08:00
The .byte_stack is used only by files to: a) unread a single octet when we use fallback LISTEN implementation b) unread bytes that make a character when UNREAD-CHAR is used The latter is important to transcode characters from one external format to another (i.e see the test external-format.0003-transcode-read-char). This commit improves the function unread-byte to do the same brinding bivalent streams almost to parity with regard to that implementation (see next commit). That makes the implementation of eformat cleaner, .byte_stack more self-contained, and saves us consing new byte stack for sequence streams (where it was simply ignored, not to mention not entirely correct - because we've used a .byte_stack length to decrement the pointer position while the byte could have more bits than one octet). Other optimizations that could be done here: - make the byte stack an adjustable vector to avoid consing on each unread |
||
|---|---|---|
| .. | ||
| bdwgc | ||
| c | ||
| clos | ||
| cmp | ||
| doc | ||
| ecl | ||
| gmp | ||
| h | ||
| libffi | ||
| lsp | ||
| tests | ||
| util | ||
| aclocal.m4 | ||
| bare.lsp.in | ||
| compile.lsp.in | ||
| config.guess | ||
| config.sub | ||
| configure | ||
| configure.ac | ||
| install.sh | ||
| Makefile.in | ||