ludic/examples/lang
Orkuncakilkaya 5d34d0fd09 escape (fix): a function taken as a value keeps what it returns, and an entry is walked
Two more holes of the arena's family, found from ECS's births:
- a function called through a function value (UiClass.make's cmp_x_new, a step list, a System's tick)
  has its result flow nowhere the analysis can see, so what it returned looked LOCAL - and a caller
  keeping it (ludic.ui's instance table) would keep scratch. Every function taken as a value (fn f)
  now has its result kept.
- an entry block has no name, and the analysis only walked named declarations: what an entry stored
  was never seen. It is walked now.
examples/lang/arena_fnval.ludic (a factory in a field, its records kept by a pool across frames)
crashed poisoned before and prints '5 1053' as the heap does now; in ludic-dev test. Maroon Lake:
component constructors are kept, not births (birth_leaks 115 -> 103); what fn values return is kept
(frame_allocs 194 -> 210, frame_keeps 151 -> 162); 5293 sites local, 6586 kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 20:10:18 +03:00
..
data feat(lang): L9 resource files - registry ... from 2026-09-24 14:00:20 +03:00
aliases.ludic feat(lang): L6 namespaces declared in Ludic - alias 2026-09-24 02:40:57 +03:00
alloc_fence.ludic fence (25.1): every allocation goes through the fence - sites, frame judging, census, callers 2026-09-28 15:35:29 +03:00
alloc_fence_auto.ludic fence (25.1): every allocation goes through the fence - sites, frame judging, census, callers 2026-09-28 15:35:29 +03:00
alloc_fence_declared.ludic fence: declared bytes are never judged nor listed; the scan's sites sorted by bytes, as many as asked, and all to a file 2026-09-28 18:03:00 +03:00
alloc_fence_leak.ludic fence (25.1c): the census reads the heap outside Ludic's blocks; blocks counted at malloc's own size 2026-09-28 15:38:13 +03:00
annotations.ludic feat(compiler): list literals, typed compound assignment, file:line diagnostics 2026-09-05 01:12:16 +03:00
arena_defaults.ludic escape (fix): a node walked more than once is scratch only if every walk found it LOCAL 2026-09-28 17:17:33 +03:00
arena_fnval.ludic escape (fix): a function taken as a value keeps what it returns, and an entry is walked 2026-09-28 20:10:18 +03:00
arena_pool.ludic escape (fix): the arena took ludic.ui's pooled nodes - a generic's call and an unknown callee now keep what they are handed 2026-09-28 17:13:05 +03:00
checked.ludic feat(lang): L4 type checker between parse and emit 2026-09-24 01:34:49 +03:00
defaults.ludic feat(lang): L11 views and templates - the UI is markup, not code 2026-09-24 15:58:47 +03:00
detach.ludic refactor(cli)!: split the contributor tool out of the ludic CLI 2026-09-05 23:15:12 +03:00
floats.ludic wip(0.S3): packages and examples migrated again from their pre-0.S sources in one run 2026-09-25 15:31:34 +03:00
generics.ludic feat(lang): L5 generic records and functions 2026-09-24 02:21:15 +03:00
json_saves.ludic runtime: Json.write_file, and Json.encode through a kept buffer 2026-09-28 15:32:36 +03:00
lifecycle.ludic chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30) 2026-08-30 18:54:21 +03:00
long_literals.ludic wip(0.S3): packages and examples migrated again from their pre-0.S sources in one run 2026-09-25 15:31:34 +03:00
nested_templates.ludic fix(lang): a template inside another's hole, and integer literals past 2^31 - 1 2026-09-25 08:10:46 +03:00
offline_rewards.ludic chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30) 2026-08-30 18:54:21 +03:00
operators.ludic feat(compiler): list literals, typed compound assignment, file:line diagnostics 2026-09-05 01:12:16 +03:00
qdecl.ludic feat(compiler): list literals, typed compound assignment, file:line diagnostics 2026-09-05 01:12:16 +03:00
reason.ludic refactor(cli)!: split the contributor tool out of the ludic CLI 2026-09-05 23:15:12 +03:00
registry.ludic feat(lang): L8 registries by declaration - registry and def 2026-09-24 13:34:51 +03:00
resources.ludic feat(lang): L9 resource files - registry ... from 2026-09-24 14:00:20 +03:00
rng_demo.ludic chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30) 2026-08-30 18:54:21 +03:00
runtime_temps.ludic runtime: Log, DateTime.format, Input.text, Path, Mime, Fs, Os and Text keep nothing per call 2026-09-28 13:55:49 +03:00
scenes.ludic wip(0.S3): packages and examples migrated again from their pre-0.S sources in one run 2026-09-25 15:31:34 +03:00
string_temps.ludic Os.platform/arch uname once; render3d primes a new buffer's Metal buffer 2026-09-28 13:34:45 +03:00
strings.ludic feat(compiler): list literals, typed compound assignment, file:line diagnostics 2026-09-05 01:12:16 +03:00
time_demo.ludic chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30) 2026-08-30 18:54:21 +03:00
toggle.ludic chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30) 2026-08-30 18:54:21 +03:00