[GHC] #9140: Unboxed tuples fails in GHCi (7.8.2)

GHC ghc-devs at haskell.org
Fri May 23 15:25:42 UTC 2014


#9140: Unboxed tuples fails in GHCi (7.8.2)
------------------------------------+-------------------------------------
       Reporter:  osa1              |             Owner:
           Type:  bug               |            Status:  new
       Priority:  normal            |         Milestone:
      Component:  GHCi              |           Version:  7.8.2
       Keywords:                    |  Operating System:  Unknown/Multiple
   Architecture:  Unknown/Multiple  |   Type of failure:  GHCi crash
     Difficulty:  Unknown           |         Test Case:
     Blocked By:                    |          Blocking:
Related Tickets:                    |
------------------------------------+-------------------------------------
 Creating an unboxed tuple in GHCi causes panic:

 {{{
 ➜  ~  ghci -XUnboxedTuples
 GHCi, version 7.8.2: http://www.haskell.org/ghc/  :? for help
 Loading package ghc-prim ... linking ... done.
 Loading package integer-gmp ... linking ... done.
 Loading package base ... linking ... done.
 ghci> let a = (# 1 #)
 ghc: panic! (the 'impossible' happened)
   (GHC version 7.8.2 for x86_64-unknown-linux):
         dsLet: unlifted
     AbsBinds [a{tv auv} [tv]] [$dNum_auw{v} [lid]]
       {Exports: [a{v asV} [lid] <= a{v asY} [lid]
                    /\(@ a{tv auy} [tv]).
                    \($dNum_auz{v} [lid] :: base:GHC.Num.Num{tc 2b} a{tv
 auy} [tv]).
                    let {EvBinds{$dNum_auC{v} [lid] = $dNum_auz{v} [lid]}}
                    (<>) @ a{tv auy} [tv] $dNum_auC{v} [lid]]
        Exported types: a{v asV} [lid]
                          :: forall a{tv auv} [tv].
                             base:GHC.Num.Num{tc 2b} a{tv auv} [tv] =>
                             (# a{tv auv} [tv] #)
                        [LclId, Str=DmdType]
        Binds: {<interactive>:2:5-15}
               a{v asY} [lid] :: (# a{tv auv} [tv] #)
               [LclId, Str=DmdType]
               a{v asY}
                 = {<interactive>:2:9-15}
                   (# 1 ((base:GHC.Num.fromInteger{v 02A}) @ a{tv auv} [tv]
                           $dNum_au8{v} [lid]
                           1) #)
               <>
        Evidence: EvBinds{$dNum_au8{v} [lid] = $dNum_auw{v} [lid]}}
     base:GHC.Base.returnIO{v 0z} [gid]
       @ [()]
       (ghc-prim:GHC.Types.:{(w) v 65} [gid[DataCon]]
          @ ()
          (ghc-prim:GHC.Prim.unsafeCoerce#{(w) v 0u} [gid]
             @ (forall a{tv auv} [tv].
                base:GHC.Num.Num{tc 2b} a{tv auv} [tv] =>
                (# a{tv auv} [tv] #))
             @ ()
             a{v asV} [lid])
          (ghc-prim:GHC.Types.[]{(w) v 6n} [gid[DataCon]] @ ()))

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

 ghci> let a = (# 1, 2 #)
 ghc: panic! (the 'impossible' happened)
   (GHC version 7.8.2 for x86_64-unknown-linux):
         dsLet: unlifted
     AbsBinds [a{tv auW} [tv], a{tv auX} [tv]] [$dNum_auY{v} [lid],
                                                $dNum_auZ{v} [lid]]
       {Exports: [a{v auK} [lid] <= a{v auN} [lid]
                    /\(@ a{tv av1} [tv]).
                    /\(@ a{tv av2} [tv]).
                    \($dNum_av3{v} [lid] :: base:GHC.Num.Num{tc 2b} a{tv
 av2} [tv]).
                    \($dNum_av4{v} [lid] :: base:GHC.Num.Num{tc 2b} a{tv
 av1} [tv]).
                    let {EvBinds{$dNum_av8{v} [lid] = $dNum_av3{v} [lid]
                                 $dNum_av9{v} [lid] = $dNum_av4{v} [lid]}}
                    (<>) @ a{tv av1} [tv] @ a{tv av2} [tv] $dNum_av8{v}
 [lid]
                      $dNum_av9{v} [lid]]
        Exported types: a{v auK} [lid]
                          :: forall a{tv auW} [tv] a{tv auX} [tv].
                             (base:GHC.Num.Num{tc 2b} a{tv auX} [tv],
                              base:GHC.Num.Num{tc 2b} a{tv auW} [tv]) =>
                             (# a{tv auW} [tv], a{tv auX} [tv] #)
                        [LclId, Str=DmdType]
        Binds: {<interactive>:3:5-18}
               a{v auN} [lid] :: (# a{tv auW} [tv], a{tv auX} [tv] #)
               [LclId, Str=DmdType]
               a{v auN}
                 = {<interactive>:3:9-18}
                   (# 1 ((base:GHC.Num.fromInteger{v 02A}) @ a{tv auW} [tv]
                           $dNum_auR{v} [lid]
                           1),
                      2 ((base:GHC.Num.fromInteger{v 02A}) @ a{tv auX} [tv]
                           $dNum_auT{v} [lid]
                           2) #)
               <>
        Evidence: EvBinds{$dNum_auR{v} [lid] = $dNum_auZ{v} [lid]
                          $dNum_auT{v} [lid] = $dNum_auY{v} [lid]}}
     base:GHC.Base.returnIO{v 0z} [gid]
       @ [()]
       (ghc-prim:GHC.Types.:{(w) v 65} [gid[DataCon]]
          @ ()
          (ghc-prim:GHC.Prim.unsafeCoerce#{(w) v 0u} [gid]
             @ (forall a{tv auW} [tv] a{tv auX} [tv].
                (base:GHC.Num.Num{tc 2b} a{tv auX} [tv],
                 base:GHC.Num.Num{tc 2b} a{tv auW} [tv]) =>
                (# a{tv auW} [tv], a{tv auX} [tv] #))
             @ ()
             a{v auK} [lid])
          (ghc-prim:GHC.Types.[]{(w) v 6n} [gid[DataCon]] @ ()))

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

 ghci>
 }}}

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


More information about the ghc-tickets mailing list