escape (fix): a node walked more than once is scratch only if every walk found it LOCAL
A field's default is one expression, walked at every 'new' of its record: marked LOCAL by a frame's
temporary, it stayed marked when a record a pool keeps was made from it, and that record's list came
from the frame's scratch. The marks are now taken off any node one walk found kept.
examples/lang/arena_defaults.ludic is the case (a pool's record made in frame 3, a temporary of the
same type every frame): foundations 1315baf crashes on it poisoned; this prints '497 124747', as the
heap does. In ludic-dev test.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
1315baf332
commit
bad7c4a255
5 changed files with 44624 additions and 44209 deletions
44397
selfhost/ludicc.seed.ll
44397
selfhost/ludicc.seed.ll
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue