Artichoke State Refactor Evidence Ledger
The cross-reference timeline for Destructure State (#442) contains exactly 50 causally linked pull requests that merged before the second integration attempt (#661) opened. Their descriptions or comments identify them as extracted from, inspired by, related to, or required for #442.
The headings group pull requests by the date they opened or first cross-referenced #442. A merge may have completed later. Ryan Lopopolo authored all 50.
January 24–26
- converter syntax (#444), converter inference (#447), non-null class and module lookup (#448), exception-handler safety (#449), implicit integer conversion (#450), and hash converter allocation (#451);
- non-null VM pointers (#453), converter dependency cleanup (#455), semantic error handling (#456), safer exception raising (#457), and unused array backend removal (#458); and
- nil coercion at the API edge (#460),
to_aryerror propagation (#461), Array initialization repair (#462), warning error propagation (#463), ENV rewrite (#464), Ruby exception cleanup (#465), and boot conversion cleanup (#466).
January 27–February 23
- parser state and APIs (#467), PRNG state (#469), protected FFI calls (#470), warnings on stderr (#471), and byte-preserving warnings (#472);
- mutable evaluation (#480), the Intern capability (#481), removal of the generated converter matrix (#487), and allocating conversion traits (#488); and
- Regexp cleanup (#491), virtual-filesystem rearchitecture (#497), constant-definition capabilities (#526), and output state (#539).
March 4–May 3
- Regexp global preparation (#557), global-variable capabilities (#562), UTF-8 Regexp migration (#566), Onig Regexp migration (#571), and Regexp pattern lifetime cleanup (#613);
- MatchData rewrite (#618), interpreter-aware implicit conversions (#621), interpreter-aware Value methods (#622), Kernel rewrite (#623), core Value mutability (#630), and removing the interpreter from Value (#631); and
- safe Range detection (#635), Regexp state extraction (#643), mutable Rust-backed values (#644), path-based source loading (#652), the VFS capability boundary (#655), the IO capability (#657), the Regexp capability boundary (#658), and the PRNG capability boundary (#659).