diff options
author | Sylvain Henry <sylvain@haskus.fr> | 2020-12-03 18:54:54 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-03-03 08:12:29 -0500 |
commit | d8dc0f96237fe6fe7081c04727c7c2573477e5cb (patch) | |
tree | dbc4e8d25cf5a085e979df98bacad5999bf78aee /hadrian | |
parent | eea96042f1e8682605ae68db10f2bcdd7dab923e (diff) | |
download | haskell-d8dc0f96237fe6fe7081c04727c7c2573477e5cb.tar.gz |
Fix array and cleanup conversion primops (#19026)
The first change makes the array ones use the proper fixed-size types,
which also means that just like before, they can be used without
explicit conversions with the boxed sized types. (Before, it was Int# /
Word# on both sides, now it is fixed sized on both sides).
For the second change, don't use "extend" or "narrow" in some of the
user-facing primops names for conversions.
- Names like `narrowInt32#` are misleading when `Int` is 32-bits.
- Names like `extendInt64#` are flat-out wrong when `Int is
32-bits.
- `narrow{Int,Word}<N>#` however map a type to itself, and so don't
suffer from this problem. They are left as-is.
These changes are batched together because Alex happend to use the array
ops. We can only use released versions of Alex at this time, sadly, and
I don't want to have to have a release thatwon't work for the final GHC
9.2. So by combining these we get all the changes for Alex done at once.
Bump hackage state in a few places, and also make that workflow slightly
easier for the future.
Bump minimum Alex version
Bump Cabal, array, bytestring, containers, text, and binary submodules
Diffstat (limited to 'hadrian')
-rw-r--r-- | hadrian/cabal.project | 3 | ||||
-rw-r--r-- | hadrian/hadrian.cabal | 3 | ||||
-rw-r--r-- | hadrian/stack.yaml | 1 |
3 files changed, 3 insertions, 4 deletions
diff --git a/hadrian/cabal.project b/hadrian/cabal.project index d5f656d172..834cd17362 100644 --- a/hadrian/cabal.project +++ b/hadrian/cabal.project @@ -1,10 +1,9 @@ packages: ./ -- This essentially freezes the build plan for hadrian -index-state: 2020-09-14T19:30:43Z +index-state: 2020-12-21T14:48:20Z -- N.B. Compile with -O0 since this is not a performance-critical executable -- and the Cabal takes nearly twice as long to build with -O1. See #16817. package Cabal optimization: False - diff --git a/hadrian/hadrian.cabal b/hadrian/hadrian.cabal index 0b54bed039..c39d5a92cf 100644 --- a/hadrian/hadrian.cabal +++ b/hadrian/hadrian.cabal @@ -147,8 +147,7 @@ executable hadrian , shake >= 0.18.3 && < 0.20 , transformers >= 0.4 && < 0.6 , unordered-containers >= 0.2.1 && < 0.3 - build-tools: alex >= 3.1 && < 3.2.6 - -- See GHC#19099 for why we constrain alex < 3.2.6. + build-tools: alex >= 3.2.6 && < 4 , happy >= 1.20.0 && < 1.21 ghc-options: -Wall -Wincomplete-record-updates diff --git a/hadrian/stack.yaml b/hadrian/stack.yaml index 44acdf5246..9147e2dc57 100644 --- a/hadrian/stack.yaml +++ b/hadrian/stack.yaml @@ -14,4 +14,5 @@ nix: - perl extra-deps: +- alex-3.2.6 - happy-1.20.0 |