[GHC] #14270: GHC HEAD's ghc-stage1 panics on Data.Typeable.Internal

GHC ghc-devs at haskell.org
Tue Sep 26 13:27:59 UTC 2017


#14270: GHC HEAD's ghc-stage1 panics on Data.Typeable.Internal
-------------------------------------+-------------------------------------
        Reporter:  hvr               |                Owner:  bgamari
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.4.1
       Component:  Compiler          |              Version:  8.3
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash or panic                     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #14236            |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 I have not reproduced this, but the RULE comes from `SpecConstr`.
 Presumably it sees a call to
 {{{
 mkTrApp @(b_a3RY |> blah) ... (TrTyCon @(b_a3RY |> blah) e1 ...)
 }}}
 and creates a specialised copy of `mkTrApp`, something like
 {{{
 $smkTrApp sc1 sc2 sc3 = <body of mkTrApp applied to suitable args>
 }}}
 along with a RULE to convert calls to `mkTrApp` into calls to `$smkTrApp`,
 something like
 {{{
 RULE "SC:mkTrApp0"
   forall sc1 sc2 sc3.
     mkTrApp @(b_a3RY |> blah) ... = $smkTrApp sc1 sc2 sc3
 }}}
 So that's how those casts end up on the LHS of a RULE.

 I have not yet figured out why we put a coercion variable in the template
 variables.

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


More information about the ghc-tickets mailing list