|
| 1 | +# MeTTaScript 2.3.0 |
| 2 | + |
| 3 | +Deep recursion now scales past the native stack. A reduction that nests tens of thousands of levels deep, a |
| 4 | +long grounded-operation spine or the result of a deeply recursive rule, runs on the engine's heap continuation |
| 5 | +instead of the JavaScript call stack, so it returns a value where it used to overflow. Every terminating |
| 6 | +program from 2.2.0 produces the same output, validated byte-identical across the full corpus, so upgrading is |
| 7 | +safe. |
| 8 | + |
| 9 | +## Deep computation on the heap continuation |
| 10 | + |
| 11 | +Before this release, a deeply nested reducible computation recursed to the term's depth through the evaluator |
| 12 | +and its term-walk predicates, and could exhaust the host stack before the language-level `max-stack-depth` |
| 13 | +bound applied. A reducible argument now hands off to the engine's heap-continuation driver at the depth-neutral |
| 14 | +boundary, where the current application has not taken a user-equation call lease or has tail-transferred into a |
| 15 | +constructor or grounded operation. The driver carries the same evaluation depth, bindings, state, and fuel, so |
| 16 | +`max-stack-depth` accounting is unchanged: recursion is still cut at exactly the limit you set, and that cut is |
| 17 | +deterministic and independent of the V8 stack size. |
| 18 | + |
| 19 | +The term walks a deep result drives are now iterative rather than recursive, byte-identical to before: the |
| 20 | +normal-form and type checks, structural equality (a fast recursive path with an iterative fallback), the |
| 21 | +table-key check, and the printer. A grounded-operation spine 50,000 levels deep returns its value, and the |
| 22 | +`differential`, `deterministic-depth`, and `tail-trampoline` suites confirm the behavior is unchanged. |
| 23 | + |
| 24 | +## Docs |
| 25 | + |
| 26 | +The website and README are repositioned around what the engine does: a metagraph database and reasoning engine |
| 27 | +you drive from TypeScript, with rules, recursive inference, and non-deterministic search, not only a query |
| 28 | +store. The TypeScript-first examples and the getting-started path are unchanged. |
| 29 | + |
1 | 30 | # MeTTaScript 2.2.0 |
2 | 31 |
|
3 | 32 | Exposes the import resolver as a reusable, host-agnostic function. The transitive, cycle-safe import |
|
0 commit comments