-
Notifications
You must be signed in to change notification settings - Fork 291
Update toolchain #6033
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
sellout
wants to merge
12
commits into
unisonweb:trunk
Choose a base branch
from
sellout:updating-toolchain
base: trunk
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Update toolchain #6033
+2,682
−2,340
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Pin haskell.nix to a tag, 8 months more recent than the previous one, but some time before the Stack issue reared its head.
This bumps us to Stack 3.1.1, using hpack 0.37.0. And regenerates all of the Cabal files.
Without upgrading GHC to a new major version.
This uses the `root-modules` field to hold blessed modules. Two differences from `roots` are 1. the regex is simpler and 2. it doesn’t whitelist unexported bindings (although that is _usually_ caught by `-Wunused-top-binds`). The separate key also makes it easier to visually distinguish modules from bindings. Weeder 2.9.0 is much better at finding transitively unused bindings, which are grandfathered in. This also fixes the whitelisted `Semigroup` instance regex.
The previous list was in the order Weeder outputs them, but then it was impossible to integrate new weeds in a reasonable way. This sorts the entire list.
|
Some tests with 'continue-on-error: true' have failed:
|
105f68c to
c4846c5
Compare
- Cabal 3.14.1.1 → 3.12.1.0 (this is a downgrade, but it’s done to match the Cabal included with the GHC we’re on) - GHC 9.6.6 → 9.10.3 - HLS 2.9.0.0 → 2.12.0.0 - hpack 0.37.0 → 0.38.1 - Ormolu 0.7.7.0 → 0.8.0.2 - Stack 3.1.1 → 3.7.1 - Stackage LTS 22.43 → 24.21 - Weeder 2.9.0 → 2.10.0 - many changes to Haskell package versions
With GHC 9.10, `head` now triggers a partiality warning. I took the opportunity to do some minor refactoring. - grouping operations now return `NonEmpty` instead of `[]` - `reverse <$> foldl'` has been replaced by `foldr` - `groupMap` now makes use of its `Foldable`, rather than immediately converting to `[]` - `validate` now preserves the structure it’s given, rather than making it a list
c4846c5 to
98a4240
Compare
The previous version didn’t support Ormolu 0.8.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
Implementation approach and notes
The first six commits are older and do a smaller update, but they also make a few general improvements (eliminating a second Nixpkgs input, sorting the weeds). It’s not worth submitting that as a separate PR, because it would be a lot of work to update the cache twice with extra full rebuilds.
The commits after that follow a similar structure, but do a much more significant update.
Loose ends
This is still a WIP:
unison-core1and unison-sqliteboth complain thattext-builder` is an unused dependency, but when it’s removed, it fails on the actual uses of that package;It might also be good to merge #5914 into this PR – again, to avoid doing another set of full rebuilds.