hgmp-0.1.2 panics on HEAD (lookupGlobal) due to mismatched GHC/Num/BigNat.hi
Originally observed on a head.hackage
CI build here.
Attempting to build the hgmp-0.1.2
package with GHC HEAD (at commit b18d9e97) triggers a panic. To reproduce, do the following:
$ cabal repl -b hgmp -w ~/Software/ghc-9.1.20210124/bin/ghc --constraint="hgmp==0.1.2" --allow-newer=base,ghc-prim
Resolving dependencies...
Build profile: -w ghc-9.1.20210124 -O1
In order, the following will be built (use -v for more details):
- hgmp-0.1.2 (lib) (requires build)
- fake-package-0 (lib) (first run)
Starting hgmp-0.1.2 (lib)
Building hgmp-0.1.2 (lib)
Failed to build hgmp-0.1.2.
Build log (
/home/ryanglscott/.cabal/logs/ghc-9.1.20210124/hgmp-0.1.2-40e5acddb0bd81ddbcf00e2606c0cf5908c10258cb69ed9e9609bda285e2d340.log
):
Configuring library for hgmp-0.1.2..
Preprocessing library for hgmp-0.1.2..
Building library for hgmp-0.1.2..
[1 of 4] Compiling Numeric.GMP.Types ( dist/build/Numeric/GMP/Types.hs, dist/build/Numeric/GMP/Types.o, dist/build/Numeric/GMP/Types.dyn_o )
src/Numeric/GMP/Types.hsc:14:1: warning: [-Wunused-imports]
The import of ‘Data.Typeable’ is redundant
except perhaps to import instances from ‘Data.Typeable’
To import instances alone, use: import Data.Typeable()
|
14 | import Data.Typeable
| ^^^^^^^^^^^^^^^^^^^^
src/Numeric/GMP/Types.hsc:20:36: warning: [-Wunused-imports]
The import of ‘nullPtr’ from module ‘Foreign’ is redundant
|
20 | import Foreign (Storable(..), Ptr, nullPtr, plusPtr)
| ^^^^^^^
ghc: panic! (the 'impossible' happened)
(GHC version 9.1.20210124:
lookupGlobal
Bad interface file: /home/ryanglscott/Software/ghc-9.1.20210124/lib/../lib/x86_64-linux-ghc-9.1.20210124/ghc-bignum-1.0/GHC/Num/BigNat.hi
mismatched interface file profile tag (wanted "dyn", got "")
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/GHC/Utils/Panic.hs:181:37 in ghc:GHC.Utils.Panic
pprPanic, called at compiler/GHC/Tc/Utils/Env.hs:155:32 in ghc:GHC.Tc.Utils.Env
Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug
cabal: Failed to build hgmp-0.1.2 (which is required by fake-package-0). See
the build log above for details.
This is a regression from GHC 9.0 and earlier. I haven't quite figured out how to minimize the example yet, unfortunately.
This appears to be ghc-bignum
–related, so perhaps @hsyl20 might know what is happening here?