- 10 May, 1999 1 commit
-
-
sof authored
integer2Int#, take 3
-
- 07 May, 1999 1 commit
-
-
sof authored
integer2Int# again: don't flip sign unless outside [minInt,maxInt]
-
- 04 May, 1999 1 commit
-
-
sof authored
integer2Int# isn't sign preserving any longer, but modulo maxBound
-
- 27 Apr, 1999 1 commit
-
-
simonm authored
Remove declaration of PrelBase_Bool_closure_tbl.
-
- 23 Apr, 1999 1 commit
-
-
simonm authored
dataToTag# support.
-
- 16 Mar, 1999 1 commit
-
-
simonm authored
Improvements to the threading model. - asynchronous exceptions supported. - killThread# can now raise an exception in the specified thread. It's new type is killThread# :: ThreadId# -> Exception -> IO () High-level versions: killThread :: ThreadId -> IO () raiseInThread :: ThreadId -> Exception -> IO () (killThread raises a 'ThreadKilled' exception in the specified thread). If the thread has no exception handler, it is killed as before. Otherwise, the exception is passed to the innermost CATCH_FRAME and the thread is woken up if it was blocked. The current computation is suspended, instead of being replaced by the exception (as is the case with throw). Sending an exception to the current thread works too. - new primitive: myThreadId# :: IO ThreadId# and corresponding high-level version myThreadId :: IO ThreadId. - new primitive: yield# :: IO (), and yield :: IO (). - the TSO now contains a pointer to the resource currently blocked on (MVAR or BLACKHOLE_BQ). - Add a giant comment to TSO.h about what the various link fields are supposed to do, and invariants etc.
-
- 05 Mar, 1999 1 commit
-
-
sof authored
Support for unsafely thawing your (Byte)Arrays, i.e., added the following ops: MutableArray.unsafeThawArray :: Ix ix => Array ix elt -> ST s (MutableArray s ix elt) MutableArray.unsafeThawByteArray :: Ix ix => ByteArray ix -> ST s (MutableByteArray s ix) MutableArray.thawByteArray :: Ix ix => ByteArray ix -> ST s (MutableByteArray s ix) ST.unsafeThawSTArray :: Ix ix => Array ix elt -> ST s (STArray s ix elt) LazyST.unsafeThawSTArray :: Ix ix => Array ix elt -> ST s (STArray s ix elt) IOExts.unsafeFreezeIOArray :: Ix ix => IOArray ix elt -> IO (Array ix elt) IOExts.unsafeThawIOArray :: Ix ix => Array ix elt -> IO (IOArray ix elt) + removed the re-exportation of Monad that ST and LazyST did.
-
- 02 Mar, 1999 1 commit
-
-
sof authored
- misc changes to support DLLs - StgNat* --> StgWord*
-
- 01 Mar, 1999 1 commit
-
-
simonm authored
Missing { in mulIntCzh
-
- 18 Feb, 1999 1 commit
-
-
simonm authored
Add two new operations to StgPrimFloat.c: __int_encodeFloat __int_encodeDouble for encoding floats/doubles from small integers. This avoids having to convert small integers to large ones before an encodeFloat operation, and fixes the two cases of slowdown in nofib after the small integer changes. Also: - remove encodeFloat and decodeFloat as primops - use foreign import for encode{Float,Double} and the various isNaN etc. ccalls in PrelNumExtra.
-
- 17 Feb, 1999 1 commit
-
-
simonm authored
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.
-
- 11 Feb, 1999 2 commits
- 05 Feb, 1999 2 commits
- 02 Feb, 1999 1 commit
-
-
simonm authored
Remove warnings in deRefWeakzh.
-
- 01 Feb, 1999 1 commit
-
-
simonm authored
- Add finalise# - Add mkWeakNoFinaliser - Move deRefWeak# from an out-of-line primop to an inline one.
-
- 29 Jan, 1999 1 commit
-
-
simonm authored
zh --> Zh (for genSymZh and resetGenSymZh)
-
- 27 Jan, 1999 1 commit
-
-
simonpj authored
Finally! This commits the ongoing saga of Simon's hygiene sweep FUNCTIONALITY ~~~~~~~~~~~~~ a) The 'unused variable' warnings from the renamer work. b) Better error messages here and there, esp type checker c) Fixities for Haskell 98 (maybe I'd done that before) d) Lazy reporting of name clashes for Haskell 98 (ditto) HYGIENE ~~~~~~~ a) type OccName has its own module. OccNames are represented by a single FastString, not three as in the last round. This string is held in Z-encoded form; a decoding function decodes for printing in user error messages. There's a nice tight encoding for (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) b) type Module is a proper ADT, in module OccName c) type RdrName is a proper ADT, in its own module d) type Name has a new, somwhat tidier, representation e) much grunting in the renamer to get Provenances right. This makes error messages look better (no spurious qualifiers)
-
- 26 Jan, 1999 1 commit
-
-
simonm authored
- Add Stable Names - Stable pointers and stable names are now both provided by the "Stable" module in ghc/lib/exts. Documentation is updated, and Foriegn still exports the stable pointer operations for backwards compatibility.
-
- 23 Jan, 1999 1 commit
-
-
sof authored
integerToInt64Zh: didn't handle negative integers particularly well
-
- 21 Jan, 1999 1 commit
-
-
simonm authored
Resurrect ticky-ticky profiling. Not quite polished yet, but it compiles and produces some reasonable-looking stats.
-
- 19 Jan, 1999 1 commit
-
-
simonm authored
Remove debugging code from freeStablePtr.
-
- 18 Jan, 1999 1 commit
-
-
sof authored
Added debugging code to freeStablePtr macro
-
- 14 Jan, 1999 2 commits
- 13 Jan, 1999 1 commit
-
-
simonm authored
Added a generational garbage collector. The collector is reliable but fairly untuned as yet. It works with an arbitrary number of generations: use +RTS -G<gens> to change the number of generations used (default 2). Stats: +RTS -Sstderr is quite useful, but to really see what's going on compile the RTS with -DDEBUG and use +RTS -D32. ARR_PTRS removed - it wasn't used anywhere. Sanity checking improved: - free blocks are now spammed when sanity checking is turned on - a check for leaking blocks is performed after each GC.
-
- 02 Dec, 1998 1 commit
-
-
simonm authored
Move 4.01 onto the main trunk.
-