- the function that calls every reducer (and the action queue) is written in the program's own file: in the first action's file it belonged to that module, depended on every module with a reducer, and joined a game's modules into one 69-module cycle (examples/actions/modules and a ludic deps case hold it); the state instances, the queue and the reducers make no deps edges - ludicc --check / ludic build --check lower the program too and write nothing, so the code writer's refusals are in it: a bind to a function that is gone, an unknown name (and the checker now refuses fn <missing> itself); rejects bind_missing_fn, unknown_name, registry_count_key - def R count is refused: its constant would be PREFIX_COUNT, the registry's size - a file's module, package, trust and numbers-float are tables, and from the check on the lookups of functions, enums, records, globals and externs are too (tagged enums kept as a list): Maroon Lake's check-only build went from about 20 s to 7 s including lowering, its IR from about 2 minutes to under 10 s; duplicate declarations are found by table, not a pair of loops - threads.ludic's pool check gives each call a little work, so a busy machine cannot run them all on the caller before a worker wakes (it failed one run in three under load) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
856 B
bump: patch
type: fix
The action drain is the program's; --check is every check; count is not a registry key.
The function that calls every reducer is written in the program's own file, so the module that
declares the actions no longer depends on every module that reduces them (a game's base joined a
69-module cycle). ludic build --check runs the code writer's checks too - a bind to a function that
is gone, an unknown name - and still writes nothing. A registry entry keyed count is refused
(def Tools count: its constant would be TL_COUNT, which is the registry's size). And a big
program builds much faster: the emitter's and the checker's lookups by name are tables, not walks of
the whole program (on Maroon Lake a check-only build, lowering included, went from about 20 s to under 10 s, its IR from about 2 minutes to under 10 s).