ebfd8c36522e608dc974b5e892b1216793dfbad6
vstr now copies the input bytes into the trans arena and promote_v does the same into perm at the top-level boundary. STR cells used to borrow the lexer's input slice; the REPL's buf-shift between forms overwrote those bytes, so a top-level (define x "...") would print garbage after the next read. Mirror of Hare's strings::dup, arena-routed so the bytes share the cell's lifetime. Parser learns dotted-pair literals: '(a b . c) splices the tail into the cdr of the last cons. A bare '.' inside a list lexes as tkind.DOT; outside a list it's still a parser error. Pre-fix the '.' lexed as a one-byte SYM, producing a 3-element proper list. Drop the unused args_to_slice — eval inlines on purpose (the wwstage cgen drops slice.len through a tagged-union return). Tests: 18 new probes (str-survives-3-defines, str-from-lambda, dotted-pair walk + error edges) + a check_str helper. 101/101.
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%