Yes, this is a known bug, but thank you for reporting it anyway. I'm going to fix it as part of my next sweep though.
I enclose a message that gives a workaround. Simon | -----Original Message----- | From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On | Behalf Of Ch. A. Herrmann | Sent: 05 June 2003 14:28 | To: [EMAIL PROTECTED] | Subject: ghc-6.0 compiler bug | | Hi, | | playing around with partial evaluation, | I encountered the following bug: | | 65> ghc --make -fglasgow-exts -package haskell-src Main.hs -o Main -ddump-splices | Chasing modules from: Main.hs | Compiling Power ( Power.hs, ./Power.o ) | Compiling Main ( Main.hs, ./Main.o ) | ghc-6.0: panic! (the `impossible' happened, GHC version 6.0): | nameModule x {- v a1BE -} | | Please report it as a compiler bug to [EMAIL PROTECTED], | or http://sourceforge.net/projects/ghc/. | ------------------------------------------------------------------------ ---------- | module Power where | | import Language.Haskell.THSyntax | | pow :: ExpQ -> Int -> ExpQ | pow x 0 = [| const 1 |] | pow x n | n>0 = [| $x * $(pow x (n-1)) |] | ------------------------------------------------------------------------ ---------- | module Main where | | import Power (pow) | | main = let x = 2 :: Double | in putStrLn (show ($(pow [|x|] 5))) | ------------------------------------------------------------------------ ---------- | Good luck | -- | Dr. Christoph Herrmann | Teaching and Research Assistant | University of Passau, Germany | http://www.fmi.uni-passau.de/~herrmann | _______________________________________________ | Glasgow-haskell-bugs mailing list | [EMAIL PROTECTED] | http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
--- Begin Message ---Thomas Absolutely right! There is a total omission in the TH implementation for the free 'x' in \x -> $(power 2 [| x |]) You can get round this in a clunky way by wrapping the whole thing in $[| |], thus $([| \x -> $(power 2 [| x |]) |]) This works, but it's not pretty. The Right Thing is to fix it, which I hope to do. thanks for pointing this out. TH is pretty subtle Simon | -----Original Message----- | From: Thomas Harke [mailto:[EMAIL PROTECTED] | Sent: 10 March 2003 18:15 | To: [EMAIL PROTECTED] | | Hi, | | while experimenting with template haskell I encountered the following: | | ] ghc --make Main.hs | ] Chasing modules from: Main.hs | ] Skipping Power ( Power.hs, ./Power.o ) | ] Compiling Main ( Main.hs, ./Main.o ) | ] ghc-5.05: panic! (the `impossible' happened, GHC version 5.05): | ] nameModule x {- v a1fV -} | ] | ] Please report it as a compiler bug to [EMAIL PROTECTED], | ] or http://sourceforge.net/projects/ghc/. | ] | ] | ] make: *** [main] Error 1 | | This was using a version very recently checked out of CVS (Friday, 14 March) | | The files that caused the problem are attached. | | -- | Tom Harke | Computer Science and Engineering Department | Oregon Graduate Institute | | Weiler's Law: | Nothing is impossible for the man who doesn't have to do it himself _______________________________________________ template-haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/template-haskell
--- End Message ---
