Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : supercompiler
http://hackage.haskell.org/trac/ghc/changeset/8229fa6d6c53704fab96731de78a035585d35425 >--------------------------------------------------------------- commit 8229fa6d6c53704fab96731de78a035585d35425 Author: Max Bolingbroke <batterseapo...@hotmail.com> Date: Wed Apr 25 18:12:28 2012 +0100 Add a FIXME about the effects on termination of instance-MSGing >--------------------------------------------------------------- compiler/supercompile/Supercompile/Drive/MSG.hs | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/compiler/supercompile/Supercompile/Drive/MSG.hs b/compiler/supercompile/Supercompile/Drive/MSG.hs index 167fc7b..90ecaf8 100644 --- a/compiler/supercompile/Supercompile/Drive/MSG.hs +++ b/compiler/supercompile/Supercompile/Drive/MSG.hs @@ -940,6 +940,12 @@ msgPureHeap mm rn2 msg_e msg_s (Heap init_h_l init_ids_l) (Heap init_h_r init_id -- ... -- -- FIXME: I don't have a good solution at the moment. For now, I've patched it so we don't use these branches. + -- FIXME: carefully document the basis (if any) by which I believe it is OK to MSG stuff out like this + -- Naively it seems rather dangerous. Consider: + -- 1. Supercompile (let f = \x. x in f) + -- 2. Split to (\x. x) + -- 3. MSG against the simple variable b (with the same tag, presumably) + -- 4. Instance-split will drive (\x. x) as the next term, so we might tieback to get a loop :( {- | Just (x_l, e_r) <- varTermPair e_l e_r , let (ids_r', x_r) = uniqAway' ids_r x_common _______________________________________________ Cvs-ghc mailing list Cvs-ghc@haskell.org http://www.haskell.org/mailman/listinfo/cvs-ghc