9 Commits

Author SHA1 Message Date
Nadja Yang 03752ca7ca lean4, leanPackages.lean4: fix darwin build by adding libtool
Lake 4.30.0 uses libtool -static on macOS for static library targets
instead of ar.
https://github.com/leanprover/lean4/blob/d024af099ca4bf2c86f649261ebf59565dc8c622/src/lake/Lake/Build/Library.lean#L87-L95

See Hydra Build No. 330752454, lean4.aarch64-darwin (June 4, 2026),
https://hydra.nixos.org/build/330752454; Hydra Build No. 330752481,
leanPackages.lean4.aarch64-darwin (June 4, 2026),
https://hydra.nixos.org/build/330752481.

Breakage introduced in
https://github.com/NixOS/nixpkgs/pull/526718/commits/a26b66330f6fa572e7005ee2a1eb031093456e6e
2026-06-04 23:56:27 -04:00
Nadja Yang b606786817 leanPackages: 4.29.1 -> 4.30.0
Add leangz (leantar) as a new build and runtime dependency.

https://github.com/leanprover/lean4/releases/tag/v4.30.0
https://github.com/leanprover-community/mathlib4/blob/v4.30.0/lake-manifest.json
2026-06-04 16:48:52 -04:00
Nadja Yang 5d81234142 leanPackages.lean4: pin cadical to 2.1.3, add smoke test
cadical >= 2.2.0 produces LRAT proofs Lean's checker does not
yet handle, breaking bv_decide.

https://github.com/NixOS/nixpkgs/pull/514456/commits/0eced05aae1e4493a97609f3c3f7613ecf55f91f
2026-06-04 16:48:52 -04:00
Nadja Yang cefae5621e leanPackages.lean4: use nixpkgs cadical, patch all binaries
Lean binaries derive sysroot from IO.appPath; patch all of them
rather than just lean and lake. Add cadical to symlinkJoin paths
instead of bundling a copy via INSTALL_CADICAL.

https://github.com/NixOS/nixpkgs/pull/513024/changes/ed10debb3c8ad78e687521bb802383e21cd74472
2026-06-04 16:48:52 -04:00
Nadja Yang 6987e3afbe leanPackages.lean4: 4.29.0 -> 4.29.1
Strip ephemeral setup.json build artifacts from library outputs.
These are produced per-module during compilation and not included
in upstream cache distributions
(https://github.com/NixOS/nixpkgs/issues/510957).

Disable Hydra builds for mathlib since the output exceeds the NAR
size limit.

Pre-build static library for batteries so downstream executables
can link against it.

Refactor update.sh to pin each dependency to the rev from mathlib's
lake-manifest.json.
2026-06-04 16:48:52 -04:00
Nadja Yang 590ccdb420 leanPackages: partially revert https://github.com/NixOS/nixpkgs/pull/526718/commits/a26b66330f6fa572e7005ee2a1eb031093456e6e
In favor of https://github.com/NixOS/nixpkgs/pull/511524
(https://github.com/NixOS/nixpkgs/pull/511524/commits/72b8bcfd8ef837cfddc1cacc0bd4c7b8b3998e59).

Retains pkgs.lean4 at 4.30.0.
2026-06-04 16:48:52 -04:00
Niklas Halonen a26b66330f lean4: update leanPackages and lean4 4.29.0/1 -> 4.30.0
As reported on FreeBSD forums, updating lean4 to 4.30.0 fails to a
leantar related issue.  We follow the patch mentioned on the FreeBSD
forums and depend on digama0/leangz (that comes with leantar).
However, there doesn't seem to be a reason to disable installing
leantar, so we don't set INSTALL_LEANTAR=OFF like the patch.

References:
- https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295656
- https://cgit.freebsd.org/ports/commit/?id=516f8a5764de5c7bdd0e9f7810601a5057bbc650
- https://lean-lang.org/doc/reference/latest/releases/v4.30.0/#release-v4___30___0
- leanprover/lean4#12822
2026-06-01 22:28:05 +03:00
Archit Gupta ed10debb3c lean4: remove cadical copy
By default, lean4's cmake copies the cadical binary from PATH to its
build output directory. Disabling this behavior does not keep Lean from
using cadical.
2026-04-24 01:39:20 -07:00
Nadja Yang 3c2a3b804d leanPackages: structural reimagining — own toolchain, lake --packages, Hydra visibility
Give leanPackages its own lean4, independent of pkgs.lean4. Binary-
patch the toolchain so the language server discovers the wrapped lake
despite lake serve deriving LAKE from IO.appPath unconditionally.
Supplant Lake's config trace validation for /nix/store/ dependencies,
deferring cache coherence to Nix.

Migrate Nix-managed dependency injection from package-overrides.json
to lake --packages. Patch Cli to pre-build static library for
downstream executables. Add recurseIntoAttrs for Hydra.

Upstream accepted FetchContent for mimalloc vendoring:
https://github.com/leanprover/lean4/commit/a145b9c11a0fe38fd4c921024a7376c99cc34bd2
2026-04-01 11:13:44 -04:00