[GHC] #8114: GHC panic when building `thyme`

GHC ghc-devs at haskell.org
Mon Aug 5 23:03:06 CEST 2013


#8114: GHC panic when building `thyme`
---------------------------------------+----------------------------------
        Reporter:  Ptharien's Flame    |            Owner:
            Type:  bug                 |           Status:  new
        Priority:  normal              |        Milestone:
       Component:  Compiler            |          Version:  7.6.3
      Resolution:                      |         Keywords:
Operating System:  MacOS X             |     Architecture:  x86_64 (amd64)
 Type of failure:  Compile-time crash  |       Difficulty:  Unknown
       Test Case:                      |       Blocked By:
        Blocking:                      |  Related Tickets:
---------------------------------------+----------------------------------

Comment (by carter):

 the lint error message (using the minimal example that monoidal provides),
 on ghc 7.6.3 on OS X is the following

 {{{
 carter repoScratcher/testtyme » ghc -dstg-lint Array
 [1 of 1] Compiling Array            ( Array.hs, Array.o )
 stgEqType: unequal
     ghc-prim:GHC.Prim.ByteArray#{(w) tc 3f}
     ghc-prim:GHC.Prim.MutableByteArray#{(w) tc 31p} s{tv h} [tv]
 ghc: panic! (the 'impossible' happened)
   (GHC version 7.6.3 for x86_64-apple-darwin):
             *** Stg Lint ErrMsgs: in Stg2Stg ***
     <no location info>: Warning:
          [RHS of sat_sgA{v} [lid] :: main:Array.Array{tc rfc}]
         In a RHS constructor application, con type doesn't match arg
 types:
         Constructor type:
             ghc-prim:GHC.Prim.ByteArray#{(w) tc 3f} -> main:Array.Array{tc
 rfc}
         Arg types:
             ghc-prim:GHC.Prim.MutableByteArray#{(w) tc 31p} s{tv h} [tv]
     *** Offending Program ***
     main:Array.unsafeFreeze{v rff} [gid]
       :: forall s{tv afh} [tv].
          main:Array.MArray{tc rf9} s{tv afh} [tv]
          -> base:GHC.ST.ST{tc r4k} s{tv afh} [tv] main:Array.Array{tc rfc}
     [GblId, Arity=1, Unf=OtherCon []] =
         [] \r srt:SRT:[(01Z,
                         base:GHC.Base.${v 01Z} [gid])] [ds{v sgf} [lid]]
             case
                 ds{v sgf} [lid] :: Alg main:Array.MArray{tc rf9}
             of
             (wild{v sgD} [lid] [Occ=Dead]
                :: main:Array.MArray{tc rf9} s{tv h} [tv])
             {   -- lvs: [ds{v sgf} [lid]]; rhs lvs: []; srt:SRT:[(01Z,
 base:GHC.Base.${v 01Z} [gid])]
               main:Array.MArray{d rfa} (ds1{v sgn} [lid]
                                           :: ghc-
 prim:GHC.Prim.MutableByteArray#{(w) tc 31p}
                                                s{tv h} [tv]) ->
                   let {
                     sat_sgB{v} [lid]
                       :: base:GHC.ST.STRep{tc r4i} s{tv h} [tv]
 main:Array.Array{tc rfc}
                     [LclId] =
                         [ds1{v sgn} [lid]] \r srt:SRT:[] [s#{v sgm} [lid]]
                             let {
                               sat_sgA{v} [lid] :: main:Array.Array{tc rfc}
                               [LclId] =
                                   NO_CCS main:Array.Array{d rfd}! [ds1{v
 sgn} [lid]];
                             } in
                               ghc-prim:GHC.Prim.(#,#){(w) d 84} [s#{v sgm}
 [lid]
 sat_sgA{v} [lid]]; } in
                   let {
                     sat_sgC{v} [lid]
                       :: base:GHC.ST.STRep{tc r4i} s{tv h} [tv]
 main:Array.Array{tc rfc}
                          -> base:GHC.ST.ST{tc r4k} s{tv h} [tv]
 main:Array.Array{tc rfc}
                     [LclId] =
                         [] \r srt:SRT:[] [tpl{v sgj} [lid]] tpl{v sgj}
 [lid];
                   } in
                     base:GHC.Base.${v 01Z} [gid] sat_sgC{v} [lid]
 sat_sgB{v} [lid];
             };
     main:Array.aBA{v rfe} [gid[[RecSel]]]
       :: main:Array.Array{tc rfc}
          -> ghc-prim:GHC.Prim.ByteArray#{(w) tc 3f}
     [GblId[[RecSel]], Arity=1, Caf=NoCafRefs, Unf=OtherCon []] =
         [] \r srt:SRT:[] [ds{v sgr} [lid]]
             case
                 ds{v sgr} [lid] :: Alg main:Array.Array{tc rfc}
             of
             (wild{v sgE} [lid] [Occ=Dead] :: main:Array.Array{tc rfc})
             {   -- lvs: [ds{v sgr} [lid]]; rhs lvs: []; srt:SRT:[]
               main:Array.Array{d rfd} (ds1{v sgu} [lid]
                                          :: ghc-
 prim:GHC.Prim.ByteArray#{(w) tc 3f}) ->
                   ds1{v sgu} [lid];
             };
     main:Array.maBA{v rfb} [gid[[RecSel]]]
       :: forall s{tv afg} [tv].
          main:Array.MArray{tc rf9} s{tv afg} [tv]
          -> ghc-prim:GHC.Prim.MutableByteArray#{(w) tc 31p} s{tv afg} [tv]
     [GblId[[RecSel]], Arity=1, Caf=NoCafRefs, Unf=OtherCon []] =
         [] \r srt:SRT:[] [ds{v sgw} [lid]]
             case
                 ds{v sgw} [lid] :: Alg main:Array.MArray{tc rf9}
             of
             (wild{v sgF} [lid] [Occ=Dead]
                :: main:Array.MArray{tc rf9} s{tv d} [tv])
             {   -- lvs: [ds{v sgw} [lid]]; rhs lvs: []; srt:SRT:[]
               main:Array.MArray{d rfa} (ds1{v sgz} [lid]
                                           :: ghc-
 prim:GHC.Prim.MutableByteArray#{(w) tc 31p}
                                                s{tv d} [tv]) ->
                   ds1{v sgz} [lid];
             };
     main:Array.MArray{v rfr} [gid[DataCon]]
       :: forall s{tv afg} [tv].
          ghc-prim:GHC.Prim.MutableByteArray#{(w) tc 31p} s{tv afg} [tv]
          -> main:Array.MArray{tc rf9} s{tv afg} [tv]
     [GblId[DataCon],
      Arity=1,
      Caf=NoCafRefs,
      Str=DmdType Tm,
      Unf=OtherCon []] =
         [] \r srt:SRT:[] [eta_B1{v} [lid]]
             main:Array.MArray{d rfa} [eta_B1{v} [lid]];
     main:Array.Array{v rfn} [gid[DataCon]]
       :: ghc-prim:GHC.Prim.ByteArray#{(w) tc 3f}
          -> main:Array.Array{tc rfc}
     [GblId[DataCon],
      Arity=1,
      Caf=NoCafRefs,
      Str=DmdType Tm,
      Unf=OtherCon []] =
         [] \r srt:SRT:[] [eta_B1{v} [lid]]
             main:Array.Array{d rfd} [eta_B1{v} [lid]];
     *** End of Offense ***

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

 }}}

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




More information about the ghc-tickets mailing list