Skip to main content

stage2-olean-test

Diagnose a spurious stage1 test failure caused by olean-persisted compiler changes. Use when a stage1 test fails unexpectedly and the change adds or modifies an environment extension or other information persisted into .olean files.

Source facts

Repository
leanprover/lean4
Last source activity
June 10, 2026 at 11:48
Detected SKILL.md language
English
Stars
9,494
Forks
1,037

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
stage2-olean-test
description
Diagnose a spurious stage1 test failure caused by olean-persisted compiler changes. Use when a stage1 test fails unexpectedly and the change adds or modifies an environment extension or other information persisted into .olean files.
allowed-tools
Bash, Read
# 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. ## Procedure Building stage2 is expensive, so **confirm with the user before switching to a stage2 build.** For the actual build/test commands (`make stage2`, `clean-stdlib`, per-module Lake builds, and running tests against stage2), use the **`stage2-build`** skill.
View on GitHub