[Template-haskell] TH bug again (GHC 6.4)

kyra kyrab at mail.ru
Fri Apr 22 21:51:48 EDT 2005


If I simply try the following:

<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>

GHC 6.4 simply crashes with the memory access error - GHC (windows) reports:
"The instruction at "0x00b9ad27" referenced memory at "0xff047687". The
memory could not be "read".

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

import GenCG

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

compiles just fine.



More information about the template-haskell mailing list