ludic/selfhost/backend
Orkuncakilkaya 2f4860ae71 @PerMap and @Chunked(n) registries: rows read per map, a state and verbs written, every map checked
- @PerMap registry R of T from "file.lres" reads <maps root>/<map>/file.lres at run time
  (package.ludic's new `maps` line, default assets/maps); @Chunked(n) one file per chunk,
  {cx}/{cz} in its name. No as PREFIX, no constants, no def, never open.
- permap_gen: state R, r_load/_clear/_find/_path; chunked: RChunk, r_in/_out/_slot/_find/
  _clear/_path; a typed reset and fill per record over lres.ludic, rows, lists and list
  records pooled per table / chunk slot, @alloc_ok on what grows at high water.
- permap_consts: lres_consts__(), the program's int and float constants by name.
- permap_check: ludicc --check reads every map directory (fields, types, constants, fn,
  @OneOf/@Range/@Ref, cross-row @Ref keys in the same map, a key twice); --no-maps skips.
- @Ref(PerMapTable) is refused on a non-string field; the schema says scope/chunk per
  registry and scope map on such a Ref, and lists the canonical @Unit spellings; any other
  @Unit spelling is a warning naming the canonical one.
- reseeded (mac + win seeds; bootstrap-cfree out.ll == seed.ll).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 21:03:56 +03:00
..
game a program's states made on first injection, and the ECS stores started at 8 slots 2026-09-29 14:14:05 +03:00
stdlib map packs: Fs.mount / Fs.unmount at run time, and a map's bakes under assets/baked/maps/<map>/ 2026-09-29 17:27:06 +03:00
emit_addr.ludic feat(lang): L11 views and templates - the UI is markup, not code 2026-09-24 15:58:47 +03:00
emit_call.ludic templates: {s} with one string hole and nothing else is a new string, not s itself - it was the one template that passed its string through (string() does), and code that wrote it as a copy kept what it then freed; the mark rides the callee, since escape analysis writes the call's uns; reseeded 2026-09-29 20:14:58 +03:00
emit_core.ludic Os.heap_relief(): the allocator's freed-but-cached memory handed back, once after a load 2026-09-29 14:30:20 +03:00
emit_decl.ludic Os.heap_relief(): the allocator's freed-but-cached memory handed back, once after a load 2026-09-29 14:30:20 +03:00
emit_deps.ludic frame allocs: a local shadowing a function is no edge, the drain's calls are no edges, HEAP keeps only a growth off the arena, and the arena starts at its first use 2026-09-28 20:23:28 +03:00
emit_escape.ludic escape (fix): kept memory is HEAP, so what is pushed through an alias of it is kept 2026-09-28 21:15:32 +03:00
emit_expr.ludic fence (25.1): every allocation goes through the fence - sites, frame judging, census, callers 2026-09-28 15:35:29 +03:00
emit_fence.ludic fence: every runtime call is its line's site, and site 0 comes back when it returns 2026-09-29 00:40:28 +03:00
emit_fence_ir.ludic intern: past its store or its table, the fence's overflow - said once 2026-09-29 00:37:56 +03:00
emit_float.ludic schema: ludicc --emit-schema / ludic schema, --check --diagnostics=json, and editor attributes 2026-09-29 18:06:54 +03:00
emit_fnval.ludic a program's states made on first injection, and the ECS stores started at 8 slots 2026-09-29 14:14:05 +03:00
emit_frame.ludic schema: ludicc --emit-schema / ludic schema, --check --diagnostics=json, and editor attributes 2026-09-29 18:06:54 +03:00
emit_head.ludic a program's states made on first injection, and the ECS stores started at 8 slots 2026-09-29 14:14:05 +03:00
emit_intrin.ludic fence: every runtime call is its line's site, and site 0 comes back when it returns 2026-09-29 00:40:28 +03:00
emit_intrin2.ludic a render3d program's window is opened by its renderer, not by the runtime before main 2026-09-29 14:19:10 +03:00
emit_lazy.ludic a program's states made on first injection, and the ECS stores started at 8 slots 2026-09-29 14:14:05 +03:00
emit_mem.ludic fence (25.1): every allocation goes through the fence - sites, frame judging, census, callers 2026-09-28 15:35:29 +03:00
emit_new.ludic capacities (25.5a): @max(n) on a list field, and a full table is a failure 2026-09-28 16:43:02 +03:00
emit_resource.ludic owned fields (25.5e): @owns(Kind) on a record's field, and owned_leaks 2026-09-28 17:01:28 +03:00
emit_schema.ludic @PerMap and @Chunked(n) registries: rows read per map, a state and verbs written, every map checked 2026-09-29 21:03:56 +03:00
emit_schema_hash.ludic Build.schema_hash(): FNV-1a 64 of the program's own schema (the bytes ludic schema prints), worked out only when a program names it, 0 under ludicc --release, which ludic bundle now passes (Mac and Windows); reseeded 2026-09-29 19:05:28 +03:00
emit_schema_ui.ludic ludic schema: a components section and a natives list (R4) 2026-09-29 19:36:04 +03:00
emit_stmt.ludic frame allocs (25.2): @frame on a step list's field, @alloc_ok on a statement, and on an exported function 2026-09-28 15:56:32 +03:00
emit_vis.ludic schema: ludicc --emit-schema / ludic schema, --check --diagnostics=json, and editor attributes 2026-09-29 18:06:54 +03:00