Skip to content

Switch Cabal to wip/angerman/compile-less (cross-compile + local store + recompilation avoidance)#179

Merged
angerman merged 1 commit into
stable-ghc-9.14from
wip/angerman/compile-less-cabal
Apr 6, 2026
Merged

Switch Cabal to wip/angerman/compile-less (cross-compile + local store + recompilation avoidance)#179
angerman merged 1 commit into
stable-ghc-9.14from
wip/angerman/compile-less-cabal

Conversation

@angerman

@angerman angerman commented Apr 4, 2026

Copy link
Copy Markdown

Summary

  • Switches all stage cabal.project files to stable-haskell/cabal branch wip/angerman/compile-less (44817477ff6d22de4bfa4307e061df58f319d3b6)
  • This branch is based on Andrea Bedini's wip/andrea/compile-less plus cherry-picks from hasufell and the TOCTOU race fix

What's included in the new Cabal branch

From wip/andrea/compile-less:

  • Cross-compilation support (Stage/Toolchain architecture, solver scoping, dual compilers)
  • Local store (replaces in-place builds with project-local store)
  • Recompilation avoidance (reinstated file monitor tracking for installed packages)
  • Dead compiler removal (NHC, YHC, Hugs, GHCJS, etc.)
  • Extensive solver refactoring and error handling improvements

Cherry-picked from wip/hasufell/compile-less:

  • 137c9812d — Stop stealing the vowels
  • b576cdb49 — Fix caching of remote source tarballs

Cherry-picked from fix/unpack-toctou-race-minimal:

  • d7bf2ce3f44817477f — Serialise BuildInplaceOnly tarball extraction to prevent TOCTOU race (conflict-resolved to preserve both the TOCTOU lock and the recompilation avoidance BuildStatusConfigure MonitorFirstRun call)

Test plan

  • CI passes (stage0 → stage1 → stage2 build)
  • Verify recompilation avoidance works (incremental rebuilds don't recompile unchanged packages)
  • Verify TOCTOU race is fixed (concurrent stage builds don't corrupt tarball extraction)

@angerman

angerman commented Apr 4, 2026

Copy link
Copy Markdown
Author

Depends on #180

Point all stage cabal.project files at stable-haskell/cabal
wip/angerman/compile-less (44817477ff6d22de4bfa4307e061df58f319d3b6),
which is based on Andrea Bedini's wip/andrea/compile-less and includes:

- Cross-compilation support (Stage/Toolchain architecture)
- Local store (replaces in-place builds)
- Recompilation avoidance (file monitor tracking for installed packages)
- hasufell's "Stop stealing the vowels" and "Fix caching of remote source tarballs"
- TOCTOU race fix for BuildInplaceOnly tarball extraction
@angerman angerman force-pushed the wip/angerman/compile-less-cabal branch from 2ac8043 to 15a5217 Compare April 5, 2026 08:53
@angerman angerman merged commit d8f0cae into stable-ghc-9.14 Apr 6, 2026
47 of 49 checks passed
@angerman angerman deleted the wip/angerman/compile-less-cabal branch April 6, 2026 09:58
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