[GHC] #10745: Error in fusion when compiling Data.Yaml

GHC ghc-devs at haskell.org
Wed Sep 9 14:32:42 UTC 2015


#10745: Error in fusion when compiling Data.Yaml
---------------------------------+-----------------------------------------
        Reporter:  nclarke       |                   Owner:
            Type:  bug           |                  Status:  merge
        Priority:  normal        |               Milestone:  7.10.3
       Component:  Compiler      |                 Version:  7.10.2
      Resolution:                |                Keywords:
Operating System:  Linux         |            Architecture:  x86_64 (amd64)
 Type of failure:  None/Unknown  |               Test Case:
      Blocked By:                |                Blocking:
 Related Tickets:                |  Differential Revisions:
---------------------------------+-----------------------------------------

Comment (by nclarke):

 I didn't have the sandbox, but this issue has reappeared, so I've been
 able to build with -dppr-ticks:


 {{{
 ghc: panic! (the 'impossible' happened)
   (GHC version 7.10.2 for x86_64-unknown-linux):
         Tick in rule
   hpc<Data.Conduit.Internal.Fusion,76>
   hpc<Data.Conduit.Internal.Fusion,75>
   unstream
     @ a34_ay7l
     @ Void
     @ m_ay7j
     @ b_ay7k
     (ConduitWithStream
        @ a34_ay7l
        @ Void
        @ m_ay7j
        @ b_ay7k
        (let {
           $dApplicative_ay7r :: Applicative (ConduitM a34_ay7l Void
 m_ay7j)
           [LclId, Str=DmdType]
           $dApplicative_ay7r =
             $fApplicativeConduitM
               @ a34_ay7l
               @ Void
               @ m_ay7j
               ($fFunctorConduitM @ a34_ay7l @ Void @ m_ay7j) } in
         letrec {
           loop_ay7s :: b_ay7k -> ConduitM a34_ay7l Void m_ay7j b_ay7k
           [LclId, Arity=1, Str=DmdType]
           loop_ay7s =
             \ (accum_ay7t :: b_ay7k) ->
               hpc<Data.Conduit.List,584>
               hpc<Data.Conduit.List,583>
               hpc<Data.Conduit.List,582>
               $fMonadConduitM_$c>>=
                 @ a34_ay7l
                 @ Void
                 @ m_ay7j
                 $dApplicative_ay7r
                 @ (Maybe a34_ay7l)
                 @ b_ay7k
                 ((hpc<Data.Conduit.List,577>
                   await @ a34_ay7l @ m_ay7j $dMonad1_ay7n)
                    @ Void)
                 (hpc<Data.Conduit.List,581>
                  maybe
                    @ (ConduitM a34_ay7l Void m_ay7j b_ay7k)
                    @ a34_ay7l
                    (hpc<Data.Conduit.List,579>
                     $fMonadConduitM_$creturn
                       @ a34_ay7l
                       @ Void
                       @ m_ay7j
                       $dApplicative_ay7r
                       @ b_ay7k
                       (hpc<Data.Conduit.List,578> accum_ay7t))
                    (hpc<Data.Conduit.List,580>
                     \ (a35_ay7u :: a34_ay7l) ->
                       hpc<Data.Conduit.List,576>
                       hpc<Data.Conduit.List,575>
                       $fMonadConduitM_$c>>=
                         @ a34_ay7l
                         @ Void
                         @ m_ay7j
                         $dApplicative_ay7r
                         @ b_ay7k
                         @ b_ay7k
                         (hpc<Data.Conduit.List,570>
                          $ @ (m_ay7j b_ay7k)
                            @ (ConduitM a34_ay7l Void m_ay7j b_ay7k)
                            (hpc<Data.Conduit.List,566>
                             $fMonadBasebaseConduitM_$clift
                               @ a34_ay7l @ Void @ m_ay7j @ b_ay7k
 $dMonad1_ay7n)
                            (hpc<Data.Conduit.List,569>
                             f_ay7p
                               (hpc<Data.Conduit.List,567> accum_ay7t)
                               (hpc<Data.Conduit.List,568> a35_ay7u)))
                         (\ (accum'_ay7v :: b_ay7k) ->
                            hpc<Data.Conduit.List,574>
                            hpc<Data.Conduit.List,571>
                            case accum'_ay7v of wild_ay7w { __DEFAULT ->
                            hpc<Data.Conduit.List,573>
                            loop_ay7s (hpc<Data.Conduit.List,572>
 wild_ay7w)
                            }))); } in
         hpc<Data.Conduit.List,586>
         hpc<Data.Conduit.List,585> loop_ay7s b1_ay7q)
        (foldMS
           @ b_ay7k @ a34_ay7l @ m_ay7j $dMonad1_ay7n f_ay7p b1_ay7q @
 Void))

 }}}

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


More information about the ghc-tickets mailing list