Three problems here

1.  Your program is ill-staged.  Running the splice requires executing
'foo',
so 'foo' must be in another module.

2. GHC should report that as a staging error, but wasn't.

3. But even then it should not have crashed.  Its should have reported
a linking error when trying to run the splice.

I've fixed (2) and (3)

Simon


| -----Original Message-----
| From: Wolfgang Thaller [mailto:[EMAIL PROTECTED]]
| Sent: 27 December 2002 12:32
| To: [EMAIL PROTECTED]
| Subject: Template Haskell Crash
| 
| Compiling the following program causes GHC to segfault with the HEAD
on
| both Mac OS X and Red Hat Linux/x86:
| 
| module THCrash where
| 
| import Language.Haskell.THSyntax
| 
| foo = [| 1 + 2 |]
| 
| $(sequence [val (pvar "bar") (normal foo) []])
| 
| 
| Running the compiler with +RTS -DS (sanity checking) yields the
| following error messages:
| 
| On Mac OS X:
| ghc-5.05: internal error: checkStackFrame: weird activation record
| found on stack (0x134fdd8).
| On Linux, a segfault happens at Sanity.c line 85, in
| checkClosureShallow.
| 
| 
| Cheers,
| 
| Wolfgang
| 
| _______________________________________________
| Glasgow-haskell-bugs mailing list
| [EMAIL PROTECTED]
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to