ludic/selfhost/backend
Orkuncakilkaya 8384ad3215 feat(compiler): the built-in ECS's stores grow - 100 000 entities, where 1024 was the wall
Every per-entity store (@S_ components, @H_ flags, alive, kind, freelist, owners) is a heap block
L_grow doubles from 1024 as L_alloc hands out a slot past it, the new slots zeroed; each site loads
the store's base where it indexes it (ecs_base, its registers %ecsb* so a raw function's t0 labels
cannot collide). Prop.has bounds against @L_cap, Pool.capacity answers it, a mod's registered
stores grow with the rest, every main grows the stores once before anything reads them. A snapshot
records its slot count first and a load grows to it before reading back. The overflow stop of
1c7ce84 is gone with the wall. ludic-dev test 305 passed, selfhost-test 33 passed; 1000 / 5000 /
100000 entities spawn and count.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 22:53:24 +03:00
..
game feat(compiler): the built-in ECS's stores grow - 100 000 entities, where 1024 was the wall 2026-09-27 22:53:24 +03:00
stdlib feat(compiler): the built-in ECS's stores grow - 100 000 entities, where 1024 was the wall 2026-09-27 22:53:24 +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 feat(compiler): the built-in ECS's stores grow - 100 000 entities, where 1024 was the wall 2026-09-27 22:53:24 +03:00
emit_core.ludic fix(lang): the action drain is the program's; --check runs every check a build makes; a registry key named count is refused; name lookups are tables 2026-09-25 23:34:43 +03:00
emit_decl.ludic feat(compiler): the built-in ECS's stores grow - 100 000 entities, where 1024 was the wall 2026-09-27 22:53:24 +03:00
emit_deps.ludic feat(cli): 0.R5 - ludic deps says what a function can come to change (widest_write_reach, --wreach N); a port member and a registry field reach only themselves 2026-09-26 23:19:54 +03:00
emit_expr.ludic feat(lang): functions are values (L2), and render3d takes its scene as callbacks 2026-09-24 00:27:26 +03:00
emit_float.ludic fix(lang): a template inside another's hole, and integer literals past 2^31 - 1 2026-09-25 08:10:46 +03:00
emit_fnval.ludic feat(compiler): a Job.parallel_for worker may read a state but not change one 2026-09-27 22:04:59 +03:00
emit_head.ludic wip(0.S3): the runtime migrated - ludic migrate state --runtime <every program>: 331 vars into 25 states (RtInputState, RtGlState, ...), 2 lets; its states are made before it boots; no module-level var is let through outside --globals 2026-09-25 16:02:12 +03:00
emit_intrin.ludic feat(render3d): Vulkan in a macOS window through MoltenVK; window built-ins take a slice's elements; the NEAR_FADE SPIR-V 2026-09-27 00:52:45 +03:00
emit_intrin2.ludic feat(render3d): Vulkan in a macOS window through MoltenVK; window built-ins take a slice's elements; the NEAR_FADE SPIR-V 2026-09-27 00:52:45 +03:00
emit_mem.ludic feat(lang): L7 memory is safe unless it says unsafe 2026-09-24 12:53:27 +03:00
emit_new.ludic feat(lang): packages count under uses; a port of defaults may go unbound 2026-09-25 05:36:11 +03:00
emit_stmt.ludic wip(0.S3): ui blocks, scene on enter/exit, hooks, machines over a state's field, namespace and engine-system injection; a reference out of a read-only state or a module let is read-only; deps counts writes into another module's state; the rejected examples hold states 2026-09-25 14:49:03 +03:00
emit_vis.ludic fix(lang): the action drain is the program's; --check runs every check a build makes; a registry key named count is refused; name lookups are tables 2026-09-25 23:34:43 +03:00