Repository navigation
lean 4.35.0 + aeneas-latest → upstream Lean-4.35 (aeneas fdebf20d) - #1000
Conversation
lean 4.35.0 broke aeneas-latest's Sept Mathlib pin (Lake's PackageEntrySrc.path gained a field; mathlib Cache/Requests.lean:988 "Missing cases"), failing pkgs#999's run d4401ce3. Upstream aeneas moved to Lean v4.35.0 (#1448), so track main at fdebf20d with its own lake-manifest: mathlib v4.35.0 (56a00585) and every Lake dep re-pinned and mirrored. The 4.34 port patch is dropped (upstream targets the Lean we ship); build.sh now refuses to build if aeneas's lean-toolchain stops matching our lean. Mathlib cache closure 28 -> 31 modules. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reached
This review includes 1 billable file and costs up to $0.25.
Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing. Or wait 32 minutes for your next included review. View limit details
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Remote session verification on head
🤖 Generated with Claude Code |
lean 4.34.1 → 4.35.0, together with aeneas-latest moved to upstream AeneasVerif/aeneas main at
fdebf20d(2026-10-22), whosebackends/lean/lean-toolchainisleanprover/lean4:v4.35.0. Split out of #999.Why these two move together
#999 bumped lean on its own and its
minimal buildfailed (rund4401ce3).aeneas-latestfailed on both arches about five seconds into its lake build:Lean 4.35's Lake gave
PackageEntrySrc.pathan extra field, so the September Mathlib pin (d13f23b7, built for 4.34) no longer compiles its own cache tool. Mathlib's tooling is compiled against the running Lean, so a Mathlib pinned for one Lean minor doesn't build on the next. Upstream aeneas moved to v4.35.0 in AeneasVerif/aeneas#1448, so this PR tracks it instead of porting again.What changed
6747b099…c307b).20261022, sourceaeneas-fdebf20, and upstream'slake-manifest.jsontaken verbatim. Every Lake dependency is re-pinned from it:d13f23b756a00585(tag v4.35.0)118aa17edfa4f381ddf04cf3d6b4c7bee928b725a41f0e9a106ff4fadf72b022355695d54a174c496a489d9adce0ad79f2effa3d66e46918e92c9f15c24fe607(tag v4.35.0)gs://minimal-staging-archives/aeneas-latest/. The sha256 read back from GCS matches the download for all ten.aeneas-lean-4.34.patch) is deleted. Upstream targets the Lean we ship, so nothing needs porting. Thepatchbuild dep goes with it.build.sh: it refuses to build if aeneas'slean-toolchainstops naming the lean we ship, with "bump lean and aeneas-latest together". So a future lone lean bump fails with that message instead of a Mathlib pattern-match error.Data.Int.GCD,Data.List.MonadandOrder.FixedPointsare new), recomputed from everyimport Mathlib…underAeneas/andAeneasMeta/.Translator (
aeneaspackage): unchanged, on purposeUpstream's library is now a Lean
module(Aeneas.leanbeginsmodule/public import …). The translator we ship, d119a47, defaults to non-module output (import Aeneas, seeaeneas/build.shuse_lean_modules). That was the fix for the opposite direction: amodulefile can't import a non-module library. A plain file importing a module library is allowed, and theimports_aeneastest exercises exactly that.Bumping the translator is the charon / rust-nightly cascade (
pkgmgr bundle-bump aeneas), so it stays a separate PR.Verification
nickel format --check,bash -nandMINIMAL_SCIENCE_MODE=1 mip dump --packages(amd64 + arm64) are clean.leanandaeneas-latest.--rebuildlean and aeneas-latest, thenmin check. Results are posted below once they finish.Follow-up for pkgmgr (not changed here)
pkgmgr-rs#1046's toolchain pre-flight (
data/toolchain_constraints.toml) should learn a consumer-compat rule, so the bot never opens a lone lean bump again. The rule: aleanbump to X requiresaeneas-latest's pinnedbackends/lean/lean-toolchainto equalleanprover/lean4:vXin the same run; otherwise drop lean with "did NOT ship: aeneas-latest targets lean Y". That needs a constraint keyed on a dependent package's pinned file, not just a toolchain version. Today the table only covers "X needs toolchain ≥ Y".🤖 Generated with Claude Code
Summary by CodeRabbit