[GHC] #12168: panic! (the 'impossible' happened) with gi-gtk 3.0.4

GHC ghc-devs at haskell.org
Sun Jun 12 23:00:52 UTC 2016


#12168: panic! (the 'impossible' happened) with gi-gtk 3.0.4
-------------------------------------+-------------------------------------
        Reporter:  drb226            |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by drb226):

 The stack commands are as follows:

 * stack unpack: comparable to cabal unpack. It just fetches and unpacks a
 tarball
 * stack init: it just writes a stack.yaml config file. I used the flag
 --resolver nightly-2016-06-08 to refer to a particular set of
 dependencies.
 * stack build: fetches dependencies and builds the project

 > I am not nearly experienced enough in the haskell-gi internals to know
 what could be going on.

 Nor am I, but the error message asked me to report it, so I did. :P

 Note that Setup.hs for gi-gtk is not the default. It's a custom Setup
 script:

 {{{
 {-# LANGUAGE OverloadedStrings #-}

 import Data.GI.CodeGen.CabalHooks (setupHaskellGIBinding)

 main :: IO ()
 main = setupHaskellGIBinding name version verbose overridesFile outputDir
   where name = "Gtk"
         version = "3.0"
         overridesFile = Just "Gtk.overrides"
         verbose = False
         outputDir = Nothing
 }}}

 There seems to be no source code in the tarball; it's all generated from
 this.

 > Why is it that in the two methods you used above, you had different
 numbers of modules (650 vs 654)? In fact, when I ran in, I only had 516
 modules to compile.

 I would guess that the answer to this question is that they are all
 differing versions of the C library, and so {{{setupHaskellGIBinding}}}
 generates different bindings for each. However, you'd think that if we are
 using the same docker image, it would have the same version of the
 library. Sanity check that we're using the same one:

 {{{
 $ docker pull snoyberg/stackage:nightly
 nightly: Pulling from snoyberg/stackage

 Digest:
 sha256:768be48dbf1552befb627e1335ab3cd7ea76e9b4bab3e11268408a0edc8fb67b
 Status: Image is up to date for snoyberg/stackage:nightly
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12168#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list