[GHC] #4419: dph tests fail with panic
simonpj at microsoft.com
Wed Oct 20 05:06:10 EDT 2010
What I do in the simplifier is to put the rec group in a good order, then work top-to-bottom, simplifying each RHS, adding its unfolding, and then on to the next. No need for loops.
| -----Original Message-----
| From: Roman Leshchinskiy [mailto:rl at cse.unsw.edu.au]
| Sent: 20 October 2010 09:34
| To: Simon Peyton-Jones
| Cc: Ian Lynagh; cvs-ghc at haskell.org
| Subject: Re: [GHC] #4419: dph tests fail with panic
| If we generate a group of mutually recursive bindings, of which some have an
| unfolding, do we have any choice but to use setIdUnfoldingLazily? Would it perhaps
| make sense to be lazy by default and have setIdUnfoldingStrictly for those cases where
| it matters?
| On 20 Oct 2010, at 07:57, Simon Peyton-Jones <simonpj at microsoft.com> wrote:
| > | Tue Oct 19 08:45:52 PDT 2010 Ian Lynagh <igloo at earth.li>
| > | * seq the unfolding in setUnfoldingInfo
| > |
| > | Tue Oct 19 13:15:37 PDT 2010 Ian Lynagh <igloo at earth.li>
| > | * Define setIdUnfoldingLazily, and use it in Vectorise
| > | Fixes a loop in the compiler, when running the dph tests
| > Ian: Well done finding this <<loop>> problem! They tend to be very subtle.
| > I don't know the background here, but this kind of thing needs a
| > serious comment
| > Note [Why we must setIdUnfoldingLazily here]
| > in Vectorise.hs. In a year's time we will have totally forgotten why
| > the black hole arose, and it's a pain to have to work it out from
| > scratch again.
| > Could you add the explanation?
| > Thanks
| > Simon
| > _______________________________________________
| > Cvs-ghc mailing list
| > Cvs-ghc at haskell.org
| > http://www.haskell.org/mailman/listinfo/cvs-ghc
More information about the Cvs-ghc