[cvs-nhc98] patch applied (hat): Modified combinators and also slightly the transformation.

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Tue Oct 10 07:02:39 EDT 2006


Wed Mar 28 10:33:56 PST 2001  olaf
  * Modified combinators and also slightly the transformation.
  
  Moved introduction of Sat's from functions side (fun?, prim?) to
  application side (ap?, rap?).
  - Removes previous bug that transformed program was too eager,
    e.g. in (True || h True) the application of h was evaluated.
  - Creation of Sat and App? trace nodes now next to each other.
    Integration of writing a Sat and an App? now straightforward.
  - Subsequent RHS-optimisation possible.
  
  Corrected bug in transformation of let. Expression after in is only
  in projective context if whole let is in projective context.
  This bug could lead to missing Hidden node in trusted code and
  too eager evaluation when the RHS-optimisation is used.
  
  Introduced separate combinator trif for if in projective context.
  The use of original tif could lead to too eager evaluation
  (never observed) and this would have become worse with the
  RHS-optimisation.
  
  RHS-optimisation: If an application (or if) is in projective context,
  then it doesn't need a Sat, because the application node only serves
  as a parent, but is never pointed to from an App? as an argument.
  So modified rap? and trif to not produce Sats. This halfs the number
  of SatCs and reduces runtime by ~10%.

    M ./src/compiler98/DbgId.hs -2 +4
    M ./src/compiler98/DbgTrans.hs -4 +4


More information about the Cvs-nhc98 mailing list