[GHC] #15286: "Can't use Natural in base" when compiling GHC.Natural with -O0
GHC
ghc-devs at haskell.org
Mon Jun 18 14:41:26 UTC 2018
#15286: "Can't use Natural in base" when compiling GHC.Natural with -O0
-------------------------------------+-------------------------------------
Reporter: alpmestan | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: | Version: 8.5
libraries/base |
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: Building GHC
Unknown/Multiple | failed
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
{{{
_build/stage0/bin/ghc -Wall -hisuf hi -osuf o -hcsuf hc -static -hide-all-
packages -no-user-package-db '-package-db
_build/stage1/lib/package.conf.d' '-this-unit-id base-4.12.0.0' '-package-
id ghc-prim-0.5.3' '-package-id integer-simple-0.1.1.1' '-package-id
rts-1.0' -i -i_build/stage1/libraries/base/build
-i_build/stage1/libraries/base/build/autogen -ilibraries/base/. -Iincludes
-I_build/generated -I_build/stage1/libraries/base/build
-I_build/stage1/libraries/base/build/include -Ilibraries/base/include
-I/home/travis/build/snowleopard/hadrian/ghc/_build/stage1/lib/x86_64
-linux-ghc-8.5.20180617/rts-1.0/include -I_build/generated -optc-
I_build/generated -optP-include
-optP_build/stage1/libraries/base/build/autogen/cabal_macros.h -optc-
std=gnu99 -optc-fno-stack-protector -optP-std=gnu99 -odir
_build/stage1/libraries/base/build -hidir
_build/stage1/libraries/base/build -stubdir
_build/stage1/libraries/base/build -Wnoncanonical-monad-instances -optc-
Werror=unused-but-set-variable -optc-Wno-error=inline -c
libraries/base/GHC/Num.hs -o _build/stage1/libraries/base/build/GHC/Num.o
-O0 -H64m -this-unit-id base -Wcompat -Wnoncanonical-monad-instances
-XHaskell2010 -ghcversion-
file=/home/travis/build/snowleopard/hadrian/ghc/_build/generated/ghcversion.h
-Wno-deprecated-flags -Wno-trustworthy-safe
Exit code: 1
Stderr:
ghc: panic! (the 'impossible' happened)
(GHC version 8.5.20180617 for x86_64-unknown-linux):
Can't use Natural in base
}}}
We noticed this in hadrian land (in
[https://github.com/snowleopard/hadrian/issues/499 this PR] and
[https://github.com/snowleopard/hadrian/issues/629]), and noticed that
this happens:
- with 8.4.2 as the boot compiler but not 8.2.2
- with integer-simple as the integer library
- only with the quickest flavour (or more generally when we build
GHC.Natural with -O0)
Some optimisation seems critical to making any trace of `Natural`
disappear, but this seems rather fragile. The code that throws the error
got introduced in fe770c211631e7b4c9b0b1e88ef9b6046c6585ef.
The full build log is available [https://travis-
ci.org/snowleopard/hadrian/jobs/393259151#L4209 here], anchored to where
the error appears.
An example of hadrian command to reproduce the problem, assuming a
configured build tree: `hadrian/build.sh --flavour=quickest --integer-
simple -j4`.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15286>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list