Skip to content

chore: bump toolchain to v4.30.0-rc1#823

Closed
kim-em wants to merge 12 commits intomainfrom
bump_to_v4.30.0-rc1
Closed

chore: bump toolchain to v4.30.0-rc1#823
kim-em wants to merge 12 commits intomainfrom
bump_to_v4.30.0-rc1

Conversation

@kim-em
Copy link
Copy Markdown
Contributor

@kim-em kim-em commented Apr 7, 2026

This PR bumps the Lean toolchain to v4.30.0-rc1.

Renames executable root modules to be unique, as Lake now rejects duplicate root module names across executables (leanprover/lean4#13028). Previously, multiple executables sharing root := Main`` with different srcDir values silently produced identical binaries.

🤖 Prepared with Claude Code

kim-em and others added 11 commits April 8, 2026 13:05
Rename executable root modules to be unique, as Lake now rejects
duplicate root module names across executables (leanprover/lean4#13028).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove @[run_builtin_parser_attribute_hooks] from meta parser (Verso.Method)
- Add public meta import Init.System.FilePath for include_str (WebAssets)
- Import Lean.PrettyPrinter.Delaborator.DeclWithSig for declSigWithId (PrettyPrint)
- Split addAndCompile into addDecl/markMeta/compileDecl for attribute handlers
  that wrap meta definitions (Monad)
- Use compiler.relaxedMetaCheck for signature definitions (Monad)
- Add meta BEq Letter instance for Shrinkable compatibility (Arbitrary)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Keep `deriving BEq` for non-meta use and add a separate meta BEq
instance for Shrinkable compatibility, with a comment explaining why.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Plausible library is entirely meta, so Shrinkable/Arbitrary instances
are meta and can't reference the non-meta derived BEq Letter. Instead of
duplicating BEq, compare the underlying Char values directly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update plausible to get non-meta Shrinkable. The Shrinkable instances
no longer need to be meta, but deriving BEq inside a public meta section
still doesn't produce a meta instance (lean4 bug), so we add a manual
meta BEq Letter alongside the derived one.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove VersoDemoMain.lean and its lakefile target (already removed
  on nightly-testing, uses deleted APIs)
- Inline `let decl` in attribute handlers to reduce diff vs original
- Add comment explaining the saveSignature add/markMeta/compile dance

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Update expected TeX output for code-content-doc (whitespace changes)
- Disambiguate `{kw}` role for `where` which now matches multiple syntax
  entries in v4.30 (Unif_hint and registerSymSimp)
- Update test project lake manifests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@kim-em kim-em force-pushed the bump_to_v4.30.0-rc1 branch from c285207 to 3b6ad55 Compare April 8, 2026 03:05
v4.30's `setStartOfFileLeading` expands the first token's leading
whitespace to span from byte 0, which includes the padding whitespace
that `parserInputString` prepends for position correctness. This caused
highlighted code blocks to emit pages of whitespace before the actual
code in TeX output.

Setting `hasLeading := false` in ModuleParserState prevents
`setStartOfFileLeading` from running, restoring correct behavior.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 8, 2026

Preview for this PR is ready! 🎉

@kim-em kim-em closed this Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant