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

Reply via email to