feat(cli): 0.R4 - ludic deps sees through fn values (widest_reach) and lists the widest functions (--widest N, --reach N)
A step list or a registry of fn values takes no state and still reaches every state its steps take. The compiler now writes `reach <n> <function>` - every state a function can come to by a call, a `fn f` it writes or a global holding fn values it reads, to a fixed point - and ludic deps reports widest_reach beside widest_function, with how many of those states the function does not take (Maroon Lake: app_boot, 72, all 72 through fn values). --widest N lists the N functions that take the most states with what each reaches; --reach N orders them by reach. A baseline without widest_reach does not hold it until rewritten. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
2eefae0618
commit
eb1e780733
8 changed files with 45622 additions and 42625 deletions
|
|
@ -381,7 +381,12 @@ program Pack {
|
|||
|
||||
`ludic deps` reports the widest function - the most states any function or entry point of the
|
||||
program's own takes - and `--check` holds it as a ratchet like its other numbers
|
||||
(`widest_function 12` in the baseline file).
|
||||
(`widest_function 12` in the baseline file). A function value's states are supplied where it is called, so a
|
||||
step list - `let STEPS = [fn a, fn b]` walked by a function that takes nothing - hides what it
|
||||
touches; `widest_reach` is the most states any function can come to, through its calls, the `fn f`
|
||||
it writes and the globals holding fn values it reads (a registry of systems), and the report says how
|
||||
many of them it does not take itself. `ludic deps --widest N` lists the N functions that take the
|
||||
most states, each with what it reaches; `--reach N` lists them by reach.
|
||||
|
||||
### Types are checked before anything is emitted
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue