[GHC] #13264: GHC panic with (->) generalization branch while compiling lens

GHC ghc-devs at haskell.org
Fri Feb 10 20:40:35 UTC 2017


#13264: GHC panic with (->) generalization branch while compiling lens
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.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:                    |
-------------------------------------+-------------------------------------
Description changed by bgamari:

@@ -1,1 +1,1 @@
- While testing characterizing the performance impact of the Typeable
+ While characterizing the performance impact of the Typeable

New description:

 While characterizing the performance impact of the Typeable
 branch (`wip/ttypeable`) against Hackage packages I have found that `lens`
 manages to break the `(->)` kind-generalization patch. Specifically,
 `TcCanonical.can_eq_nc` induces a panic by `tcRepSplitTyApp_maybe` during
 compilation of `Control.Lens.Traversal.holesOf`,
 {{{
     ghc-stage2: panic! (the 'impossible' happened)
       (GHC version 8.1.20170207 for x86_64-unknown-linux):
       tcRepSplitTyConApp_maybe
       ([] |> <*>_N ->_N Sym {alzj}) a_alzd[tau:5]
       c_alzb[tau:5]
       Call stack:
           CallStack (from HasCallStack):
             prettyCurrentCallStack, called at
 compiler/utils/Outputable.hs:1188:58 in ghc:Outputable
             callStackDoc, called at compiler/utils/Outputable.hs:1192:37
 in ghc:Outputable
             pprPanic, called at compiler/typecheck/TcType.hs:1456:5 in
 ghc:TcType
             tcRepSplitTyConApp_maybe, called at
 compiler/typecheck/TcCanonical.hs:617:25 in ghc:TcCanonical
 }}}

 The last thing emitted by tc-trace is,
 {{{

     can_eq_nc
       False
       [WD] hole{alyP} {0}:: (p_alyn[tau:5] :: TYPE p_alym[tau:5])
                             GHC.Prim.~#
                             (cat_alyK[tau:6] b_alyM[tau:6] c_alyN[tau:6]
 :: *)
       nominal equality
       ([] |> <*>_N ->_N Sym {alzj}) a_alzd[tau:5] -> c_alzb[tau:5]
       p_alyn[tau:5]
       cat_alyK[tau:6] b_alyM[tau:6] c_alyN[tau:6]
       cat_alyK[tau:6] b_alyM[tau:6] c_alyN[tau:6]

 }}}

--

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


More information about the ghc-tickets mailing list