ludic/selfhost
Orkuncakilkaya 9660587e10 compiler: free a string an expression made once it has been used
The left half of a + chain, a template's pieces and holes, a number's text and a side made only to be
compared are marked fresh and freed after the +, ==, != or print that reads them. lp_int_str and
lp_long_str move their digits to the start of the buffer, so the pointer they return is the one
malloc gave. Reseeded. examples/lang/string_temps.ludic: kept intermediates stay good, and 20,000
rounds grow the heap 0 bytes (2.9 MB before).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 12:06:45 +03:00
..
backend compiler: free a string an expression made once it has been used 2026-09-28 12:06:45 +03:00
check fix(migrate): 0.R5 - a state an argument to a C function comes out of keeps the mutability it was declared with, so --tighten leaves the mut on a wrapper writing through a native handle (phys_force) and does not add one to a query that reads through one 2026-09-27 04:23:11 +03:00
frontend Merge commit 'f104995' into lang/ecs 2026-09-28 02:02:11 +03:00
golden chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30) 2026-08-30 18:54:21 +03:00
support feat(lang): L4 type checker between parse and emit 2026-09-24 01:34:49 +03:00
tests fix(compiler): == / != on references is identity; only text compares by content 2026-09-16 16:13:31 +03:00
ludicc.seed.ll compiler: free a string an expression made once it has been used 2026-09-28 12:06:45 +03:00
ludicc.win.seed.ll compiler: free a string an expression made once it has been used 2026-09-28 12:06:45 +03:00
main.ludic merge lang/foundations into lang/native-jolt (seeds regenerated) 2026-09-27 03:20:44 +03:00