[project @ 2002-06-18 13:58:22 by simonpj]
authorsimonpj <unknown>
Tue, 18 Jun 2002 13:58:23 +0000 (13:58 +0000)
committersimonpj <unknown>
Tue, 18 Jun 2002 13:58:23 +0000 (13:58 +0000)
commit3d2db48412b8f469ba4943f95b0dce9354de4afb
tree6fac0a68eb64664e73f04cde5c407c42896fd0e9
parent5447e2abdd342f9892b2a8e61dbc85fc9f713bfe
[project @ 2002-06-18 13:58:22 by simonpj]
---------------------------------------
    Rehash the handling of SeqOp
---------------------------------------

See the comments in the commentary (Cunning Prelude Code).

* Expunge SeqOp altogether

* Add GHC.Base.lazy :: a -> a
  to GHC.Base

* Add GHC.Base.lazy
  to basicTypes/MkId.  The idea is that this defn will over-ride
  the info from GHC.Base.hi, thereby hiding strictness and
  unfolding

* Make stranal/WorkWrap do a "manual inlining" for GHC.Base.lazy
  This happens nicely after the strictness analyser has run.

* Expunge the SeqOp/ParOp magic in CorePrep

* Expunge the RULE for seq in PrelRules

* Change the defns of pseq/par in GHC.Conc to:

{-# INLINE pseq  #-}
        pseq :: a -> b -> b
        pseq  x y = x `seq` lazy y

        {-# INLINE par  #-}
        par :: a -> b -> b
        par  x y = case (par# x) of { _ -> lazy y }
GHC/Base.lhs
GHC/Conc.lhs
GHC/Err.lhs