[commit: ghc] master: Remove the nonexistent lazy primop, and follow move from GHC.Base to GHC.Magic (9d7182f)

Ian Lynagh <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc
Message-ID <[email protected]>
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/9d7182fb010dc807045cb20c7b592dee5782fac8

>---------------------------------------------------------------

commit 9d7182fb010dc807045cb20c7b592dee5782fac8
Author: Ian Lynagh <[email protected]>
Date:   Tue Nov 13 20:47:10 2012 +0000

    Remove the nonexistent lazy primop, and follow move from GHC.Base to GHC.Magic

>---------------------------------------------------------------

 compiler/basicTypes/MkId.lhs    |    2 +-
 compiler/prelude/primops.txt.pp |   20 --------------------
 2 files changed, 1 insertions(+), 21 deletions(-)

diff --git a/compiler/basicTypes/MkId.lhs b/compiler/basicTypes/MkId.lhs
index 15f971a..345d8a6 100644
--- a/compiler/basicTypes/MkId.lhs
+++ b/compiler/basicTypes/MkId.lhs
@@ -887,7 +887,7 @@ unsafeCoerceName  = mkWiredInIdName gHC_PRIM (fsLit "unsafeCoerce#") unsafeCoerc
 nullAddrName      = mkWiredInIdName gHC_PRIM (fsLit "nullAddr#")     nullAddrIdKey      nullAddrId
 seqName           = mkWiredInIdName gHC_PRIM (fsLit "seq")           seqIdKey           seqId
 realWorldName     = mkWiredInIdName gHC_PRIM (fsLit "realWorld#")    realWorldPrimIdKey realWorldPrimId
-lazyIdName        = mkWiredInIdName gHC_BASE (fsLit "lazy")         lazyIdKey           lazyId
+lazyIdName        = mkWiredInIdName gHC_MAGIC (fsLit "lazy")         lazyIdKey           lazyId
 coercionTokenName = mkWiredInIdName gHC_PRIM (fsLit "coercionToken#") coercionTokenIdKey coercionTokenId
 \end{code}
 
diff --git a/compiler/prelude/primops.txt.pp b/compiler/prelude/primops.txt.pp
index 63b6009..92d3354 100644
--- a/compiler/prelude/primops.txt.pp
+++ b/compiler/prelude/primops.txt.pp
@@ -2068,26 +2068,6 @@ pseudoop   "seq"
    { Evaluates its first argument to head normal form, and then returns its second
 	argument as the result. }
 
-pseudoop   "lazy"
-   a -> a
-   { The {\tt lazy} function restrains strictness analysis a little. The call
-	{\tt (lazy e)} means the same as {\tt e}, but {\tt lazy} has a magical
-	property so far as strictness analysis is concerned: it is lazy in its first
-	argument, even though its semantics is strict. After strictness analysis has
-	run, calls to {\tt lazy} are inlined to be the identity function.
-
-	This behaviour is occasionally useful when controlling evaluation order.
-	Notably, {\tt lazy} is used in the library definition of {\tt Control.Parallel.par}:
-
-	{\tt par :: a -> b -> b}
-
-	{\tt par x y = case (par\# x) of \_ -> lazy y}
-
-	If {\tt lazy} were not lazy, {\tt par} would look strict in {\tt y} which
-	would defeat the whole purpose of {\tt par}.
-
-	Like {\tt seq}, the argument of {\tt lazy} can have an unboxed type. }
-
 primtype Any k
 	{ The type constructor {\tt Any} is type to which you can unsafely coerce any
 	lifted type, and back.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.