As a by-product of hacking Fudgets to death, a bug in ghc-2.08 showed up.
Compiling the fragment from Fudgets below (the real names made as much
sense to me as the ones below :-), ghc fails ungracefully:

----------------------------------------------------------------------
module Foo where
foo = bar
   where bar = \baz -> (baz + boing, truncate baz, truncate boing)
         boing = 0
----------------------------------------------------------------------

Transcript:

ghc -c Foo.hs

zonkIdOcc:  truncate_aXz

panic! (the `impossible' happened):
        lookupBindC:no info!
 for: truncate_aXz
(probably: data dependencies broken by an optimisation pass)
static binds for:
$g0_a12Y
$g1_a131
local binds for:

Please report it as a compiler bug to [EMAIL PROTECTED]


Changing the above code in innocuous looking ways (like moving baz
to the left of the equal sign, substituting bar or boing etc.) results
in a compilation without any problems.

BTW, I *really* love GHC's entertaining internal function names like
zonkIdOcc!  :-))

-- 
Sven Panne                                        Tel.: +49/89/2178-2235
LMU, Institut fuer Informatik                     FAX : +49/89/2178-2211
LFE Programmier- und Modellierungssprachen              Oettingenstr. 67
mailto:[EMAIL PROTECTED]            D-80538 Muenchen
http://www.pms.informatik.uni-muenchen.de/mitarbeiter/panne

Reply via email to