ludic/selfhost
Orkuncakilkaya 1cc507e181 escape: a value of a primitive type holds no reference - no flow, no store
The analysis gives each local its declared or inferred type (a record's field, a list's element,
a call's result, words/floats) and takes a value whose type is a number or a bool out of every flow
and store: a float copied out of a frame's floats into a state's no longer makes the frame's list
kept (shadow_fit, water_reflection_pass, layer_partition_lods). frame_keeps 190 -> 181 on the game;
birth_leaks 564 -> 581, the lists that copy was hiding now seen as made and dropped outside a frame.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 16:52:24 +03:00
..
backend escape: a value of a primitive type holds no reference - no flow, no store 2026-09-28 16:52:24 +03:00
check region rule (25.3c): keep() and intern(), frame_keeps, and --arena-strict 2026-09-28 16:33:53 +03:00
frontend capacities (25.5a): @max(n) on a list field, and a full table is a failure 2026-09-28 16:43:02 +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 escape: a value of a primitive type holds no reference - no flow, no store 2026-09-28 16:52:24 +03:00
ludicc.win.seed.ll escape: a value of a primitive type holds no reference - no flow, no store 2026-09-28 16:52:24 +03:00
main.ludic region rule (25.3c): keep() and intern(), frame_keeps, and --arena-strict 2026-09-28 16:33:53 +03:00