[GHC] #4419: dph tests fail with panic

Simon Peyton-Jones 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?
|  
|  Roman
|  
|  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 mailing list