[GHC] #14382: The 'impossible' happened whilst installing gi-gtk via cabal
GHC
ghc-devs at haskell.org
Thu Oct 26 21:39:05 UTC 2017
#14382: The 'impossible' happened whilst installing gi-gtk via cabal
----------------------------------+--------------------------------------
Reporter: maartenjacobs | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
Resolution: | Keywords: gtk, pango
Operating System: Linux | Architecture: x86_64 (amd64)
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
----------------------------------+--------------------------------------
Comment (by bgamari):
Alright, so I managed to reproduce this on `HEAD` as well. The call stack
looks like,
{{{
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 8.3.20171026 for x86_64-unknown-linux):
tcIfaceGlobal (local): not found
You are in a maze of twisty little passages, all alike.
While forcing the thunk for TyThing IsFile
which was lazily initialized by initIfaceCheck typecheckLoop,
I tried to tie the knot, but I couldn't find IsFile
in the current type environment.
If you are developing GHC, please read Note [Tying the knot]
and Note [Type-checking inside the knot].
Consider rebuilding GHC with profiling for a better stack trace.
This little catastrophe occurred while compiling GI.Gio.Interfaces.File
Contents of current type environment: []
Call stack:
CallStack (from HasCallStack):
callStackDoc, called at compiler/utils/Outputable.hs:1147:37 in
ghc:Outputable
pprPanic, called at compiler/iface/TcIface.hs:1717:23 in
ghc:TcIface
tcIfaceGlobal, called at compiler/iface/TcIface.hs:1775:19 in
ghc:TcIface
tcIfaceTyCon, called at compiler/iface/TcIface.hs:1275:21 in
ghc:TcIface
tcIfaceType, called at compiler/iface/TcIface.hs:878:17 in
ghc:TcIface
tc_ax_branch, called at compiler/iface/TcIface.hs:866:37 in
ghc:TcIface
tc_ax_branches, called at compiler/iface/TcIface.hs:819:25 in
ghc:TcIface
tc_iface_decl, called at compiler/iface/TcIface.hs:640:15 in
ghc:TcIface
tcIfaceDecl, called at compiler/iface/LoadIface.hs:681:37 in
ghc:LoadIface
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
}}}
Moreover, I was able to pare down the affected module quite far. Replacing
`GI.Gio.Interfaces.File` from `gi-gio-2.0.14` with the following still
reproduces the issue,
{{{#!hs
module GI.Gio.Interfaces.File where
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Callbacks as Gio.Callbacks
import {-# SOURCE #-} qualified GI.Gio.Objects.FileEnumerator as
Gio.FileEnumerator
import {-# SOURCE #-} qualified GI.Gio.Structs.FileAttributeInfoList as
Gio.FileAttributeInfoList
class GObject o => IsFile o
}}}
Every line of this seems to be important; removing any one eliminates the
panic.
I have a repro but it's quite involved. I'm going to try to reduce it
further before trying to explain it.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14382#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list