Changelog

leanprover/lean4 · · 6 commits

Lean4 tightens IR init and fixes equation lemmas

Performance wins for postponed codegen, plus fixes for equation-lemma determinism and a few correctness bugs in compiler/doc handling.

Postponed codegen startup is faster and safer (Kha7afad6f)

leanir now uses a minimal runtime initializer instead of bringing up all of Lean, cutting startup cost by about a quarter. The supporting changes also make sure the modules leanir actually depends on are still initialized, avoiding missing-export issues.

Equation lemmas no longer depend on caller options (marcelolynch64942e1)

Generated equation lemma statements are now computed in a way that's independent of the options active at the point where equations are first requested. This fixes a parallel-elaboration nondeterminism that could make the same file succeed or fail depending on thread count or on earlier local set_options.

Fix postponed-compile edge cases in compiler metadata and docs (Kha0bb12a8)

This fixes a leanir panic when re-seeding imported extension state, makes isDeclMeta consult local state as well as imported module entries, and ensures [inherit_doc] from a private declaration copies the resolved docstring for public targets. Together, these close several correctness gaps exposed by enabling compiler.postponeCompile on core.

Import loading avoids allocating empty IR entry arrays (Khac00732e)

finalizeImport now only sizes importedEntries for extensions that actually have IR data, instead of allocating per-module arrays for every persistent extension. That trims import-time overhead and avoids pointless empty arrays on the hot path.

Other misc changes

  • Release script updates (1 commit)
  • Stage0 refresh (1 commit)