[project @ 1999-02-17 15:57:20 by simonm]
authorsimonm <unknown>
Wed, 17 Feb 1999 15:57:39 +0000 (15:57 +0000)
committersimonm <unknown>
Wed, 17 Feb 1999 15:57:39 +0000 (15:57 +0000)
commit449deb80dde91031b86b9cb4fb183696e0139bae
tree540d76690c299f142f6a10b69c880d9b58fa8b34
parent58f9684c1f0f0b2b7dc06afefb9968b4e9543ae7
[project @ 1999-02-17 15:57:20 by simonm]
Fast Integers.  The rep. of Integers is now

data Integer = S# Int#
     | J# Int# ByteArray#

- several new primops added for overflow-detecting arithmetic
- negateInteger# removed; it can be done directly
- integer_0, integer_1 etc. removed.
- the compiler now uses S# where it previously used int2Integer.
- the compiler generates small integers for -2^32 .. 2^32-1, instead
  of -2^29 .. -2^29-1.

- PrelST.State datatype moved to LazyST (its only use).
- some library code (in Time.lhs) still needs cleaning up, it depends
  on the Integer rep.
22 files changed:
ghc/compiler/basicTypes/Unique.lhs
ghc/compiler/main/Constants.lhs
ghc/compiler/prelude/PrelInfo.lhs
ghc/compiler/prelude/PrimOp.lhs
ghc/compiler/prelude/TysWiredIn.lhs
ghc/compiler/simplCore/SimplCore.lhs
ghc/compiler/types/PprType.lhs
ghc/docs/users_guide/4-03-notes.vsgml
ghc/includes/PrimOps.h
ghc/lib/exts/Int.lhs
ghc/lib/exts/LazyST.lhs
ghc/lib/exts/Word.lhs
ghc/lib/std/Directory.lhs
ghc/lib/std/PrelAddr.lhs
ghc/lib/std/PrelBase.lhs
ghc/lib/std/PrelGHC.hi-boot
ghc/lib/std/PrelHandle.lhs
ghc/lib/std/PrelNum.lhs
ghc/lib/std/PrelNumExtra.lhs
ghc/lib/std/PrelST.lhs
ghc/lib/std/Time.lhs
ghc/rts/PrimOps.hc