[GHC] #13710: panic with boot and -jX

GHC ghc-devs at haskell.org
Wed May 17 04:17:24 UTC 2017


#13710: panic with boot and -jX
-------------------------------------+-------------------------------------
           Reporter:  pacak          |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.2.1-rc2
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  Compile-time
  Unknown/Multiple                   |  crash or panic
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 {{{
 % cat A.hs
 module A where
 }}}

 {{{
 % cat A.hs-boot
 module A ( A ) where

 type A = Maybe ()

 yay :: A -> IO ()
 }}}

 {{{
 % cat B.hs
 module B where

 import {-# SOURCE #-} A
 }}}

 This panics:
 {{{
 % rm -rf o ; ghc -j2 -outputdir o B
 [1 of 3] Compiling A[boot]          ( A.hs-boot, o/A.o-boot )
 [2 of 3] Compiling A                ( A.hs, o/A.o )

 <no location info>: error:
     ghc: panic! (the 'impossible' happened)
   (GHC version 8.2.0.20170503 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 A
   which was lazily initialized by initIfaceCheck typecheckLoop,
   I tried to tie the knot, but I couldn't find A
   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.
   Contents of current type environment:
     [r15J :-> Identifier ‘$trModule’]
   Call stack:
       CallStack (from HasCallStack):
         prettyCurrentCallStack, called at
 compiler/utils/Outputable.hs:1134:58 in ghc:Outputable
         callStackDoc, called at compiler/utils/Outputable.hs:1138:37 in
 ghc:Outputable
         pprPanic, called at compiler/iface/TcIface.hs:1689:23 in
 ghc:TcIface

 Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
 }}}


 This works:
 {{{
 % rm -rf o ; ghc -j1 -outputdir o B
 [1 of 3] Compiling A[boot]          ( A.hs-boot, o/A.o-boot )
 [2 of 3] Compiling A                ( A.hs, o/A.o )

 A.hs-boot:3:1: error:
     ‘A.A’ is exported by the hs-boot file, but not exported by the module
   |
 3 | type A = Maybe ()
   | ^^^^^^^^^^^^^^^^^
 }}}

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


More information about the ghc-tickets mailing list