[GHC] #10602: ghc panic: Template variable unbound in rewrite rule when compiling with -O2

GHC ghc-devs at haskell.org
Sun Jul 5 11:58:41 UTC 2015


#10602: ghc panic: Template variable unbound in rewrite rule when compiling with
-O2
-------------------------------------+-------------------------------------
        Reporter:  pacak             |                   Owner:
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:  7.10.2
       Component:  Compiler          |                 Version:  7.10.2-rc2
      Resolution:                    |                Keywords:
Operating System:  Linux             |            Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash                              |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------
Description changed by goldfire:

Old description:

> I've seen a few related tickets, but they are market as closed.
>

> % ghc -O2 binlist.hs
>

> [1 of 1] Compiling Main             ( binlist.hs, binlist.o )
> ghc: panic! (the 'impossible' happened)
>   (GHC version 7.10.1.20150630 for x86_64-unknown-linux):
>         Template variable unbound in rewrite rule
>   sg_s5zh
>   [sc_s5zf, sc_s5zg, sg_s5zh, sg_s5zi]
>   [sc_s5zf, sc_s5zg, sg_s5zh, sg_s5zi]
>   [: @ a_a3fo sc_s5zf sc_s5zg]
>   [: @ a_a3fo sc_s5zb sc_s5zc]
>
> Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
>
> % cat binlist.hs
> import Control.Monad
> import Data.Binary
> import Data.List
>

> newtype A a = A [a]
>

> instance Binary a => Binary (A a) where
>     put (A xs) = case splitAt 254 xs of
>         (_, []) -> mapM_ put xs
>         (a, b)  -> put (A b)
>
>     get = do xs <- replicateM 254 get
>              A ys <- get
>              return $ A $ xs ++ ys
>
> main :: IO ()
> main = undefined

New description:

 I've seen a few related tickets, but they are market as closed.

 {{{
 % ghc -O2 binlist.hs


 [1 of 1] Compiling Main             ( binlist.hs, binlist.o )
 ghc: panic! (the 'impossible' happened)
   (GHC version 7.10.1.20150630 for x86_64-unknown-linux):
         Template variable unbound in rewrite rule
   sg_s5zh
   [sc_s5zf, sc_s5zg, sg_s5zh, sg_s5zi]
   [sc_s5zf, sc_s5zg, sg_s5zh, sg_s5zi]
   [: @ a_a3fo sc_s5zf sc_s5zg]
   [: @ a_a3fo sc_s5zb sc_s5zc]

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

 % cat binlist.hs

 import Control.Monad
 import Data.Binary
 import Data.List


 newtype A a = A [a]


 instance Binary a => Binary (A a) where
     put (A xs) = case splitAt 254 xs of
         (_, []) -> mapM_ put xs
         (a, b)  -> put (A b)

     get = do xs <- replicateM 254 get
              A ys <- get
              return $ A $ xs ++ ys

 main :: IO ()
 main = undefined
 }}}

--

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


More information about the ghc-tickets mailing list