logo       

TH bug reported (GHC 6.4): msg#00110

lang.haskell.glasgow.bugs

Subject: TH bug reported (GHC 6.4)

I have the following Haskell modules:

<genCG.hs>
{-# OPTIONS -fglasgow-exts #-}
module GenCG where

gdecls pbname pbniname = [d|
valGetter pbname = "Get" ++ $pbniname
valSetter pbname = "Set" ++ $pbniname
fldGetter pbname = "Get" ++ $pbniname ++ "Field"
fldSetter pbname = "Set" ++ $pbniname ++ "Field"
arrGetter pbname = "Get" ++ $pbniname ++ "ArrayItem"
arrSetter pbname = "Set" ++ $pbniname ++ "ArrayItem"
gvarGetter pbname = "Get" ++ $pbniname ++ "GlobalVar"
gvarSetter pbname = "Set" ++ $pbniname ++ "GlobalVar"
svarGetter pbname = "Get" ++ $pbniname ++ "SharedVar"
svarSetter pbname = "Set" ++ $pbniname ++ "SharedVar"
|]
</genCG.hs>

and

<spliceCG.hs>
{-# OPTIONS -fglasgow-exts #-}
module SpliceCG where

import GenCG

$(gdecls "integer" [| "Int" |])
$(gdecls "unsignedinteger" [| "Uint" |])
</spliceCG.hs>

Trying to compile 'spliceCG.hs' I'm recieving the following:

Loading package base-1.0 ... linking ... done.
Loading package haskell98-1.0 ... linking ... done.
Loading package template-haskell-1.0 ... linking ... done.
ghc.EXE: panic! (the `impossible' happened, GHC version 6.4):
plusProv SpliceCG SpliceCG

Please report it as a compiler bug to glasgow-haskell-bugs@xxxxxxxxxxx,
or http://sourceforge.net/projects/ghc/.

If I splice in a single declaration, for example:
<spliceCG.hs>
{-# OPTIONS -fglasgow-exts #-}
module SpliceCG where

import GenCG

$(gdecls "integer" [| "Int" |])
</spliceCG.hs>

it is compiled just fine.


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise