cvs commit: fptools/ghc/compiler/stranal DmdAnal.lhs

Simon Peyton Jones simonpj@glass.cse.ogi.edu
Tue, 6 Nov 2001 06:19:24 -0800


simonpj     2001/11/06 06:19:24 PST

  Modified files:
    ghc/compiler/stranal DmdAnal.lhs 
  Log:
  	---------------------------------------
  	Fix YET ANOTHER lub/both bug in DmdAnal
  	---------------------------------------
  
  	MERGE TO 5.02 branch (it's a real bug)
  
  Two bugs actually.  One showed up in a program by
  Jeremy Manson, and led to an "entered absent arg"
  error.  The problem was
  
  	Err `lub` U(L,A)  /=  U(L,A)
  
  which is what we had.  It should be
  
  	Err `lub` U(L,A) = U(Err `lub` L, Err `lub` A)
  			 = U(LL)
  
  The second bug was found by Peter Sestoft while
  staring at the code.
  
  	V `lub` Defer(ds) /= U(L)
  
  It should be Lazy on the RHS.
  
  Very large sigh.
  
  Revision  Changes    Path
  1.30      +28 -8     fptools/ghc/compiler/stranal/DmdAnal.lhs