You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: exempt bootstrap-path extensions from the resolution access tripwire
Compiling `Init.Prelude` for stage 2 panicked on the extension access tripwire: `Environment.find?` consults the reserved-name predicates on lookup misses, also inside a resolution search, and the predicates (and their realization-action preludes) read their registering module's extensions. These paths are only exercised during bootstrapping, so the stage 1 test suite never reached them; CI builds stage 2 for this branch because `stage0/src/stdlib_flags.h` differs.
Register the involved extensions as `.exempt`, each of which is monotone and keyed by declarations that must exist before any query can observe them: `reservedNamePredicatesExt` (fixed at initialization), `defHeightOverrideExt`, `methodSpecsAttr` (threading `tcResolutionAccess` through `ParametricAttributeImpl`), `eqnsExt`/`eqnOptionsExt`, `matchEqnsExt`, `sparseCasesOnInfoExt`/`sparseCasesOnCacheExt`, and the partial-fixpoint `eqnInfoExt`. Realization bodies themselves run on the realization context's environment, which is never armed, so no further classification is needed there. Verified by a full local stage 2 build (previously failing at `Init.Prelude`, now clean).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments