[project @ 2000-01-25 10:06:31 by panne]
authorpanne <unknown>
Tue, 25 Jan 2000 10:06:32 +0000 (10:06 +0000)
committerpanne <unknown>
Tue, 25 Jan 2000 10:06:32 +0000 (10:06 +0000)
Added intToWord to PrelAddr.
Use it instead of int2Word#-hacks.

ghc/lib/std/Directory.lhs
ghc/lib/std/PrelAddr.lhs

index 6ca0029..ab9010e 100644 (file)
@@ -56,7 +56,7 @@ module Directory
 
 import Prelude         -- Just to get it in the dependencies
 
-import PrelGHC         ( RealWorld, int2Word#, or#, and# )
+import PrelGHC         ( RealWorld, or#, and# )
 import PrelByteArr     ( ByteArray, MutableByteArray,
                          newWordArray, readWordArray, newCharArray,
                          unsafeFreezeByteArray
@@ -66,7 +66,7 @@ import PrelIOBase     ( stToIO,
                          constructErrorAndFail, constructErrorAndFailWithInfo,
                          IOError(IOError), IOErrorType(SystemError) )
 import Time             ( ClockTime(..) )
-import PrelAddr                ( Addr, nullAddr, Word(..), wordToInt )
+import PrelAddr                ( Addr, nullAddr, Word(..), wordToInt, intToWord )
 #endif
 
 \end{code}
@@ -545,8 +545,7 @@ emptyFileMode     = primIntToWord 0
 unionFileMode     = primOrWord
 intersectFileMode = primAndWord
 #else
---ToDo: tidy up.
-emptyFileMode     = W# (int2Word# 0#)
+emptyFileMode     = intToWord 0
 unionFileMode     = orWord
 intersectFileMode = andWord
 #endif
index 1f61cec..3b9f77d 100644 (file)
@@ -15,6 +15,7 @@ module PrelAddr (
 
        , Word(..)
        , wordToInt
+       , intToWord
 
        , Word64(..)
        , Int64(..)
@@ -43,6 +44,9 @@ instance CReturnable Word
 wordToInt :: Word -> Int
 wordToInt (W# w#) = I# (word2Int# w#)
 
+intToWord :: Int -> Word
+intToWord (I# i#) = W# (int2Word# i#)
+
 #if WORD_SIZE_IN_BYTES == 8
 data Word64 = W64# Word#
 data Int64  = I64# Int#