Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,17 @@ cd build/release/stage2 && lake build Init.Prelude

To run tests in stage2, replace `-C build/release` from above with `-C build/release/stage2`.

### Stage2 is required for changes to olean-persisted compiler information

When a change alters information that is *persisted into `.olean` files* (e.g. a new or changed
environment extension that the compiler reads back), a stage1 test run can fail spuriously: stage1's
`src/` (including `Init`) is compiled by the **stage0** compiler, which lacks the change, so the
stage1 `lean` binary imports oleans that predate the change. In that situation the relevant tests
must be run against **stage2** instead, where the new compiler compiles everything consistently.

So: on a test failure, if the change depends on changed olean information, test stage2 instead.
Because building stage2 is expensive, **confirm with the user before switching to a stage2 build.**

## New features

When asked to implement new features:
Expand Down
Loading