mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-03-10 15:10:25 -07:00
The compiler was coercing base strings to extended strings when encountering them as literal objects in compiled files. According to CLHS 3.2.4.2.2, we need to preserve the actual element type (after upgrading) of arrays during compilation. For ECL, the actual array element type of a base-string is base-char and therefore we can't change this to an extended string. Actually fixing this requires some work since we use the reader to store a printed representation of the string in the compiled file. The reader string syntax always returns an extended string (There is a comment in the code which claims that this is implied by CLHS 2.4.5. I am not quite sure if that is really true but for backwards compatibility I don't want to change this). We thus introduce a new syntax #"..." for base strings which is used when reading objects from compiled files. To prevent the new syntax from leaking outside of this context, we also introduce a new readtable. |
||
|---|---|---|
| .. | ||
| auxiliary | ||
| normal-tests | ||
| stress-tests | ||
| 1am.lisp | ||
| 2am.lisp | ||
| ansi-test-expected-failures.sexp | ||
| config.lsp.in | ||
| cross-compile.lisp | ||
| doit.lsp | ||
| ecl-tests.asd | ||
| ecl-tests.lisp | ||
| Makefile.in | ||
| universe.lisp | ||