Tue Sep 30 09:50:29 CEST 2008 Bertram Felgenhauer * wibble order of checks in division functions for Int* A representative example of this is a `div` b | b == 0 = divZeroError | a == minBound && b == (-1) = overflowError | otherwise = a `divInt` b If b is a constant != -1 (common case), ghc generates code like a `div` b = case a of minBound -> a `divInt` b _ -> a `divInt` b This code duplication can be avoided if the two arguments of && are swapped. New patches: [wibble order of checks in division functions for Int* Bertram Felgenhauer **20080930075029 A representative example of this is a `div` b | b == 0 = divZeroError | a == minBound && b == (-1) = overflowError | otherwise = a `divInt` b If b is a constant != -1 (common case), ghc generates code like a `div` b = case a of minBound -> a `divInt` b _ -> a `divInt` b This code duplication can be avoided if the two arguments of && are swapped. ] { hunk ./GHC/Int.hs 89 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 93 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 97 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 101 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 105 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 110 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 205 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 209 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 213 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 217 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 221 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 226 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 332 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 336 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 340 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 344 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 348 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 353 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 463 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 467 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 471 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 475 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 479 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 484 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 596 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 600 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 604 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 608 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 612 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 617 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 732 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 736 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 740 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 744 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 748 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Int.hs 752 - | x == minBound && y == (-1) = overflowError + | y == (-1) && x == minBound = overflowError hunk ./GHC/Real.lhs 238 - | a == minBound && b == (-1) = overflowError + | b == (-1) && a == minBound = overflowError hunk ./GHC/Real.lhs 243 - | a == minBound && b == (-1) = overflowError + | b == (-1) && a == minBound = overflowError hunk ./GHC/Real.lhs 248 - | a == minBound && b == (-1) = overflowError + | b == (-1) && a == minBound = overflowError hunk ./GHC/Real.lhs 253 - | a == minBound && b == (-1) = overflowError + | b == (-1) && a == minBound = overflowError hunk ./GHC/Real.lhs 258 - | a == minBound && b == (-1) = overflowError + | b == (-1) && a == minBound = overflowError hunk ./GHC/Real.lhs 263 - | a == minBound && b == (-1) = overflowError + | b == (-1) && a == minBound = overflowError } Context: [Restore the Haskell 98 behaviour of Show Ratio (#1920) Simon Marlow **20080923134949] [Pad version number to 4.0.0.0 Ian Lynagh **20080920155801] [TAG 6.10 branch has been forked Ian Lynagh **20080919123437] [In nhc98, Word is a type synonym, so class instance is not possible. Malcolm.Wallace@cs.york.ac.uk**20080917075326] [Fix bugs in Text.Printf (#1548) Simon Marlow **20080916133505] [We should be including Rts.h here, not Stg.h Simon Marlow **20080912134901 Stg.h is for .hc files only, and it sets up various global register variables. ] [Generic functions that take integral arguments should work the same way as their prelude counterparts **20080822022755 The Prelude functions drop, take, and splitAt are unfailing (never call error). This patch changes the Data.List generic versions to behave the same way. At present, they call error on negative arguments. ] [Don't define __hscore_s_issock on Windows Ian Lynagh **20080904202845] [Unbreak the GHC build with older versions of gcc Ian Lynagh **20080904185122 Patch from kili@outback.escape.de, who says: Stg.h must be included before HsBase.h, because the latter contains function definitions causing older versions of gcc (3.3.5 in my case) to bail out with "error: global register variable follows a function definition" on Regs.h, which is included by Stg.h. ] [Don't make S_ISSOCK use conditional Ian Lynagh **20080904164234 We were conditionally defining the C wrapper, but unconditionally using it. So if it didn't exist then things would have broken anyway. ] [Add missing files Ian Lynagh **20080904100951] [Remerge concurrent,unique,timeout,st,getopt into base Ian Lynagh **20080903201908] [remove 'pure' method from Arrow class (#2517) Ross Paterson **20080903144436] [make Typeable instances for larger tuples available to non-GHC Ross Paterson **20080903113543] [Don't look for actual OldException.Exception exceptions Ian Lynagh **20080902224730 We don't actually throw them (we throw the new Exception equivalents instead), and looking for them was causing an infinite loop ] [add include/CTypes.h to extra-source-files Ross Paterson **20080902153029] [avoid relying on the implementation of SomeException Ross Paterson **20080902080113 This is because Hugs uses a different implementation. No semantic change. ] [non-GHC: leave out Belch functions Ross Paterson **20080831180227] [non-GHC: add Typeable instance for ForeignPtr Ross Paterson **20080831180048] [docs: mention that killThread on a completed thread is a no-op Simon Marlow **20080902093126] [#2528: reverse the order of args to (==) in nubBy to match nub Simon Marlow **20080902092950 This only makes a difference when the (==) definition is not reflexive, but strictly speaking it does violate the report definition of nubBy, so we should fix it. ] [System.Timeout is no longer part of base Malcolm.Wallace@cs.york.ac.uk**20080901145738] [getopt is no longer part of base Malcolm.Wallace@cs.york.ac.uk**20080827145336] [Split syb off into its own package Ian Lynagh **20080825214144 I've also moved the Data (Complex a) instance into it, and made it portable rather than GHC-only in the process. ] [add extra-source-files field Ross Paterson **20080825231317] [Fix warnings in PrelIOUtils.c Ian Lynagh **20080825141841] [Windows-only fixes for moving concurrent out of base Ian Lynagh **20080824164146] [Split off the concurrent hierarchy (concurrent, unique, timeout) Ian Lynagh **20080824123956] [Split getopt off into its own package Ian Lynagh **20080824020213] [Remove ST stuff that is now in the new st package Ian Lynagh **20080823223014] [Fix Windows-only warnings Ian Lynagh **20080823002249] [Fix Windows-only warnings in GHC.Conc Ian Lynagh **20080822234837] [Suppress some warnings that are hard to fix because of ifdefs Ian Lynagh **20080822233951] [Provide blockedOnDeadMVar, blockedIndefinitely for the RTS Ian Lynagh **20080821110723] [Fix more warnings Ian Lynagh **20080820233958] [Suppress a couple of warnings in GHC.PArr Ian Lynagh **20080820232018 The fix isn't immediately obvious to me ] [Fix more warnings Ian Lynagh **20080820231937] [Fix warnings in Data.Generics.* Ian Lynagh **20080820230437] [Fix some more warnings Ian Lynagh **20080820223252] [Ignore some orphan warnings Ian Lynagh **20080820211901] [remove some functions that aren't used in base Simon Marlow **20080821142339] [remove __hscore_renameFile, it is no longer uesd Simon Marlow **20080818155950 System.Directory implements renameFile using unix/Win32 now. ] [Rewrite the documentation for forkOS again Simon Marlow **20080818132856 Try to make it clearer that forkOS is only necessary when calling foreing libraries that use thread-local state, and it has nothing to do with scheduling behaviour between Haskell threads. I also added something about the performance impact of forkOS, and mentioned that the main thread is a bound thread. ] [nhc only: expose Foldable and Traversable instances of Array Ross Paterson **20080817002719 These were turned off as a side-effect of a previous nhc-only fix for #2176 that is no longer needed. They should be fine for nhc now. ] [Fix hReady (trac #1063) Ian Lynagh **20080816182715 We now throw an EOF exception when appropriate ] [Fix oversight in Control.OldException Bertram Felgenhauer **20080816132631 The NonTermination constructor slipped through in the Exception instance. ] [Eliminate orphan rules and instances in the array package Ian Lynagh **20080816122253] [Control.OldException: Map exceptions to old exceptions and back properly. Ian Lynagh **20080814210219 * Control.OldException: Map exceptions to old exceptions and back properly. It's really necessary to map them back as well, or the RTS and base library will not recognize exceptions that got caught and rethrown. (See #2508) Patch from Bertram Felgenhauer ] [add Traversable generalizations of mapAccumL and mapAccumR (#2461) Ross Paterson **20080814162617] [simplify definition of Prelude.catch Ross Paterson **20080814143650] [remove returns from void functions Ross Paterson **20080814110841] [No reason for Handler and catches to exclude nhc98. Malcolm.Wallace@cs.york.ac.uk**20080813125850] [Must import ExitCode for its instance to be re-exported. Malcolm.Wallace@cs.york.ac.uk**20080813125710 The Cabal library depends on "instance Exception ExitCode", and expects to import it from Control.Exception, not Control.Exception.Base. ] [use New.catch instead of catchException in OldException Ross Paterson **20080813071307] [use the Haskell 98 module Control.Exception.Base in the Concurrent modules Ross Paterson **20080813000219] [export Control.Exception.Base Ross Paterson **20080812233640] [use dummy implementation of timeout for all non-GHCs Ross Paterson **20080812151602] [Hugs only: fix imports Ross Paterson **20080812145654] [non-GHC: hide Prelude.catch Ross Paterson **20080812145622] [add Control.Exception.Base to nhc98 build Malcolm.Wallace@cs.york.ac.uk**20080812174300] [bump to version 4.0 Simon Marlow **20080805153354] [Hugs only: don't import exception types -- their instances are now in Control.Exception.Base Ross Paterson **20080812140433] [split most of Control.Exception into new Control.Exception.Base Ross Paterson **20080812124912 Move everything but catches/Handler into a new internal module. This was needed to get the new exceptions working with Hugs, because Hugs has the constraint that all Haskell 98 library modules, and everything they include, must be Haskell 98. This also involves a different representation of SomeException for Hugs, so that type is exported opaquely for Hugs. Then Control.Exception.Base is Haskell 98 as far as Hugs is concerned, but Control.Exception needs the extensions turned on. Control.Exception re-exports everything from Control.Exception.Base except the functions used by the GHC runtime. ] [remove kludges, now that Control.Exception is imported Ross Paterson **20080811180328] [threadDelay and friends are GHC-only Ross Paterson **20080811175039] [fix imports for non-GHC Malcolm.Wallace@cs.york.ac.uk**20080808092017] [Eq and Ord have moved into GHC.Classes Ian Lynagh **20080807095352] [Use the proper CInt type in GHC.Unicode Ian Lynagh **20080806232948] [Import wibbles Ian Lynagh **20080806232055] [Remove unnecessary Data/Dynamic.hs-boot Ian Lynagh **20080806230623] [Remove more redundant GHC.Float imports Ian Lynagh **20080806225411] [Remove an unnecessary import Ian Lynagh **20080806224742] [Move Int, Float and Double into ghc-prim:GHC.Types Ian Lynagh **20080806191554] [Put some explicit import lists in Data.Typeable Ian Lynagh **20080806190353] [Fix a couple of imports Ian Lynagh **20080806165549] [Remove unused conditional import Ian Lynagh **20080806124930] [Swap imports around to get GHC.ForeignPtr out of the base knot Ian Lynagh **20080806121313] [Move some bits around to stop Data.Either being in the base import knot Ian Lynagh **20080806120504] [Tweak an import Ian Lynagh **20080806000440] [Remove the DynIOError constructor of IOErrorType Ian Lynagh **20080805234720 As far as I can see it is never used or exported ] [Move some internals around to simplify the import graph a bit Ian Lynagh **20080805221341] [Move the Char datatype into ghc-prim Ian Lynagh **20080805204009] [Remove an unnecessary import Ian Lynagh **20080805182336] [The [] definition has moved to ghc-prim Ian Lynagh **20080805182332] [Fix warnings Ian Lynagh **20080805150250] [Add a missing case to Show AsyncException Ian Lynagh **20080805142811] [Remove GHC.Dotnet Ian Lynagh **20080804215840] [Hide standalone deriving clauses from haddock Ian Lynagh **20080804211617] [Control.Exception doesn't need to export assertError Ian Lynagh **20080804161838] [Generalise the type of mapException; pointed out by Isaac Dupree Ian Lynagh **20080804160941] [Remove some unnecessary Data.Tuple imports Ian Lynagh **20080804155956] [The tuple datatype definitions have moved to ghc-prim Ian Lynagh **20080804155420] [make ExitCode an instance of Exception for nhc98 Malcolm.Wallace@cs.york.ac.uk**20080805160330] [poke and peek come from Foreign.Storable Malcolm.Wallace@cs.york.ac.uk**20080804160616] [zipWithM_ comes from Control.Monad Malcolm.Wallace@cs.york.ac.uk**20080804160319] [Fix nhc98 code variations to use the extensible exception API. Malcolm.Wallace@cs.york.ac.uk**20080804155842 There is still only one real exception type in nhc98, so it is not truly extensible. But this is enough to get the base package building again. ] [nhc98 needs the Prelude for this module Malcolm.Wallace@cs.york.ac.uk**20080804133853] [Change some imports and derive Show (Either a b) Ian Lynagh **20080804004147 rather than writing it by hand in GHC.Show ] [Windows fixes Ian Lynagh **20080803180345] [Remove the duplicate definition of throwTo in Control.Exception Ian Lynagh **20080803141703 It now imports GHC.Conc, so it is no longer necessary ] [Remove the only import of GHC.Exts Ian Lynagh **20080803141944] [Move assertError into GHC.IOBase Ian Lynagh **20080803141040] [Use onException rather than catchAny Ian Lynagh **20080803114104] [Generalise the type of onException Ian Lynagh **20080803003001 The type of the thing to do on an exception is now IO b rather than IO () which better matches functions like bracket. ] [Remove the dangerous Exception functions Ian Lynagh **20080802231358 Removed: catchAny, handleAny, ignoreExceptions These make it easy to eat /any/ exception, which is rarely what you want. Normally you either want to: * only catch exceptions in a certain part of the hierarchy, e.g. "file not found", in which case you should only catch exceptions of the appropriate type, or * you want to do some cleanup when an exception happens, and then rethrow the exception, in which case you should use onException, or one of the bracketing functions. ] [Remove an unused import Ian Lynagh **20080801230343] [Remove unused imports Ian Lynagh **20080801230059] [Remove unused imports in Control.Exception Ian Lynagh **20080801225847] [Get rid of some duplicate imports Ian Lynagh **20080801214933] [Remove the now-unused GHC/Conc.lhs-boot Ian Lynagh **20080801214707] [Make some more imports non-recursive Ian Lynagh **20080801214546] [Rejig some code so Control.Exception and GHC.Conc don't need recursive imports Ian Lynagh **20080801214208] [Remove the now-unused GHC/TopHandler.lhs-boot Ian Lynagh **20080801212105] [Reshuffle GHC.Conc/GHC.TopHandler a bit to remove a recursive import Ian Lynagh **20080801211801] [Don't import Control.Concurrent.MVar in GHC.TopHandler Ian Lynagh **20080801200123] [Export assertError from Control.Exception to make GHC happy Ian Lynagh **20080801111716 It's a wired-in name in GHC. We should possibly move it to another module. ] [TopHandler now uses the new extensible exceptions Ian Lynagh **20080731153553] [Comment wibble Ian Lynagh **20080730202127] [Make numericEnumFrom more efficient Ian Lynagh **20080730202049] [Put in some parens to clarify how things parse Ian Lynagh **20080730201934] [applied patches to make enumFrom and friends strict in arguments as per the Report; closes ticket #1997 Bart Massey **20080726080444] [Don't use "deriving Typeable" (for portability reasons) Ian Lynagh **20080730194434] [Add onException Ian Lynagh **20080730172014] [Fix whitespace Ian Lynagh **20080730171951 The space after "\begin{code}" was confusing haddock ] [Re-add blocked; it got lost in the extensible exceptions patches Ian Lynagh **20080730145614] [Start to actually use extensible exceptions Ian Lynagh **20080730145115] [Rejig the extensible exceptions so there is less circular importing Ian Lynagh **20080730122539] [Define nonTermination for the RTS to use Ian Lynagh **20080621144420 We'll probably need to do the same for some other exceptions too ] [Use extensible exceptions at the lowest level Ian Lynagh **20080621121501 Everything above is largely unchanged; just the type of catch and throw. ] [add comment Simon Marlow **20080730114559] [add some big warnings to the docs for unsafeIOToSTM (#2401) Simon Marlow **20080730114554] [FIX #2376: inline shiftR Simon Marlow **20080730103539 Duplicating the default definition for shiftR doesn't seem quite right to me, but it gets the right results when compiling the example program, and I couldn't find a better way to do it. ] [Add instance Show Control.Exception.Exception for nhc98. Malcolm.Wallace@cs.york.ac.uk**20080728164537] [Extend nhc98's Exception type to resemble ghc's more closely Malcolm.Wallace@cs.york.ac.uk**20080728163445] [fix dummy async implementations for non-GHC Ross Paterson **20080715125521] [Fix haddocking with older haddocks Ian Lynagh **20080710190855] [Add threadStatus :: ThreadId -> IO ThreadStatus Simon Marlow **20080710151711 -- | The current status of a thread data ThreadStatus = ThreadRunning -- ^the thread is currently runnable or running | ThreadFinished -- ^the thread has finished | ThreadBlocked BlockReason -- ^the thread is blocked on some resource | ThreadDied -- ^the thread received an uncaught exception deriving (Eq,Ord,Show) data BlockReason = BlockedOnMVar -- ^blocked on on 'MVar' | BlockedOnBlackHole -- ^blocked on a computation in progress by another thread | BlockedOnException -- ^blocked in 'throwTo' | BlockedOnSTM -- ^blocked in 'retry' in an STM transaction | BlockedOnForeignCall -- ^currently in a foreign call | BlockedOnOther -- ^blocked on some other resource. Without @-threaded@, -- I/O and 'threadDelay' show up as 'BlockedOnOther', with @-threaded@ -- they show up as 'BlockedOnMVar'. deriving (Eq,Ord,Show) This is useful for concurrency debugging. I've left threadStatus in GHC.Conc for now, since the ThreadStatus type is somewhat GHC-specific. ] [forkOS: start the new thread in blocked mode iff the parent was (#1048) Simon Marlow **20080709135558 This matches the behaviour of forkIO ] [Add Control.Exception.blocked :: IO Bool Simon Marlow **20080709133139 Tells you whether async exceptions are currently blocked or not. ] [FIX BUILD (on Windows) Simon Marlow **20080709123110] [check CONST_SIGINT Simon Marlow **20080709122527] [Make threadWaitRead/threadWaitWrite partially useable on Windows Simon Marlow **20080709111008 They work with -threaded by calling fdReady() in a separate thread. "threadWaitRead 0" also works without -threaded (because we happen to know it's virtually equivalent to "hWaitForInput stdin (-1)"). ] [FIX #1198: hWaitForInput on Windows Simon Marlow **20080708134254 Now we do the appropriate magic in fdReady() to detect when there is real input available, as opposed to uninteresting console events. ] [FIX part of #2301 Simon Marlow **20080709094437 Control-C now causes the new exception (AsyncException UserInterrupt) to be raised in the main thread. The signal handler is set up by GHC.TopHandler.runMainIO, and can be overriden in the usual way by installing a new signal handler. The advantage is that now all programs will get a chance to clean up on ^C. When UserInterrupt is caught by the topmost handler, we now exit the program via kill(getpid(),SIGINT), which tells the parent process that we exited as a result of ^C, so the parent can take appropriate action (it might want to exit too, for example). One subtlety is that we have to use a weak reference to the ThreadId for the main thread, so that the signal handler doesn't prevent the main thread from being subject to deadlock detection. ] [() has moved to ghc-prim:GHC.Unit, and the Eq and Ord instances to Data.Tuple Ian Lynagh **20080624144932] [Add GHC.Exts.maxTupleSize :: Int, the size of the largest tuple supported Ian Lynagh **20080622141559] [Remove code for older GHC versions Ian Lynagh **20080620194521] [Make the macros in Typeable.h add type signatures Ian Lynagh **20080619235808] [Fix #2363: getChar cannot be interrupted with -threaded Simon Marlow **20080619141911 Now in -threaded mode, instead of just making a blocking call to read(), we call select() first to make sure the read() won't block, and if it would block, then we use threadWaitRead. The idea is that the current thread must be interruptible while it blocks. This is a little slower than before, but the overhead only applies to blocking Handles (stdin/stdout/stderr, and those created by System.Process). ] [Remove -fglasgow-exts from pragmas and comments Ian Lynagh **20080616230727] [Avoid using deprecated flags Ian Lynagh **20080616145207] [delete __hscore_{mkstemp,getrlimit,setrlimit} (moved to unix) Ross Paterson **20080615224413] [Update WCsubst.c for Unicode 5.1.0, and add a README.Unicode Ian Lynagh **20080613201754 README.Unicode describes how to do updates in the future. ] [Fix ubconfc Ian Lynagh **20080613201456 The current code doesn't seem to be what was used to generate WCsubst.c, so I'm not sure if it never worked, or if my tools work slightly differently to those of the previous user. ] ['permutations' is now more lazy and also faster Twan van Laarhoven **20080102231712] ['subsequences' is now more lazy and also faster Twan van Laarhoven **20080102231629] [Add 'subsequences' and 'permutations' to Data.List Twan van Laarhoven **20071218154950] [Tweak the definition of (^) again Ian Lynagh **20080601120759 This fixes trac #2306 (do the minimum number of (*)s), and also means that we don't use the value of (1 :: a) which causes problems if the Num a definition isn't complete. ] [note about evaluation affecting StableNames Simon Marlow **20080527110549] [TAG 2008-05-28 Ian Lynagh **20080528003830] [Fix the build on Windows Ian Lynagh **20080520213643] [Add wrappers for [gs]etrlimit Ian Lynagh **20080520162411 This is for #2038: macros are used in the Linux .h includes to redirect to a 64-bit version when large file support is enabled. ] [Add a wrapper for mkstemp Ian Lynagh **20080520161312 This is for #2038: macros are used in the Linux .h includes to redirect to a 64-bit version when large file support is enabled. ] [Avoid calling varargs functions using the FFI Simon Marlow **20080509145334 Calling varargs functions is explicitly deprecated according to the FFI specification. It used to work, just about, but it broke with the recent changes to the via-C backend to not use header files. ] [Add comments about why rotate has an INLINE simonpj@microsoft.com**20080502074137] [Inline Data.Bits.rotate@Int, enables rotate to be constant folded Don Stewart **20080501230152 All other Bits instances seem to inline well enough on their own to enable constant folding, e.g. sumU . mapU (`shift` 3) . replicateU 10000000 $ (7 :: Int) goes to: Main.$wfold = \ (ww_sOb :: Int#) (ww1_sOf :: Int#) -> case ww1_sOf of wild_XM { __DEFAULT -> Main.$wfold (+# ww_sOb 56) (+# wild_XM 1); 10000000 -> ww_sOb } With this patch, rotate gets inlined and folded too, sumU . mapU (`rotate` 3) . replicateU 10000000 $ (7 :: Int) to: Main.$wfold = \ (ww_sO7 :: Int#) (ww1_sOb :: Int#) -> case ww1_sOb of wild_XM { __DEFAULT -> Main.$wfold (+# ww_sO7 56) (+# wild_XM 1); 10000000 -> ww_sO7 Whereas it was left as a call to $wrotate before. ] [Moved def. of emptyP keller@cse.unsw.edu.au**20080501024223] [emptyP def to gHC.PArr keller@cse.unsw.edu.au**20080501012547] [Reexport (>>>) and (<<<) from Control.Arrow. Preserves API compatibility Don Stewart **20080430231055] [Add realToFrac RULE comments from patch message into the source code simonpj@microsoft.com**20080430214355] [Add RULES for realToFrac from Int. Don Stewart **20080430174126 {-# RULES "realToFrac/Int->Double" realToFrac = int2Double "realToFrac/Int->Float" realToFrac = int2Float #-} Note that this only matters for realToFrac. If you've been using fromIntegral to promote Int to Doubles, things should be fine as they are. The following program, using stream fusion to eliminate arrays: import Data.Array.Vector n = 40000000 main = do let c = replicateU n (2::Double) a = mapU realToFrac (enumFromToU 0 (n-1) ) :: UArr Double print (sumU (zipWithU (*) c a)) Yields this loop body without the RULE: case $wtoRational sc_sY4 of ww_aM7 { (# ww1_aM9, ww2_aMa #) -> case $wfromRat ww1_aM9 ww2_aMa of tpl_X1P { D# ipv_sW3 -> Main.$s$wfold (+# sc_sY4 1) (+# wild_X1i 1) (+## sc2_sY6 (*## 2.0 ipv_sW3)) And with the rule: Main.$s$wfold (+# sc_sXT 1) (+# wild_X1h 1) (+## sc2_sXV (*## 2.0 (int2Double# sc_sXT))) The running time of the program goes from 120 seconds to 0.198 seconds with the native backend, and 0.143 seconds with the C backend. And just so I don't forget, here's the difference in resulting assembly (x86_64), between the native code generator, and the C backend. -fasm Main_zdszdwfold_info: movq %rdi,%rax cmpq $40000000,%rax jne .LcZK jmp *(%rbp) .LcZK: cmpq $39999999,%rsi jg .LcZN cvtsi2sdq %rsi,%xmm0 mulsd .LnZP(%rip),%xmm0 movsd %xmm5,%xmm7 addsd %xmm0,%xmm7 incq %rax incq %rsi movq %rax,%rdi movsd %xmm7,%xmm5 jmp Main_zdszdwfold_info With the C backend we get the even better assembly, (-fvia-C -optc-O3) Main_zdszdwfold_info: cmpq $40000000, %rdi je .L9 .L5: cmpq $39999999, %rsi jg .L9 cvtsi2sdq %rsi, %xmm0 leaq 1(%rdi), %rdi addq $1, %rsi addsd %xmm0, %xmm0 addsd %xmm0, %xmm5 jmp Main_zdszdwfold_info .L9: jmp *(%rbp) So might make a useful test once the native codegen project starts up. ] [Just (-0/1) is now printed as Just (-0.0), not Just -0.0; trac #2036 Ian Lynagh **20080427133230] [record libraries@haskell.org as maintainer Ross Paterson **20080425095200] [Added emptyP def keller@cse.unsw.edu.au**20080424021403] [don't set O_NONBLOCK on FDs passed to fdToHandle Simon Marlow **20080422204719] [Improve docs for unsafeCoerce Malcolm.Wallace@cs.york.ac.uk**20080422130547 Make it clear that compilers differ. Point to GHC docs in GHC.Base, and add a short description of nhc98's representation-safe conversions. ] [Spelling only simonpj@microsoft.com**20080422082033] [In docs for unsafeCoerce, point to unsafeCoerce# simonpj@microsoft.com**20080421152251] [Turn off the gcd/lcm optimisations for Integer for now Ian Lynagh **20080418190238 This makes it easier to experiment with other implementations ] [Ordering has now moved to ghc-prim Ian Lynagh **20080412100741] [fix types for __hscore_st_dev() and __hscore_st_ino() Simon Marlow **20080319174101] [give an absolute path to 'harch' Malcolm.Wallace@cs.york.ac.uk**20080327142912] [Move Word64/Int64/Word32/Int32 primitives into ghc-prim Ian Lynagh **20080325202634] [Update .darcs-boring Ian Lynagh **20080324205808 GHC/Prim.hs, GHC/PrimopWrappers.hs are no longer generated in this package ] [Remove GHC.PrimopWrappers from base's exposed modules list Ian Lynagh **20080324205734] [base now uses build-type: Configure Ian Lynagh **20080323191146] [Move Integer out into its own package Ian Lynagh **20080323181342 We now depend on the new integer package. We also depend on a new ghc-prim package, which has GHC.Prim, GHC.PrimopWrappers, and new modules GHC.Bool and GHC.Generics, containing Bool and Unit/Inl/Inr respectively. ] [List extensions used rather than using the -fglasgow-exts hammer Ian Lynagh **20080322133622] [Remove a gratuitous pattern type sig Ian Lynagh **20080321011356] [An even better definition for (^) (trac #1687) Ian Lynagh **20080320003957] [Replace (^) with a faster variant (from trac #1687) Ian Lynagh **20080318003017] [Add partitionEithers, lefts, and rights. Ian Lynagh **20080314193037 Patch from Russell O'Connor, trac proposal #974. ] [System.Console.GetOpt mistakenly rejects options as ambiguous. Malcolm.Wallace@cs.york.ac.uk**20080312111047 From "Eelis van der Weegen" . Testcase: > import System.Console.GetOpt > > type Color = String > > optsDesc :: [OptDescr Color] > optsDesc = [Option "" ["color", "colour"] > (ReqArg id "color") "Foreground color"] > > main = do > let args = ["--col=blue"] > case getOpt RequireOrder optsDesc args of > (_, _, err:_) -> putStrLn err > _ -> return () Output: option `--col' is ambiguous; could be one of: --color=color, --colour=color Foreground color --color=color, --colour=color Foreground color This error is silly, because the two alternatives listed are the same option. The problem is caused by incorrect use of a generator in a list comprehension. ] [untabify Don Stewart **20080310005455] [untabify Don Stewart **20080308014256] [untabify Don Stewart **20080308014129] [untabify Don Stewart **20080308014040] [untabify Don Stewart **20080308013556] [untabify Don Stewart **20080308012457] [untabify Don Stewart **20080308012059] [untabify Don Stewart **20080307192727] [untabify Don Stewart **20080305033712] [untabify Don Stewart **20080305015827] [untabify Don Stewart **20080305012530] [untabify Don Stewart **20080305010343] [untabify Don Stewart **20080305010255] [untabify Don Stewart **20080305005041] [untabify Don Stewart **20080305005025] [untabify Don Stewart **20080304235330] [untabify Don Stewart **20080304225120] [untabify Don Stewart **20080304174827] [untabify Don Stewart **20080303195109] [untabify Don Stewart **20080303195002] [untabify Don Stewart **20080303194454] [untabify Don Stewart **20080228234443] [untabify Don Stewart **20080228185409] [untabify Don Stewart **20080228185356] [untabify Don Stewart **20080228185331] [export MVar, TVar, and STM non-abstractly Simon Marlow **20080228113035 As requested by Sterling Clover on ghc-users ] [Added Down class and improved groupWith fusion Max Bolingbroke **20080213212246] [untabify Don Stewart **20080227062836] [untabify Don Stewart **20080226070630] [mention explicitly that hIsEOF may block Simon Marlow **20080220141209] [untabify Don Stewart **20080219233644] [untabify Don Stewart **20080219233047] [untabify Don Stewart **20080219232910] [untabify Don Stewart **20080219225437] [untabify Don Stewart **20080219061513] [Add exitSuccess :: IO a. For symmetry with exitFailure Don Stewart **20080213222644] [untabify Don Stewart **20080218075732] [untabify Don Stewart **20080218065411] [untabify Don Stewart **20080215005543] [FIX dynamic001, dynamic002: further fixes to tuple printing Simon Marlow **20080211101908] [untabify Don Stewart **20080213221950] [untabify only Don Stewart **20080213221856] [whitespace only Don Stewart **20080207191939] [Whitespace only Don Stewart **20080207183954] [FIX dynamic001 dynamic002: isTupleTyCon had rotted Simon Marlow **20080205103904 In the patch "Tuple tycons have parens around their names", the names of the tuple tycons were changed to include parens, but isTupleTyCon was not updated to match, which made tuple types show as "(,) a b" rather than "(a,b)" ] [deforestation rules for enumFromThenTo; based on a patch from Robin Houston Ian Lynagh **20080203152755] [Generalise type of forever :: (Monad m) => m a -> m b Don Stewart **20080129191940] [FIX #1936: hGetBufNonBlocking was blocking on stdin/stdout/stderr Simon Marlow **20080124092203] [The default uncaught exception handler was adding an extra \n Simon Marlow **20080124091216] [add comment about lack of _chsize_s() Simon Marlow **20080123131248] [Windows: large file support for hFileSize and hSeek (#1771) Simon Marlow **20080123102904 ] [Export topHandler, topHandlerFastExit from GHC.TopHandler Ian Lynagh **20080120182429 We now use one of these in ghc when running with ghc -e ] [haddock attributes for haddock-2.0 Ross Paterson **20080120022308] [Data.List.sort: force elements from start to end. Bertram Felgenhauer **20071121101458 this prevents a stack overflow on sort (take 10^6 [1..]) ] [Fix comment on GHC.Ptr.minusPtr simonpj@microsoft.com**20080109114736] [Remove redundant imports of GHC.Err simonpj@microsoft.com**20080104091314 GHC.Base SOURCE-imports GHC.Err, and re-exports 'error'. So other modules need only import GHC.Base. This doesn't change the fact that these other modules are all compiled before GHC.Err, so they are all part of the module loop that starts with GHC.Base and finishes with GHC.Err. But it does reduce the occurrence of those SOURCE imports. ] [Tuple tycons have parens around their names simonpj@microsoft**20071220171812 The name of the pair TyCon, in the Typeable instance, should be "(,)" not ",". Don't merge to 6.8; it's a minor API change. ] [Add groupWith, sortWith, the, to support generalised list comprehensions simonpj@microsoft.com**20071220111929 This the base-library patch to support the main compiler patch Implement generalised list comprehensions It just adds three functions to GHC.Exts. ] [Add GHC.Prim to exposedModules in the Haddock 0.x hook David Waern *-20071209173931 Please merge to the stable branch ] [Add GHC.Prim to exposedModules in the Haddock 0.x hook David Waern **20071209173931 Please merge to the stable branch ] [Simplify the GHC.Prim hack in base.cabal/Setup.hs Ian Lynagh **20071202215758] [Implement 'openTempFile' for nhc98. Malcolm.Wallace@cs.york.ac.uk**20071207133335] [docs: describe the changes to forkIO, and document forkOnIO Simon Marlow **20071205091423] [doc only: use realToFrac instead of fromRational.toRational Simon Marlow **20071205091334] [Add singletonP to GHC.PArr Roman Leshchinskiy **20071205220859] [FIX #1621: bug in Windows code for getCPUTime Simon Marlow **20071205120118 We were reading the components of FILETIME as CLong, when they should be unsigned. Word32 seems to be the correct type here. ] [protect console handler against concurrent access (#1922) Simon Marlow **20071204153940] [protect against concurrent access to the signal handlers (#1922) Simon Marlow **20071204110817] [restore fdToHandle' to avoid breaking clients (#1109) Simon Marlow **20071130135122 ] [note about how to convert CTime (aka EpochTime) to UTCTime Simon Marlow **20071130101648] [Fix some URLs Ian Lynagh **20071126214213] [Fix some links in haddock docs Ian Lynagh **20071126184428] [Don't try to make haddock links to the mtl package as we don't depend on it Ian Lynagh **20071126170631] [Escape some special characters in haddock docs Ian Lynagh **20071126163443] [FIX BUILD: maybeUpdateFile: ignore failures when removing the target Simon Marlow **20071123092219] [FIX #1753 Simon Marlow **20071122094207 hClose should close the Handle and unlock the file even if calling close() fails for some reason. ] [remove lockFile.h from install-includes Simon Marlow **20071121102248] [oops, we forgot to export traceShow Simon Marlow **20071121094300] [Fix compilation with GHC 6.2.x Simon Marlow **20071121084341] [Move file locking into the RTS, fixing #629, #1109 Simon Marlow **20071120121053 File locking (of the Haskell 98 variety) was previously done using a static table with linear search, which had two problems: the array had a fixed size and was sometimes too small (#1109), and performance of lockFile/unlockFile was suboptimal due to the linear search. Also the algorithm failed to count readers as required by Haskell 98 (#629). Now it's done using a hash table (provided by the RTS). Furthermore I avoided the extra fstat() for every open file by passing the dev_t and ino_t into lockFile. This and the improvements to the locking algorithm result in a healthy 20% or so performance increase for opening/closing files (see openFile008 test). ] [Only overwrite GHC/Prim.hs and GHC/Primopwrappers.hs if they change Simon Marlow **20071120102042 This avoids make doing unnecessary work after 'setup makefile'. ] [fix comment Simon Marlow **20071116091227] [Fix ` characters in elem's haddock docs Ian Lynagh **20071110173052] [Filter out GHC.Prim also for the Haddock step David Waern **20071109000806 Please merge to the GHC 6.8.2 branch ] [Add module of special magic GHC desugaring helper functions Simon Marlow **20071102160054 Currently containing only one such helper: (>>>) for arrow desugaring ] [add Control.Category to the nhc98 build Malcolm.Wallace@cs.york.ac.uk**20071030120459] [fix nhc98 build: need a qualified Prelude import Malcolm.Wallace@cs.york.ac.uk**20071030120410] [Fix performance regression: re-instate -funbox-strict-fields Simon Marlow **20071029150730 Yikes! While investigating the increase in code size with GHC 6.8 relative to 6.6, I noticed that in the transition to Cabal for the libraries we lost -funbox-strict-fields, which is more or less depended on by the IO library for performance. I'm astonished that we didn't notice this earlier! To reduce the chances of this happening again, I put -funbox-strict-fields in the OPTIONS_GHC pragma of the modules that need it. {-# UNPACK #-} pragmas would be better, though. ] [FIX BUILD: Haddock 1.x fails to parse (Prelude..) Simon Marlow **20071029131921] [new Control.Category, ghc ticket #1773 Ashley Yakeley **20071029022526] [new Control.Compositor module Ashley Yakeley **20071013074851 The Compositor class is a superclass of Arrow. ] [Fix doc building with Haddock 0.9 Simon Marlow **20071024090947 I was using a recent build here, which is more tolerant. ] [FIX #1258: document that openTempFile is secure(ish) Simon Marlow **20071023130928 Also change the mode from 0666 to 0600, which seems like a more sensible value and matches what C's mkstemp() does. ] [Clean up .cabal file a bit Duncan Coutts **20071022132708 specify build-type and cabal-version >= 1.2 put extra-tmp-files in the right place use os(windows) rather than os(mingw32) ] [base in 6.8 and head branch should be version 3.0 Don Stewart **20071007150408] [FIX #1652: openTempFile should accept an empty string for the directory Simon Marlow **20071018122345] [clean up duplicate code Simon Marlow **20071017141311] [expose the value of +RTS -N as GHC.Conc.numCapabilities (see #1733) Simon Marlow **20071009132042] [typo Simon Marlow **20070917130703] [put extra-tmp-files field in the right place Simon Marlow **20070914140812] [Add more entries to boring file Ian Lynagh **20070913210500] [Add a boring file Ian Lynagh **20070913204641] [TAG 2007-09-13 Ian Lynagh **20070913215720] [FIX #1689 (openTempFile returns wrong filename) Tim Chevalier **20070913052025] [TAG ghc-6.8 branched 2007-09-03 Ian Lynagh **20070903155541] [Remove some incorrect rules; fixes #1658: CSE [of Doubles] changes semantics Ian Lynagh **20070904134140] [make hWaitForInput/hReady not fail with "invalid argument" on Windows Simon Marlow **20070830131115 See #1198. This doesn't fully fix it, because hReady still always returns False on file handles. I'm not really sure how to fix that. ] [Fix haddock docs in Hashtable Ian Lynagh **20070830154131] [Fix building HashTable: Use ord rather than fromEnum Ian Lynagh **20070830150214] [Better hash functions for Data.HashTable, from Jan-Willem Maessen Ian Lynagh **20070830142844] [Remove redundant include/Makefile Ian Lynagh **20070828205659] [Make arrays safer (e.g. trac #1046) Ian Lynagh **20070810163405] [delete configure droppings in setup clean Simon Marlow **20070824104100] [FIX #1282: 64-bit unchecked shifts are not exported from base Simon Marlow **20070823135033 I've exported these functions from GHC.Exts. They are still implemented using the FFI underneath, though. To avoid conditional exports, on a 64-bit build: uncheckedShiftL64# = uncheckShiftL# (etc.) which has a different type than the 32-bit version of uncheckedShiftL64#, but at least GHC.Exts exports the same names. ] [Fix hashInt Ian Lynagh **20070821140706 As pointed out in http://www.haskell.org/pipermail/glasgow-haskell-bugs/2007-August/009545.html the old behaviour was Prelude Data.HashTable> map hashInt [0..10] [0,-1,-1,-2,-2,-2,-3,-3,-4,-4,-4] Fixed according to the "Fibonacci Hashing" algorithm described in http://www.brpreiss.com/books/opus4/html/page213.html http://www.brpreiss.com/books/opus4/html/page214.html ] [test impl(ghc) instead of IsGHC Ross Paterson **20070819233500] [fpstring.h has moved to bytestring Ross Paterson **20070819233815] [remove now-unused SIG constants Ross Paterson **20070819233745] [include Win32 extra-libraries for non-GHC's too Ross Paterson **20070819233611] [Don't import Distribution.Setup in Setup.hs as we no longer need it Ian Lynagh **20070816151643] [Correct the swapMVar haddock doc Ian Lynagh **20070814145028] [install Typeable.h for use by other packages Malcolm.Wallace@cs.york.ac.uk**20070813112855] [Don't try to build modules no longer living in base. Malcolm.Wallace@cs.york.ac.uk**20070813112803] [Move Data.{Foldable,Traversable} back to base Ian Lynagh **20070812165654 The Array instances are now in Data.Array. ] [Remove bits left over from the old build system Ian Lynagh **20070811135019] [Move the datamap001 (our only test) to the containers package Ian Lynagh **20070803180932] [Data.Array* and Data.PackedString have now moved to their own packages Ian Lynagh **20070801235542] [Remove a number of modules now in a "containers" package Ian Lynagh **20070801223858] [Remove System.Posix.Signals (moving to unix) Ian Lynagh **20070729215213] [bytestring is now in its own package Ian Lynagh **20070729132215] [Export throwErrnoPath* functions Ian Lynagh **20070722002923] [Add simple haddock docs for throwErrnoPath* functions Ian Lynagh **20070722002817] [Move throwErrnoPath* functions from unix:System.Posix.Error Ian Lynagh **20070722002746] [Clarify the swapMVar haddock doc Ian Lynagh **20070807185557] [fix Haddock markup Simon Marlow **20070802081717] [Temporarily fix breakage for nhc98. Malcolm.Wallace@cs.york.ac.uk**20070801163750 A recent patch to System.IO introduced a cyclic dependency on Foreign.C.Error, and also inadvertently dragged along System.Posix.Internals which has non-H'98 layout, causing many build problems. The solution for now is to #ifndef __NHC__ all of the recent the openTempFile additions, and mark them non-portable once again. (I also took the opportunity to note a number of other non-portable functions in their Haddock comments.) ] [Generalise the type of synthesize, as suggested by Trac #1571 simonpj@microsoft**20070801125208 I have not looked at the details, but the type checker is happy with the more general type, and more general types are usually a Good Thing. ] [Fix fdToHandle on Windows Ian Lynagh **20070730133139 The old setmode code was throwing an exception, and I'm not sure it is meant to do what we need anyway. For now we assume that all FDs are both readable and writable. ] [Correct Windows OS name in cabal configuration Ian Lynagh **20070729161739] [Use cabal configurations rather than Setup hacks Ian Lynagh **20070729132157] [Handle buffers should be allocated with newPinnedByteArray# always Simon Marlow **20070725095550 Not just on Windows. This change is required because we now use safe foreign calls for I/O on blocking file descriptors with the threaded RTS. Exposed by concio001.thr on MacOS X: MacOS apparently uses smaller buffers by default, so they weren't being allocated as large objects. ] [fix Hugs implementation of openTempFile Ross Paterson **20070724114003] [Hugs only: avoid dependency cycle Ross Paterson **20070724113852] [open(Binary)TempFile is now portable Ian Lynagh **20070722152752] [Tweak temporary file filename chooser Ian Lynagh **20070722105445] [Move open(Binary)TempFile to System.IO Ian Lynagh **20070722010205] [Rename openFd to fdToHandle' Ian Lynagh **20070721235538 The name collision with System.Posix.IO.openFd made my brain hurt. ] [Add a test for Data.Map, for a bug on the libraries@ list Ian Lynagh **20070721002119] [fix Data.Map.updateAt Bertram Felgenhauer **20070718150340 See http://haskell.org/pipermail/libraries/2007-July/007785.html for a piece of code triggering the bug. updateAt threw away parts of the tree making up the map. ] [in hClose, free the handle buffer by replacing it with an empty one Simon Marlow **20070719161419 This helps reduce the memory requirements for a closed but unfinalised Handle. ] [Implement GHC.Environment.getFullArgs Ian Lynagh **20070717141918 This returns all the arguments, including those normally eaten by the RTS (+RTS ... -RTS). This is mainly for ghc-inplace, where we need to pass /all/ the arguments on to the real ghc. e.g. ioref001(ghci) was failing because the +RTS -K32m -RTS wasn't getting passed on. ] [Define stripPrefix; fixes trac #1464 Ian Lynagh **20070714235204] [no need to hide Maybe Malcolm.Wallace@cs.york.ac.uk**20070710154058] [Add a more efficient Data.List.foldl' for GHC (from GHC's utils/Util.lhs) Ian Lynagh **20070706205526] [Remove include-dirs ../../includes and ../../rts Ian Lynagh **20070705205356 We get these by virtue of depending on the rts package. ] [FIX #1131 (newArray_ allocates an array full of garbage) Simon Marlow **20070704102020 Now newArray_ returns a deterministic result in the ST monad, and behaves as before in other contexts. The current newArray_ is renamed to unsafeNewArray_; the MArray class therefore has one more method than before. ] [change nhc98 option from -prelude to --prelude Malcolm.Wallace@cs.york.ac.uk**20070702150355] [Word is a type synonym in nhc98 - so class instance not permitted. Malcolm.Wallace@cs.york.ac.uk**20070629122035] [fix bug in writes to blocking FDs in the non-threaded RTS Simon Marlow **20070628134320] [Modernize printf. lennart.augustsson@credit-suisse.com**20070628083852 Add instances for Int8, Int16, Int32, Int64, Word, Word8, Word16, Word32, and Word64. Handle + flag. Handle X, E, and G formatting characters. Rewrite internals to make it simpler. ] [Speed up number printing and remove the need for Array by using the standard 'intToDigit' routine John Meacham **20070608182353] [Use "-- //" (2 spaces) rather than "-- //" (1) to avoid tripping haddock up Ian Lynagh **20070627010930 Are we nearly there yet? ] [Use a combination of Haskell/C comments to ensure robustness. Malcolm.Wallace@cs.york.ac.uk**20070626095222 e.g. -- // ensures that _no_ preprocessor will try to tokenise the rest of the line. ] [Change C-style comments to Haskell-style. Malcolm.Wallace@cs.york.ac.uk**20070625094515 These two headers are only ever used for pre-processing Haskell code, and are never seen by any C tools except cpp. Using the Haskell comment convention means that cpphs no longer needs to be given the --strip option to remove C comments from open code. This is a Good Thing, because all of /* */ and // are valid Haskell operator names, and there is no compelling reason to forbid using them in files which also happen to have C-preprocessor directives. ] [makefileHook needs to generate PrimopWrappers.hs too Simon Marlow **20070622073424] [Hugs now gets MonadFix(mfix) from its prelude Ross Paterson **20070620000343] [Typo (consUtils.hs -> consUtils.h) Ian Lynagh **20070619124140] [install dependent include files and Typeable.h Bertram Felgenhauer **20070613041734] [update prototype following inputReady->fdReady change Simon Marlow **20070614095309] [FIX hGetBuf001: cut-and-pasto in readRawBufferNoBlock Simon Marlow **20070614094222] [fix description of CWStringLen Ross Paterson **20070605223345] [Remove unsafeCoerce-importing kludgery in favor of Unsafe.Coerce Isaac Dupree **20070601203625] [--configure-option and --ghc-option are now provided by Cabal Ross Paterson **20070604115233] [Data.PackedString: Data.Generics is GHC-only Ross Paterson **20070529232427] [Add Data instance for PackedString; patch from greenrd in trac #1263 Ian Lynagh **20070529205420] [Control.Concurrent documentation fix shae@ScannedInAvian.com**20070524163325] [add nhc98-options: field to .cabal file Malcolm.Wallace@cs.york.ac.uk**20070528122626] [add a dummy implementation of System.Timeout.timeout for nhc98 Malcolm.Wallace@cs.york.ac.uk**20070528110309] [Add System.Timeout to base.cabal Ian Lynagh **20070527123314 Filtered out for non-GHC by Setup.hs. ] [add module Data.Fixed to nhc98 build Malcolm.Wallace@cs.york.ac.uk**20070525141021] [DIRS now lives in package Makefile, not script/pkgdirlist Malcolm.Wallace@cs.york.ac.uk**20070525111749] [delete unused constants Ross Paterson **20070525001741] [remove System.Cmd and System.Time too Malcolm.Wallace@cs.york.ac.uk**20070524163200] [remove locale as well Malcolm.Wallace@cs.york.ac.uk**20070524161943] [nhc98 version of instance Show (a->b) copied from Prelude Malcolm.Wallace@cs.york.ac.uk**20070524160615] [remove directory, pretty, and random bits from base for nhc98 Malcolm.Wallace@cs.york.ac.uk**20070524160608] [Remove Makefile and package.conf.in (used in the old build system) Ian Lynagh **20070524142545] [Split off process package Ian Lynagh **20070523210523] [Fix comment: maperrno is in Win32Utils.c, not runProcess.c Ian Lynagh **20070523181331] [System.Locale is now split out Ian Lynagh **20070519132638] [Split off directory, random and old-time packages Ian Lynagh **20070519120642] [Remove Control.Parallel*, now in package parallel Ian Lynagh **20070518165431] [Remove the pretty-printing modules (now in package pretty( Ian Lynagh **20070518162521] [add install-includes: field Simon Marlow **20070517094948] [correct the documentation for newForeignPtr Simon Marlow **20070516082019] [When doing safe writes, handle EAGAIN rather than raising an exception Simon Marlow **20070515114615 It might be that stdin was set to O_NONBLOCK by someone else, and we should handle this case. (this happens with GHCi, I'm not quite sure why) ] [Use FilePath to make paths when building GHC/Prim.hs and GHC/PrimopWrappers.hs Ian Lynagh **20070514110409] [Build GHC/Prim.hs and GHC/PrimopWrappers.hs from Cabal Ian Lynagh **20070509142655] [fix imports for non-GHC Ross Paterson **20070513001138] [Give an example of how intersection takes elements from the first set Ian Lynagh **20070512160253] [further clarify the docs for 'evaluate' Malcolm.Wallace@cs.york.ac.uk**20070508101124] [improve documentation for evaluate Simon Marlow **20070508081712] [FIX: #724 (tee complains if used in a process started by ghc) Simon Marlow **20070507123537 Now, we only set O_NONBLOCK on file descriptors that we create ourselves. File descriptors that we inherit (stdin, stdout, stderr) are kept in blocking mode. The way we deal with this differs between the threaded and non-threaded runtimes: - with -threaded, we just make a safe foreign call to read(), which may block, but this is ok. - without -threaded, we test the descriptor with select() before attempting any I/O. This isn't completely safe - someone else might read the data between the select() and the read() - but it's a reasonable compromise and doesn't seem to measurably affect performance. ] [the "unknown" types are no longer required Simon Marlow **20070426135931] [Make Control.Exception buildable by nhc98. Malcolm.Wallace@cs.york.ac.uk**20070504105548 The nhc98 does not have true exceptions, but these additions should be enough infrastructure to pretend that it does. Only IO exceptions will actually work. ] [Trim imports, remove a cycle simonpj@microsoft**20070503123010 A first attempt at removing gratuitous cycles in the base package. I've removed the useless module GHC.Dynamic, which gets rid of a cycle; and trimmed off various unnecesary imports. This also fixes the IsString import problem. ] [Be less quiet about building the base package simonpj@microsoft**20070503093707] [Remove Splittable class (a vestige of linear implicit parameters) simonpj@microsoft**20070221104329] [Add IsString to exports of GHC.Exts simonpj@microsoft**20070221104249] [tweak documentation as per suggestion from Marc Weber on libraries@haskell.org Simon Marlow **20070426075921] [Add extra libraries when compiling with GHC on Windows Ian Lynagh **20070424213127] [Follow Cabal changes in Setup.hs Ian Lynagh **20070418114345] [inclusion of libc.h is conditional on __APPLE__ Malcolm.Wallace@cs.york.ac.uk**20070417085556] [MERGE: fix ugly uses of memcpy foreign import inside ST Simon Marlow **20070416101530 fixes cg026 ] [Fix configure with no --with-cc Ian Lynagh **20070415165143] [MacOS 10.3 needs #include as well Malcolm.Wallace@cs.york.ac.uk**20070414155507] [For nhc98 only, use hsc2hs to determine System.Posix.Types. Malcolm.Wallace@cs.york.ac.uk**20070413155831 Avoids the existing autoconf stuff, by introducing an auxiliary module called NHC.PosixTypes that uses hsc2hs, which is then simply re-exported from System.Posix.Types. ] [we need a makefileHook too Simon Marlow **20070413151307] [Remove unnecesary SOURCE import of GHC.Err in GHC.Pack Ian Lynagh **20070412235908] [add System.Posix.Types to default nhc98 build Malcolm.Wallace@cs.york.ac.uk**20070412195026] [mark System.IO.openTempFile as non-portable in haddocks Malcolm.Wallace@cs.york.ac.uk**20070412135359] [Don't turn on -Werror in Data.Fixed Ian Lynagh **20070411155721 This may be responsible for the x86_64/Linux nightly build failing. ] [Fix -Wall warnings Ian Lynagh **20070411004929] [Add missing case in removePrefix Ian Lynagh **20070411002537] [Allow additional options to pass on to ./configure to be given Ian Lynagh **20070406151856] [Hugs only: fix location of unsafeCoerce Ross Paterson **20070406113731] [fix isPortableBuild test Ross Paterson **20070406111304] [Unsafe.Coerce doesn't need Prelude Ian Lynagh **20070405175930] [make Setup and base.cabal suitable for building the libraries with GHC Ian Lynagh **20070308163824] [HsByteArray doesn't exist Ian Lynagh **20070404163051] [Don't use Fd/FD in foreign decls Ian Lynagh **20070404155822 Using CInt makes it much easier to verify that it is right, and we won't get caught out by possible newtype switches between CInt/Int. ] [HsByteArray doesn't exist Ian Lynagh **20070404155732] [Fix braino Ian Lynagh **20070404144508] [Fix incorrect changes to C types in a foreign import for nhc98. Malcolm.Wallace@cs.york.ac.uk**20070404120954 If we use type CTime, it needs to be imported. Also, CTime is not an instance of Integral, so use some other mechanism to convert it. ] [Fix C/Haskell type mismatches Ian Lynagh **20070403194943] [add new module Unsafe.Coerce to build system Malcolm.Wallace@cs.york.ac.uk**20070403131333] [Fix type mismatches between foreign imports and HsBase.h Ian Lynagh **20070403001611 Merge to stable, checking for interface changes. ] [put 'unsafeCoerce' in a standard location Malcolm.Wallace@cs.york.ac.uk**20061113114103] [fix for nhc98 build Malcolm.Wallace@cs.york.ac.uk**20070402141712] [Function crossMapP for fixing desugaring of comprehensions Manuel M T Chakravarty **20070402082906 Merge into 6.6 branch. ] [Add min/max handling operations for IntSet/IntMap jeanphilippe.bernardy@gmail.com**20070315072352] [Monoid instance for Maybe and two wrappers: First and Last. trac proposal #1189 Jeffrey Yasskin **20070309062550] [Fix the type of wgencat Ian Lynagh **20070329164223] [fix strictness of foldr/build rule for take, see #1219 Simon Marlow **20070327103941] [remove Makefile.inc (only affects nhc98) Malcolm.Wallace@cs.york.ac.uk**20070320120057] [copyBytes copies bytes, not elements; fixes trac #1203 Ian Lynagh **20070312113555] [Add ioeGetLocation, ioeSetLocation to System/IO/Error.hs; trac #1191 Ian Lynagh **20070304130315] [fix race condition in prodServiceThread Simon Marlow **20070307134330 See #1187 ] [Prevent duplication of unsafePerformIO on a multiprocessor Simon Marlow **20070306145424 Fixes #986. The idea is to add a new operation noDuplicate :: IO () it is guaranteed that if two threads have executed noDuplicate, then they are not duplicating any computation. We now provide two new unsafe operations: unsafeDupablePerformIO :: IO a -> a unsafeDupableInterleaveIO :: IO a -> IO a which are equivalent to the old unsafePerformIO and unsafeInterleaveIO respectively. The new versions of these functions are defined as: unsafePerformIO m = unsafeDupablePerformIO (noDuplicate >> m) unsafeInterleaveIO m = unsafeDupableInterleaveIO (noDuplicate >> m) ] [expand docs for forkOS Simon Marlow **20070305160921] [document timeout limitations Peter Simons **20070228223540] [So many people were involved in the writing of this module that Peter Simons **20070228223415 it feels unfair to single anyone out as the lone copyright holder. ] [This patch adds a timeout function to the base libraries. Trac #980 is Peter Simons **20070126222615 concerned with this issue. The design guideline for this implementation is that 'timeout N E' should behave exactly the same as E as long as E doesn't time out. In our implementation, this means that E has the same myThreadId it would have without the timeout wrapper. Any exception E might throw cancels the timeout and propagates further up. It also possible for E to receive exceptions thrown to it by another thread. ] [PArr: fixed permutations Manuel M T Chakravarty **20070305055807] [Add Data.String, containing IsString(fromString); trac proposal #1126 Ian Lynagh **20070130134841 This is used by the overloaded strings extension (-foverloaded-strings in GHC). ] [GHC.PArr: add bounds checking Manuel M T Chakravarty **20070302053224] [Bump nhc98 stack size for System/Time.hsc sven.panne@aedion.de**20070301153009] [FDs are CInts now, fixing non-GHC builds sven.panne@aedion.de**20070225105620] [Fixed PArr.dropP Manuel M T Chakravarty **20070222032405 - Thanks to Audrey Tang for the bug report ] [Keep the same FD in both halves of a duplex handle when dup'ing Ian Lynagh **20070220141039 Otherwise we only close one of the FDs when closing the handle. Fixes trac #1149. ] [Remove more redundant FD conversions Ian Lynagh **20070220092520] [Fix FD changes on Windows Ian Lynagh **20070220091516] [Consistently use CInt rather than Int for FDs Ian Lynagh **20070219233854] [Fix the types of minView/maxView (ticket #1134) jeanphilippe.bernardy@gmail.com**20070210065115] [fix for hashString, from Jan-Willem Maessen (see #1137) Simon Marlow **20070215094304 ] [fix to getUSecOfDay(): arithmetic was overflowing Simon Marlow **20070214161719] [The Windows counterpart to 'wrapround of thread delays' Ian Lynagh **20070209173510] [wrapround of thread delays Neil Davies **20070129160519 * made the wrapround of the underlying O/S occur before the wrapround of the delayed threads by making threads delay in microseconds since O/S epoch (1970 - Unix, 1601 - Windows) stored in Word64. * removed redundant calls reading O/S realtime clock * removed rounding to 1/50th of sec for timers * Only for Unix version of scheduler. ] [Whitespace changes only Ian Lynagh **20070206232722] [Add some type sigs Ian Lynagh **20070206232439] [Use static inline rather than extern inline/inline Ian Lynagh **20070205203628 I understand this is more portable, and it also fixes warnings when C things we are wrapping are themselves static inlines (which FD_ISSET is on ppc OS X). ] [add derived instances for Dual monoid Ross Paterson **20070202190847] [add doc pointers to Foldable Ross Paterson **20070202110931 Could be applied to STABLE. ] [Eliminate some warnings Ian Lynagh **20060729220854 Eliminate warnings in the libraries caused by mixing pattern matching with numeric literal matching. ] [Remove IsString(fromString) from the Prelude Ian Lynagh **20070130124136] [Add Kleisli composition Don Stewart **20061113015442] [IsString is GHC-only (so why is it in the Prelude?) Ross Paterson **20070123183007] [Applicative and Monad instances for Tree Ross Paterson **20070115174510] [Add IsString class for overloaded string literals. lennart@augustsson.net**20061221210532] [Added examples, more detailed documentation to Data.List Extracting sublists functions Andriy Palamarchuk **20061204164710] [fix threadDelay Simon Marlow **20070117091702 In "Add support for the IO manager thread" I accidentally spammed part of "Make sure the threaded threadDelay sleeps at least as long as it is asked", which is why the ThreadDelay001 test has been failing. ] [update section on "blocking" Simon Marlow **20070116124328] [Fix crash with (minBound :: Int*) `div (-1) as result is maxBound + 1. Ian Lynagh **20070115142005] [version of example using Tomasz Zielonka's technique Ross Paterson **20070105175907] [Added Unknowns for higher kinds Pepe Iborra **20061108155938] [Improved the Show instance for Unknown Pepe Iborra **20060813111816] [Show instance for GHC.Base.Unknown mnislaih@gmail.com**20060801233530] [Introduce Unknowns for the closure viewer. Add breakpointCond which was missing mnislaih@gmail.com**20060725174537] [Fix missing comma in Fractional documentation Alec Berryman **20061201173237] [Mention that throwTo does not guarantee promptness of delivery simonpj@microsoft**20061211123215] [Add note about synhronous delivery of throwTo simonpj@microsoft**20061211122257] [documentation for installHandler Simon Marlow **20061205154927 merge to 6.6 ] [dos2unix Simon Marlow **20061204095439] [don't try to compile this on Unix Simon Marlow **20061204095427] [TAG 6.6 release Ian Lynagh **20061011124740] [TAG Version 2.1 Ian Lynagh **20061009114014] [Bump version number Ian Lynagh **20061009114009] [Add support for the IO manager thread on Windows Simon Marlow **20061201152042 Fixes #637. The test program in that report now works for me with -threaded, but it doesn't work without -threaded (I don't know if that's new behaviour or not, though). ] [deriving (Eq, Ord, Enum, Show, Read, Typeab) for ConsoleEvent Simon Marlow **20061201144032] [Make sure the threaded threadDelay sleeps at least as long as it is asked to Ian Lynagh **20061128204807] [Add comments about argument order to the definitions of gmapQ and constrFields simonpj@microsoft**20061124164505] [Hugs: add Control.Parallel.Strategies Ross Paterson **20061124161039] [Move instance of Show Ptr to Ptr.hs (fewer orphans) simonpj@microsoft.com**20061124100639] [Add type signatures simonpj@microsoft.com**20061124100621] [Add an example of the use of unfoldr, following doc feedback from dozer Don Stewart **20061124011249] [trim imports Ross Paterson **20061123190352] [Data.Graph is now portable (enable for nhc98) Malcolm.Wallace@cs.york.ac.uk**20061123174913] [remove Data.FunctorM and Data.Queue Ross Paterson **20061112001046 These were deprecated in 6.6, and can thus be removed in 6.8. ] [make Data.Graph portable (no change to the interface) Ross Paterson **20061122010040 The algorithm now uses STArrays on GHC and IntSets elsewhere. (Hugs has STArrays, but avoiding them saves a -98, and boxed arrays aren't fast under Hugs anyway.) ] [One less unsafeCoerce# in the tree Don Stewart **20061120120242] [typo in comment Ross Paterson **20061120115106] [fix shift docs to match ffi spec Ross Paterson **20061117003144] [(nhc98) use new primitive implementations of h{Put,Get}Buf. Malcolm.Wallace@cs.york.ac.uk**20061116173104] [The wrong 'cycle' was exported from Data.ByteString.Lazy.Char8, spotted by sjanssen Don Stewart **20061110021311] [LPS chunk sizes should be 16 bytes, not 17. Don Stewart **20061110021254] [Update comments on Prelude organisation in GHC/Base.lhs Ian Lynagh **20061115001926] [Control.Parallel.Strategies clean-up: Added export list to avoid exporting seq, fixed import list strangeness that haddock choked on, and moved the deprecated functions to a separate section. bringert@cs.chalmers.se**20061113224202] [Control.Parallel.Strategies: added NFData instances for Data.Int.*, Data.Word.*, Maybe, Either, Map, Set, Tree, IntMap, IntSet. bringert@cs.chalmers.se**20061113221843] [Control.Parallel.Strategies: deprecate sPar, sSeq, Assoc, fstPairFstList, force and sforce. bringert@cs.chalmers.se**20061113215219 Code comments indicated that sPar and sSeq have been superceded by sparking and demanding, and that Assoc, fstPairFstList, force and sforce are examples and hacks needed by the Lolita system. ] [add Control.Monad.Instances to nhc98 build Malcolm.Wallace@cs.york.ac.uk**20061113113221] [Control.Parallel.Strategies: clarified documentation of parListChunk. bringert@cs.chalmers.se**20061112232904] [Added and cleaned up Haddock comments in Control.Parallel.Strategies. bringert@cs.chalmers.se**20061112220445 Many of the definitions in Control.Parallel.Strategies had missing or unclear Haddock comments. I converted most of the existing plain code comments to haddock comments, added some missing documentation and cleaned up the existing Haddock mark-up. ] [Fix broken pragmas; spotted by Bulat Ziganshin Ian Lynagh **20061111205916] [add doc link to bound threads section Ross Paterson **20060929103252] [hide Data.Array.IO.Internals Ross Paterson **20061111113248 It's hidden from haddock, and everything it exports is re-exported by Data.Array.IO. ] [add Data.Function Malcolm.Wallace@cs.york.ac.uk**20061110142710] [add Data.Function Ross Paterson **20061110141354] [whitespace only Ross Paterson **20061110141326] [move fix to Data.Function Ross Paterson **20061110141120] [import Prelude Ross Paterson **20061110140445] [Added Data.Function (Trac ticket #979). Nils Anders Danielsson **20061110122503 + A module with simple combinators working solely on and with functions. + The only new function is "on". + Some functions from the Prelude are re-exported. ] [__hscore_long_path_size is not portable beyond GHC Malcolm.Wallace@cs.york.ac.uk**20061110113222] [redefine writeFile and appendFile using withFile Ross Paterson **20061107140359] [add withFile and withBinaryFile (#966) Ross Paterson **20061107134510] [remove conflicting import for nhc98 Malcolm.Wallace@cs.york.ac.uk**20061108111215] [Add intercalate to Data.List (ticket #971) Josef Svenningsson **20061102122052] [non-GHC: fix canonicalizeFilePath Ross Paterson **20061107133902 I've also removed the #ifdef __GLASGOW_HASKELL__ from the proper Windows versions of a few functions. These will need testing with Hugs on Windows. ] [enable canonicalizePath for non-GHC platforms Simon Marlow **20061107121141] [Update documentation for hWaitForInput Simon Marlow **20061107111430 See #972 Merge to 6.6 branch. ] [Use unchecked shifts to implement Data.Bits.rotate Samuel Bronson **20061012125553 This should get rid of those cases, maybe lower the size enough that the inliner will like it? ] [fix Haddock module headers Ross Paterson **20061106124140] [fix example in docs Ross Paterson **20061106115628] [Add intercalate and split to Data.List Josef Svenningsson *-20061024172357] [Data.Generics.Basics is GHC-only Ross Paterson **20061102111736] [#ifdef around non-portable Data.Generics.Basics Malcolm.Wallace@cs.york.ac.uk**20061102103445] [Add deriving Data to Complex simonpj@microsoft**20061101102059] [minor clarification of RandomGen doc Ross Paterson **20061030230842] [rearrange docs a bit Ross Paterson **20061030161223] [Add intercalate and split to Data.List Josef Svenningsson **20061024172357] [Export pseq from Control.Parallel, and use it in Control.Parallel.Strategies Simon Marlow **20061027150141] [`par` should be infixr 0 Simon Marlow **20061027130800 Alas, I didn't spot this due to lack of testing, and the symptom is that an expression like x `par` y `seq z will have exactly the wrong parallelism properties. The workaround is to add parantheses. I think we could push this to the 6.6 branch. ] [fix example in comment Ross Paterson **20061023163925] [Use the new Any type for dynamics (GHC only) simonpj@microsoft**20061019160408] [add Data.Sequence to nhc98 build Malcolm.Wallace@cs.york.ac.uk**20061012135200] [Remove Data.FiniteMap, add Control.Applicative, Data.Traversable, and Malcolm.Wallace@cs.york.ac.uk**20061012095605 Data.Foldable to the nhc98 build. ] [STM invariants tharris@microsoft.com**20061007123253] [Inline shift in GHC's Bits instances for {Int,Word}{,8,16,32,64} Samuel Bronson **20061009020906] [Don't create GHC.Prim when bootstrapping; we can't, and we don't need it Ian Lynagh **20061004165355] [Data.ByteString: fix lazyness of take, drop & splitAt Don Stewart **20061005011703 ByteString.Lazy's take, drop and splitAt were too strict when demanding a byte string. Spotted by Einar Karttunen. Thanks to him and to Bertram Felgenhauer for explaining the problem and the fix. ] [Fix syntax error that prevents building Haddock documentation on Windows brianlsmith@gmail.com**20060917013530] [Hugs only: unbreak typeRepKey Ross Paterson **20060929102743] [make hGetBufNonBlocking do something on Windows w/ -threaded Simon Marlow **20060927145811 hGetBufNonBlocking will behave the same as hGetBuf on Windows now, which is better than just crashing (which it did previously). ] [add typeRepKey :: TypeRep -> IO Int Simon Marlow **20060927100342 See feature request #880 ] [fix header comment Ross Paterson **20060926135843] [Add strict versions of insertWith and insertWithKey (Data.Map) jeanphilippe.bernardy@gmail.com**20060910162443] [doc tweaks, including more precise equations for evaluate Ross Paterson **20060910115259] [Sync Data.ByteString with stable branch Don Stewart **20060909050111 This patch: * hides the LPS constructor (its in .Base if you need it) * adds functions to convert between strict and lazy bytestrings * and adds readInteger ] [Typeable1 instances for STM and TVar Ross Paterson **20060904231425] [remove obsolete Hugs stuff Ross Paterson **20060904223944] [Cleaner isInfixOf suggestion from Ross Paterson John Goerzen **20060901143654] [New function isInfixOf that searches a list for a given sublist John Goerzen **20060831151556 Example: isInfixOf "Haskell" "I really like Haskell." -> True isInfixOf "Ial" "I really like Haskell." -> False This function was first implemented in MissingH as MissingH.List.contains ] [Better doc on Data.Map.lookup: explain what the monad is for jeanphilippe.bernardy@gmail.com**20060903133440] [fix hDuplicateTo on Windows Simon Marlow **20060901150016 deja vu - I'm sure I remember fixing this before... ] [Improve documentation of atomically simonpj@microsoft**20060714120207] [Add missing method genRange for StdGen (fixes #794) simonpj@microsoft**20060707151901 MERGE TO STABLE Trac #794 reports (correctly) that the implementation of StdGen only returns numbers in the range (0..something) rather than (minBound, maxBound), which is what StdGen's genRange claims. This commit fixes the problem, by implementing genRange for StdGen (previously it just used the default method). ] [mark nhc98 import hack Ross Paterson **20060831125219] [remove some outdated comments Simon Marlow **20060831104200] [import Control.Arrow.ArrowZero to help nhc98's type checker Malcolm.Wallace@cs.york.ac.uk**20060831101105] [remove Text.Regex(.Posix) from nhc98 build Malcolm.Wallace@cs.york.ac.uk**20060831101016] [add Data.Foldable.{msum,asum}, plus tweaks to comments Ross Paterson **20060830163521] [fix doc typo Ross Paterson **20060830134123] [add Data.Foldable.{for_,forM_} and Data.Traversable.{for,forM} Ross Paterson **20060830133805 generalizing Control.Monad.{forM_,forM} ] [Make length a good consumer simonpj@microsoft*-20060508142726 Make length into a good consumer. Fixes Trac bug #707. (Before length simply didn't use foldr.) ] [Add Control.Monad.forM and forM_ Don Stewart **20060824081118 flip mapM_ is more and more common, I find. Several suggestions have been made to add this, as foreach or something similar. This patch does just that: forM :: (Monad m) => [a] -> (a -> m b) -> m [b] forM_ :: (Monad m) => [a] -> (a -> m b) -> m () So we can write: Prelude Control.Monad> forM_ [1..4] $ \x -> print x 1 2 3 4 ] [Hide internal module from haddock in Data.ByteString Don Stewart **20060828011515] [add advice on avoiding import ambiguities Ross Paterson **20060827170407] [expand advice on importing these modules Ross Paterson **20060827164044] [add Haddock marker Ross Paterson **20060827115140] [Clarify how one hides Prelude.catch Don Stewart **20060826124346 User feedback indicated that an example was required, of how to hide Prelude.catch, so add such an example to the docs ] [Workaround for OSes that don't have intmax_t and uintmax_t Ian Lynagh **20060825134936 OpenBSD (and possibly others) do not have intmax_t and uintmax_t types: http://www.mail-archive.com/haskell-prime@haskell.org/msg01548.html so substitute (unsigned) long long if we have them, otherwise (unsigned) long. ] [add docs for par Simon Marlow **20060825110610] [document minimal complete definition for Bits Ross Paterson **20060824140504] [C regex library bits have moved to the regex-posix package Simon Marlow **20060824132311] [Add shared Typeable support (ghc only) Esa Ilari Vuokko **20060823003126] [this should have been removed with the previous patch Simon Marlow **20060824121223] [remove Text.Regx & Text.Regex.Posix Simon Marlow **20060824094615 These are subsumed by the new regex-base, regex-posix and regex-compat packages. ] [explicitly tag Data.ByteString rules with the FPS prefix. Don Stewart **20060824041326] [Add spec rules for sections in Data.ByteString Don Stewart **20060824012611] [Sync Data.ByteString with current stable branch, 0.7 Don Stewart **20060823143338] [add notes about why copyFile doesn't remove the target Simon Marlow **20060823095059] [copyFile: try removing the target file before opening it for writing Simon Marlow *-20060822121909] [copyFile: try removing the target file before opening it for writing Simon Marlow **20060822121909] [add alternative functors and extra instances Ross Paterson **20060821152151 * Alternative class, for functors with a monoid * instances for Const * instances for arrows ] [generate Haddock docs on all platforms Simon Marlow **20060821131612] [remove extra comma from import Ross Paterson **20060819173954] [fix docs for withC(A)StringLen Ross Paterson **20060818170328] [use Haskell'98 compliant indentation in do blocks Malcolm.Wallace@cs.york.ac.uk**20060818130810] [use correct names of IOArray operations for nhc98 Malcolm.Wallace@cs.york.ac.uk**20060818130714] [add mapMaybe and mapEither, plus WithKey variants Ross Paterson **20060817235041] [remove Text.Html from nhc98 build Malcolm.Wallace@cs.york.ac.uk**20060817135502] [eliminate more HOST_OS tests Ross Paterson **20060815190609] [Hugs only: disable unused process primitives Ross Paterson **20060813184435 These were the cause of Hugs bug #30, I think, and weren't used by Hugs anyway. ] [markup fix to Data.HashTable Ross Paterson **20060812103835] [revert removal of ghcconfig.h from package.conf.in Ross Paterson **20060812082702 as it's preprocessed with -undef (pointed out by Esa Ilari Vuokko) ] [fix Data.HashTable for non-GHC Ross Paterson **20060811231521] [remove deprecated 'withObject' Simon Marlow **20060811152350] [Jan-Willem Maessen's improved implementation of Data.HashTable Simon Marlow **20060811151024 Rather than incrementally enlarging the hash table, this version just does it in one go when the table gets too full. ] [Warning police: Make some prototypes from the RTS known sven.panne@aedion.de**20060811144629] [Warning police: Removed useless catch-all clause sven.panne@aedion.de**20060811142208] [reduce dependency on ghcconfig.h Ross Paterson **20060811124030 The only remaining use is in cbits/dirUtils.h, which tests solaris2_HOST_OS (Also System.Info uses ghcplatform.h and several modules import MachDeps.h to get SIZEOF_* and ALIGNMENT_* from ghcautoconf.h) ] [(non-GHC only) track MArray interface change Ross Paterson **20060810182902] [move Text.Html to a separate package Simon Marlow **20060810113017] [bump version to 2.0 Simon Marlow **20060810112833] [Remove deprecated Data.FiniteMap and Data.Set interfaces Simon Marlow **20060809153810] [move altzone test from ghc to base package Ross Paterson **20060809124259] [remove unnecessary #include "ghcconfig.h" Ross Paterson **20060809123812] [Change the API of MArray to allow resizable arrays Simon Marlow **20060809100548 See #704 The MArray class doesn't currently allow a mutable array to change its size, because of the pure function bounds :: (HasBounds a, Ix i) => a i e -> (i,i) This patch removes the HasBounds class, and adds getBounds :: (MArray a e m, Ix i) => a i e -> m (i,i) to the MArray class, and bounds :: (IArray a e, Ix i) => a i e -> (i,i) to the IArray class. The reason that bounds had to be incorporated into the IArray class is because I couldn't make DiffArray work without doing this. DiffArray acts as a layer converting an MArray into an IArray, and there was no way (that I could find) to define an instance of HasBounds for DiffArray. ] [deprecate this module. Simon Marlow **20060808100708] [add traceShow (see #474) Simon Marlow **20060807155545] [remove spurious 'extern "C" {' Simon Marlow **20060724160258] [Fix unsafeIndex for large ranges Simon Marlow **20060721100225] [disambiguate uses of foldr for nhc98 to compile without errors Malcolm.Wallace@cs.york.ac.uk**20060711161614] [make Control.Monad.Instances compilable by nhc98 Malcolm.Wallace@cs.york.ac.uk**20060711160941] [breakpointCond Lemmih **20060708055528] [UNDO: Merge "unrecognized long opt" fix from 6.4.2 Simon Marlow **20060705142537 This patch undid the previous patch, "RequireOrder: do not collect unrecognised options after a non-opt". I asked Sven to revert it, but didn't get an answer. See bug #473. ] [Avoid strictness in accumulator for unpackFoldr Don Stewart **20060703091806 The seq on the accumulator for unpackFoldr will break in the presence of head/build rewrite rules. The empty list case will be forced, producing an exception. This is a known issue with seq and rewrite rules that we just stumbled on to. ] [Disable unpack/build fusion Don Stewart **20060702083913 unpack/build on bytestrings seems to trigger a bug when interacting with head/build fusion in GHC.List. The bytestring001 testcase catches it. I'll investigate further, but best to disable this for now (its not often used anyway). Note that with -frules-off or ghc 6.4.2 things are fine. It seems to have emerged with the recent rules changes. ] [Import Data.ByteString.Lazy, improve ByteString Fusion, and resync with FPS head Don Stewart **20060701084345 This patch imports the Data.ByteString.Lazy module, and its helpers, providing a ByteString implemented as a lazy list of strict cache-sized chunks. This type allows the usual lazy operations to be written on bytestrings, including lazy IO, with much improved space and time over the [Char] equivalents. ] [Wibble in docs for new ForeignPtr functionsn Don Stewart **20060609075924] [comments for Applicative and Traversable Ross Paterson **20060622170436] [default to NoBuffering on Windows for a read/write text file Simon Marlow **20060622144446 Fixes (works around) #679 ] [remove dead code Simon Marlow **20060622144433] [clarify and expand docs Simon Marlow **20060622112911] [Add minView and maxView to Map and Set jeanphilippe.bernardy@gmail.com**20060616180121] [add signature for registerDelay Ross Paterson **20060614114456] [a few doc comments Ross Paterson **20060613142704] [Optimised foreign pointer representation, for heap-allocated objects Don Stewart **20060608015011] [Add the inline function, and many comments simonpj@microsoft.com**20060605115814 This commit adds the 'inline' function described in the related patch in the compiler. I've also added comments about the 'lazy' function. ] [small intro to exceptions Ross Paterson **20060525111604] [export breakpoint Simon Marlow **20060525090456] [Merge in changes from fps head. Highlights: Don Stewart **20060525065012 Wed May 24 15:49:38 EST 2006 sjanssen@cse.unl.edu * instance Monoid ByteString Wed May 24 15:04:04 EST 2006 Duncan Coutts * Rearange export lists for the .Char8 modules Wed May 24 14:59:56 EST 2006 Duncan Coutts * Implement mapAccumL and reimplement mapIndexed using loopU Wed May 24 14:47:32 EST 2006 Duncan Coutts * Change the implementation of the unfoldr(N) functions. Use a more compact implementation for unfoldrN and change it's behaviour to only return Just in the case that it actually 'overflowed' the N, so the boundary case of unfolding exactly N gives Nothing. Implement unfoldr and Lazy.unfoldr in terms of unfoldrN. Use fibonacci growth for the chunk size in unfoldr Wed May 24 08:32:29 EST 2006 sjanssen@cse.unl.edu * Add unfoldr to ByteString and .Char8 A preliminary implementation of unfoldr. Wed May 24 01:39:41 EST 2006 Duncan Coutts * Reorder the export lists to better match the Data.List api Tue May 23 14:04:32 EST 2006 Don Stewart * pack{Byte,Char} -> singleton. As per fptools convention Tue May 23 14:00:51 EST 2006 Don Stewart * elemIndexLast -> elemIndexEnd Tue May 23 13:57:34 EST 2006 Don Stewart * In the search for a more orthogonal api, we kill breakFirst/breakLast, which were of dubious value Tue May 23 12:24:09 EST 2006 Don Stewart * Abolish elems. It's name implied it was unpack, but its type didn't. it made no sense Tue May 23 10:42:09 EST 2006 Duncan Coutts * Minor doc tidyup. Use haddock markup better. Tue May 23 11:00:31 EST 2006 Don Stewart * Simplify the join() implementation. Spotted by Duncan. ] [add a way to ask the IO manager thread to exit Simon Marlow **20060524121823] [Sync with FPS head, including the following patches: Don Stewart **20060520030436 Thu May 18 15:45:46 EST 2006 sjanssen@cse.unl.edu * Export unsafeTake and unsafeDrop Fri May 19 11:53:08 EST 2006 Don Stewart * Add foldl1' Fri May 19 13:41:24 EST 2006 Don Stewart * Add fuseable scanl, scanl1 + properties Fri May 19 18:20:40 EST 2006 Don Stewart * Spotted another chance to use unsafeTake,Drop (in groupBy) Thu May 18 09:24:25 EST 2006 Duncan Coutts * More effecient findIndexOrEnd based on the impl of findIndex Thu May 18 09:22:49 EST 2006 Duncan Coutts * Eliminate special case in findIndex since it's handled anyway. Thu May 18 09:19:08 EST 2006 Duncan Coutts * Add unsafeTake and unsafeDrop These versions assume the n is in the bounds of the bytestring, saving two comparison tests. Then use them in varous places where we think this holds. These cases need double checking (and there are a few remaining internal uses of take / drop that might be possible to convert). Not exported for the moment. Tue May 16 23:15:11 EST 2006 Don Stewart * Handle n < 0 in drop and splitAt. Spotted by QC. Tue May 16 22:46:22 EST 2006 Don Stewart * Handle n <= 0 cases for unfoldr and replicate. Spotted by QC Tue May 16 21:34:11 EST 2006 Don Stewart * mapF -> map', filterF -> filter' ] [haddock fix Ross Paterson **20060518154723] [simplify indexing in Data.Sequence Ross Paterson **20060518154316] [Move Eq, Ord, Show instances for ThreadId to GHC.Conc Simon Marlow **20060518113339 Eliminates orphans. ] [Better error handling in the IO manager thread Simon Marlow **20060518113303 In particular, handle EBADF just like rts/posix/Select.c, by waking up all the waiting threads. Other errors are thrown, instead of just being ignored. ] [#define _REENTRANT 1 (needed to get the right errno on some OSs) Simon Marlow **20060518104151 Part 2 of the fix for threaded RTS problems on Solaris and possibly *BSD (Part 1 was the same change in ghc/includes/Rts.h). ] [copyCString* should be in IO. Spotted by Tomasz Zielonka Don Stewart **20060518012154] [add import Prelude to get dependencies right for Data/Fixed.hs Duncan Coutts **20060517222044 Hopefully this fixes parallel builds. ] [Fix negative index handling in splitAt, replicate and unfoldrN. Move mapF, filterF -> map', filter' while we're here Don Stewart **20060517020150] [Use our own realloc. Thus reduction functions (like filter) allocate on the Haskell heap. Makes around 10% difference. Don Stewart **20060513051736] [Last two CInt fixes for 64 bit, and bracket writeFile while we're here Don Stewart **20060512050750] [Some small optimisations, generalise the type of unfold Don Stewart **20060510043309 Tue May 9 22:36:29 EST 2006 Duncan Coutts * Surely the error function should not be inlined. Tue May 9 22:35:53 EST 2006 Duncan Coutts * Reorder memory writes for better cache locality. Tue May 9 23:28:09 EST 2006 Duncan Coutts * Generalise the type of unfoldrN The type of unfoldrN was overly constrained: unfoldrN :: Int -> (Word8 -> Maybe (Word8, Word8)) -> Word8 -> ByteString if we compare that to unfoldr: unfoldr :: (b -> Maybe (a, b)) -> b -> [a] So we can generalise unfoldrN to this type: unfoldrN :: Int -> (a -> Maybe (Word8, a)) -> a -> ByteString and something similar for the .Char8 version. If people really do want to use it a lot with Word8/Char then perhaps we should add a specialise pragma. Wed May 10 13:26:40 EST 2006 Don Stewart * Add foldl', and thus a fusion rule for length . {map,filter,fold}, that avoids creating an array at all if the end of the pipeline is a 'length' reduction **END OF DESCRIPTION*** Place the long patch description above the ***END OF DESCRIPTION*** marker. The first line of this file will be the patch name. This patch contains the following changes: M ./Data/ByteString.hs -8 +38 M ./Data/ByteString/Char8.hs -6 +12 ] [portable implementation of WordPtr/IntPtr for non-GHC Ross Paterson **20060510001826 plus much tweaking of imports to avoid cycles ] [add WordPtr and IntPtr types to Foreign.Ptr, with associated conversions Simon Marlow **20060509092606 As suggested by John Meacham. I had to move the Show instance for Ptr into GHC.ForeignPtr to avoid recursive dependencies. ] [add CIntPtr, CUIntPtr, CIntMax, CUIntMax types Simon Marlow **20060509092427] [add GHC.Dynamic Simon Marlow **20060509082739] [Two things. #if defined(__GLASGOW_HASKELL__) on INLINE [n] pragmas (for jhc). And careful use of INLINE on words/unwords halves runtime for those functions Don Stewart **20060509023425] [Make length a good consumer simonpj@microsoft**20060508142726 Make length into a good consumer. Fixes Trac bug #707. (Before length simply didn't use foldr.) ] [Trim imports simonpj@microsoft**20060508142557] [Make unsafePerformIO lazy simonpj@microsoft**20060508142507 The stricteness analyser used to have a HACK which ensured that NOINLNE things were not strictness-analysed. The reason was unsafePerformIO. Left to itself, the strictness analyser would discover this strictness for unsafePerformIO: unsafePerformIO: C(U(AV)) But then consider this sub-expression unsafePerformIO (\s -> let r = f x in case writeIORef v r s of (# s1, _ #) -> (# s1, r #) The strictness analyser will now find that r is sure to be eval'd, and may then hoist it out. This makes tests/lib/should_run/memo002 deadlock. Solving this by making all NOINLINE things have no strictness info is overkill. In particular, it's overkill for runST, which is perfectly respectable. Consider f x = runST (return x) This should be strict in x. So the new plan is to define unsafePerformIO using the 'lazy' combinator: unsafePerformIO (IO m) = lazy (case m realWorld# of (# _, r #) -> r) Remember, 'lazy' is a wired-in identity-function Id, of type a->a, which is magically NON-STRICT, and is inlined after strictness analysis. So unsafePerformIO will look non-strict, and that's what we want. ] [Sync with FPS head. Don Stewart **20060508122322 Mon May 8 10:40:14 EST 2006 Don Stewart * Fix all uses for Int that should be CInt or CSize in ffi imports. Spotted by Igloo, dcoutts Mon May 8 16:09:41 EST 2006 Don Stewart * Import nicer loop/loop fusion rule from ghc-ndp Mon May 8 17:36:07 EST 2006 Don Stewart * Fix stack leak in split on > 60M strings Mon May 8 17:50:13 EST 2006 Don Stewart * Try same fix for stack overflow in elemIndices ] [Fix all uses for Int that should be CInt or CSize in ffi imports. Spotted by Duncan and Ian Don Stewart **20060508010311] [Fixed import list syntax Sven Panne **20060507155008] [Faster filterF, filterNotByte dons@cse.unsw.edu.au**20060507042301] [Much faster find, findIndex. Hint from sjanssen dons@cse.unsw.edu.au**20060507033048] [Merge "unrecognized long opt" fix from 6.4.2 Sven Panne **20060506110519] [ dons@cse.unsw.edu.au**20060506061029 Sat May 6 13:01:34 EST 2006 Don Stewart * Do loopU realloc on the Haskell heap. And add a really tough stress test Sat May 6 12:28:58 EST 2006 Don Stewart * Use simple, 3x faster concat. Plus QC properties. Suggested by sjanssen and dcoutts Sat May 6 15:59:31 EST 2006 Don Stewart * dcoutt's packByte bug squashed With inlinePerformIO, ghc head was compiling: packByte 255 `compare` packByte 127 into roughly case mallocByteString 2 of ForeignPtr f internals -> case writeWord8OffAddr# f 0 255 of _ -> case writeWord8OffAddr# f 0 127 of _ -> case eqAddr# f f of False -> case compare (GHC.Prim.plusAddr# f 0) (GHC.Prim.plusAddr# f 0) which is rather stunning. unsafePerformIO seems to prevent whatever magic inlining was leading to this. Only affected the head. ] [Add array fusion versions of map, filter and foldl dons@cse.unsw.edu.au**20060505060858 This patch adds fusable map, filter and foldl, using the array fusion code for unlifted, flat arrays, from the Data Parallel Haskell branch, after kind help from Roman Leshchinskiy, Pipelines of maps, filters and folds should now need to walk the bytestring once only, and intermediate bytestrings won't be constructed. ] [fix for non-GHC Ross Paterson **20060504093044] [use bracket in appendFile (like writeFile) Ross Paterson **20060504091528] [writeFile: close the file on error Simon Marlow **20060504084505 Suggested by Ross Paterson, via Neil Mitchell ] [Sync with FPS head dons@cse.unsw.edu.au**20060503105259 This patch brings Data.ByteString into sync with the FPS head. The most significant of which is the new Haskell counting sort. Changes: Sun Apr 30 18:16:29 EST 2006 sjanssen@cse.unl.edu * Fix foldr1 in Data.ByteString and Data.ByteString.Char8 Mon May 1 11:51:16 EST 2006 Don Stewart * Add group and groupBy. Suggested by conversation between sjanssen and petekaz on #haskell Mon May 1 16:42:04 EST 2006 sjanssen@cse.unl.edu * Fix groupBy to match Data.List.groupBy. Wed May 3 15:01:07 EST 2006 sjanssen@cse.unl.edu * Migrate to counting sort. Data.ByteString.sort used C's qsort(), which is O(n log n). The new algorithm is O(n), and is faster for strings larger than approximately thirty bytes. We also reduce our dependency on cbits! ] [improve performance of Integer->String conversion Simon Marlow **20060503113306 See http://www.haskell.org//pipermail/libraries/2006-April/005227.html Submitted by: bertram.felgenhauer@googlemail.com ] [inline withMVar, modifyMVar, modifyMVar_ Simon Marlow **20060503111152] [Fix string truncating in hGetLine -- it was a pasto from Simon's code Simon Marlow **20060503103504 (from Don Stewart) ] [Merge in Data.ByteString head. Fixes ByteString+cbits in hugs Don Stewart **20060429040733] [Import Data.ByteString from fps 0.5. Don Stewart **20060428130718 Fast, packed byte vectors, providing a better PackedString. ] [fix previous patch Ross Paterson **20060501154847] [fixes for non-GHC Ross Paterson **20060501144322] [fix imports for mingw32 && !GHC Ross Paterson **20060427163248] [RequireOrder: do not collect unrecognised options after a non-opt Simon Marlow **20060426121110 The documentation for RequireOrder says "no option processing after first non-option", so it doesn't seem right that we should process the rest of the arguments to collect the unrecognised ones. Presumably the client wants to know about the unrecognised options up to the first non-option, and will be using a different option parser for the rest of the command line. eg. before: Prelude System.Console.GetOpt> getOpt' RequireOrder [] ["bar","--foo"] ([],["bar","--foo"],["--foo"],[]) after: Prelude System.Console.GetOpt> getOpt' RequireOrder [] ["bar","--foo"] ([],["bar","--foo"],[],[]) ] [fix for Haddock 0.7 Ashley Yakeley **20060426072521] [add Data.Fixed module Ashley Yakeley **20060425071853] [add instances Ross Paterson **20060424102146] [add superclasses to Applicative and Traversable Ross Paterson **20060411144734 Functor is now a superclass of Applicative, and Functor and Foldable are now superclasses of Traversable. The new hierarchy makes clear the inclusions between the classes, but means more work in defining instances. Default definitions are provided to help. ] [add Functor and Monad instances for Prelude types Ross Paterson **20060410111443] [GHC.Base.breakpoint Lemmih **20060407125827] [Track the GHC source tree reorganisation Simon Marlow **20060407041631] [in the show instance for Exception, print the type of dynamic exceptions Simon Marlow **20060406112444 Unfortunately this requires some recursve module hackery to get at the show instance for Typeable. ] [implement ForeignEnvPtr, newForeignPtrEnv, addForeignPtrEnv for GHC Simon Marlow **20060405155448] [add forkOnIO :: Int -> IO () -> IO ThreadId Simon Marlow **20060327135018] [Rework previous: not a gcc bug after all Simon Marlow **20060323161229 It turns out that we were relying on behaviour that is undefined in C, and undefined behaviour in C means "the compiler can do whatever the hell it likes with your entire program". So avoid that. ] [work around a gcc 4.1.0 codegen bug in -O2 by forcing -O1 for GHC.Show Simon Marlow **20060323134514 See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26824 ] [commit mysteriously missing parts of "runIOFastExit" patch Simon Marlow **20060321101535] [add runIOFastExit :: IO a -> IO a Simon Marlow **20060320124333 Similar to runIO, but calls stg_exit() directly to exit, rather than shutdownHaskellAndExit(). Needed for running GHCi in the test suite. ] [Fix a broken invariant Simon Marlow **20060316134151 Patch from #694, for the problem "empty is an identity for <> and $$" is currently broken by eg. isEmpty (empty<>empty)" ] [Add unsafeSTToIO :: ST s a -> IO a Simon Marlow **20060315160232 Implementation for Hugs is missing, but should be easy. We need this for the forthcoming nested data parallelism implementation. ] [Added 'alter' jeanphilippe.bernardy@gmail.com**20060315143539 Added 'alter :: (Maybe a -> Maybe a) -> k -> Map k a -> Map k a' to IntMap and Map This addresses ticket #665 ] [deprecate FunctorM in favour of Foldable and Traversable Ross Paterson **20060315092942 as discussed on the libraries list. ] [Simplify Eq, Ord, and Show instances for UArray Simon Marlow **20060313142701 The Eq, Ord, and Show instances of UArray were written out longhand with one instance per element type. It is possible to condense these into a single instance for each class, at the expense of using more extensions (non-std context on instance declaration). Suggestion by: Frederik Eaton ] [Oops typo in intSet notMember jeanphilippe.bernardy@gmail.com**20060311224713] [IntMap lookup now returns monad instead of Maybe. jeanphilippe.bernardy@gmail.com**20060311224502] [Added notMember to Data.IntSet and Data.IntMap jeanphilippe.bernardy@gmail.com**20060311085221] [add Data.Set.notMember and Data.Map.notMember John Meacham **20060309191806] [addToClockTime: handle picoseconds properly Simon Marlow **20060310114532 fixes #588 ] [make head/build rule apply to all types, not just Bool. John Meacham **20060303045753] [Avoid overflow when normalising clock times Ian Lynagh **20060210144638] [Years have 365 days, not 30*365 Ian Lynagh **20060210142853] [declare blkcmp() static Simon Marlow **20060223134317] [typo in comment in Foldable class Ross Paterson **20060209004901] [simplify fmap Ross Paterson **20060206095048] [update ref in comment Ross Paterson **20060206095139] [Give -foverlapping-instances to Data.Typeable simonpj@microsoft**20060206133439 For some time, GHC has made -fallow-overlapping-instances "sticky": any instance in a module compiled with -fallow-overlapping-instances can overlap when imported, regardless of whether the importing module allows overlap. (If there is an overlap, both instances must come from modules thus compiled.) Instances in Data.Typeable might well want to be overlapped, so this commit adds the flag to Data.Typeable (with an explanatory comment) ] [Add -fno-bang-patterns to modules using both bang and glasgow-exts simonpj@microsoft.com**20060203175759] [When splitting a bucket, keep the contents in the same order Simon Marlow **20060201130427 To retain the property that multiple inserts shadow each other (see ticket #661, test hash001) ] [add foldr/build optimisation for take and replicate Simon Marlow **20060126164603 This allows take to be deforested, and improves performance of replicate and replicateM/replicateM_. We have a separate problem that means expressions involving [n..m] aren't being completely optimised because eftIntFB isn't being inlined but otherwise the results look good. Sadly this has invalidated a number of the nofib benchmarks which were erroneously using take to duplicate work in a misguided attempt to lengthen their runtimes (ToDo). ] [Generate PrimopWrappers.hs with Haddock docs Simon Marlow **20060124131121 Patch originally from Dinko Tenev , modified to add log message by me. ] [[project @ 2006-01-19 14:47:15 by ross] ross**20060119144715 backport warning avoidance from Haddock ] [[project @ 2006-01-18 11:45:47 by malcolm] malcolm**20060118114547 Fix import of Ix for nhc98. ] [[project @ 2006-01-17 09:38:38 by ross] ross**20060117093838 add Ix instance for GeneralCategory. ] [TAG Initial conversion from CVS complete John Goerzen **20060112154126] [[project @ 2006-01-11 11:29:49 by simonmar] simonmar**20060111112949 add some more warnings about unsafeThaw ] [[project @ 2006-01-10 10:23:16 by simonmar] simonmar**20060110102316 improve documentation for takeMVar/putMVar ] [[project @ 2006-01-06 15:52:36 by simonpj] simonpj**20060106155236 Use a type sig rather than a pattern signature, to avoid depending on GHC's precise impl of scoped type variables. (Which I'm about to change.) ] [[project @ 2006-01-06 15:51:23 by simonpj] simonpj**20060106155123 Eta-expand some higher-rank functions. GHC is about to move to *invariant* rather than *contra-variant* in function arguments, so far as type subsumption is concerned. These eta-expansions are simple, and allow type inference to go through with invariance. ] [[project @ 2006-01-06 15:46:09 by simonpj] simonpj**20060106154609 Fix one-char typo in scanl1P ] [[project @ 2006-01-02 19:38:01 by jpbernardy] jpbernardy**20060102193801 * Left-bias restored * Minor documentation improvements ] [[project @ 2005-12-30 00:18:59 by ross] ross**20051230001859 deriving Data ] [[project @ 2005-12-15 11:17:31 by simonmar] simonmar**20051215111731 Add dataCast1/dataCast2 methods to Data class, as per ticket #633. ] [[project @ 2005-12-13 15:57:49 by simonmar] simonmar**20051213155749 Raise the (new) exception NestedAtomically when atomically is nested (using unsafePerformIO). This is a small improvement over crashing. ] [[project @ 2005-12-13 13:28:53 by simonmar] simonmar**20051213132853 Only Streams can be DuplexHandles, not RawDevices. ] [[project @ 2005-12-05 11:42:47 by simonmar] simonmar**20051205114247 Add IO versions of the STM primitives that allocate new transactional variables: newTVarIO :: a -> IO (TVar a) newTChanIO :: IO (TChan a) newTMVarIO :: a -> IO (TMVar a) These can be used inside unsafePerformIO, unlike the STM versions. ] [[project @ 2005-12-03 17:32:01 by jpbernardy] jpbernardy**20051203173201 Removed spurious constraint for Monoid (IntMap a) instance ] [[project @ 2005-12-02 14:29:28 by simonmar] simonmar**20051202142928 avoid recursive module trap with Haddock ] [[project @ 2005-12-02 12:26:22 by simonmar] simonmar**20051202122622 Apply rev 1.24 from FreeBSD's copy of this file. Commit message from FreeBSD: The algorithm that computes the tables used in the BM search algorithm sometimes access an array beyond it's length. This only happens in the last iteration of a loop, and the value fetched is not used then, so the bug is a relatively innocent one. Fix this by not fetching any value on the last iteration of said loop. Submitted by: MKI This is the cause of bug #1194393 (crash in darcs on Windows). ] [[project @ 2005-12-01 12:37:23 by simonmar] simonmar**20051201123723 oops, forgot to remove forkIO from here ] [[project @ 2005-12-01 12:32:24 by simonmar] simonmar**20051201123224 export childHandler ] [[project @ 2005-11-30 16:56:24 by simonmar] simonmar**20051130165624 - move forkIO into GHC.Conc, so that the I/O manager can use proper forkIO with an exception handler. This required TopHandler.lhs-boot. It's the right thing, though, since the forkIO implementation is GHC-specific. - check for out-of-range file descriptors in the I/O manager, rather than just exploding. The I/O manager will exit ungracefully, but at least there will be an error message. ] [[project @ 2005-11-30 12:24:18 by simonmar] simonmar**20051130122418 Add registerDelay :: Int -> IO (TVar Bool) for implementing delays and timeouts in STM. The delay is implemented in the same way as threadDelay. Currently doesn't work on Windows or without -threaded (I do intend to make it work on Windows, though). ] [[project @ 2005-11-29 14:31:59 by ross] ross**20051129143159 As foreshadowed on the libraries list, introduce new classes: Applicative (formerly known as Idiom): generalizes (but does not replace) both Monad and Monoid. Traversable: containers that can be traversed, executing actions and re-assembling the results. This class generalizes and replaces FunctorM, because it requires Applicative instead of Monad. Foldable: containers that can be folded over a Monoid. Traversable supplies a default definition, but some structures, e.g. Set, are Foldable but not Traversable. ] [[project @ 2005-11-17 15:54:17 by ross] ross**20051117155417 add a couple of Boolean instances ] [[project @ 2005-11-17 11:28:43 by simonmar] simonmar**20051117112844 ProcessHandle is now an MVar, in which we cache the ExitCode of the process when we know it. Additionally, waitForProcess and getProcessExitCode now close the handle eagerly on Windows, this avoids a problem with hsc2hs which wants to remove the executable it just ran, and it can't if the handle is still open. ] [[project @ 2005-11-13 16:52:14 by jpbernardy] jpbernardy**20051113165214 Correct handling of negative numbers in split and splitMember in IntMap and IntSet. Better documentation for insert and insertWith in Maps. ] [[project @ 2005-11-11 14:41:01 by simonmar] simonmar**20051111144101 waitForProcess: if the process died with a signal, just return the exit status rather than EINTR. This means a segfault shows up as (ExitFailure 139) rather than an exception complaining about system call interruption. If the client wants a more unix-ish interpretation, they probably should be using System.Posix.Process anyway. ] [[project @ 2005-11-11 12:01:58 by simonmar] simonmar**20051111120158 On Windows, attach a finalizer to the ProcessHandle so that we can call CloseHandle() when the handle is no longer in use. Previously we were calling CloseHandle() in waitForProcess and terminateProcess, which prevented making multiple calls to these functions on the same handle. ] [[project @ 2005-11-11 10:37:35 by simonmar] simonmar**20051111103735 Fix bugs in new signal handling machinery ] [[project @ 2005-11-10 12:58:32 by simonmar] simonmar**20051110125832 Some docs for System.Posix, from Björn Bringert ] [[project @ 2005-11-07 16:39:04 by simonmar] simonmar**20051107163904 add GHC notes to mallocForeignPtr ] [[project @ 2005-10-27 01:39:40 by sof] sof**20051027013940 [mingw/msys only] Undo long-standing workaround for buggy GNU ld's on mingw/msys; i.e., the linker wasn't correctly generating relocatable object files when the number of relocs exceeded 2^16. Worked around the issue by hackily splitting up the GHCi object file for the larger packages ('base', 'ObjectIO' and 'win32') into a handful of object files, each with a manageable number of relocs. Tiresome and error-prone (but the hack has served us well!) This commit imposes a restriction on the 'ld' you use to compile up GHC with; it now has to be ld-2.15.x or later (something GHC binary dists have shipped with since 6.2.2) ] [[project @ 2005-10-26 22:52:58 by ross] ross**20051026225258 missing part of rev. 1.13: in unfoldForestM_BF, the output sequence is now in the right order, so don't reverse it. ] [[project @ 2005-10-25 17:31:38 by sof] sof**20051025173138 FPTOOLS_CHECK_HTYPE: correctly scope the resetting of CPPFLAGS; as was, it got blown away if the value was cached. Merge to STABLE. ] [[project @ 2005-10-25 12:01:11 by simonmar] simonmar**20051025120111 fix findExecutable (I hope; don't have an up to date Windows build to test on). ] [[project @ 2005-10-25 11:13:53 by simonmar] simonmar**20051025111353 forkIO the signal handlers directly from the IO manager thread, rather than calling an RTS function to do the same thing. ] [[project @ 2005-10-25 09:29:47 by ross] ross**20051025092947 add Monoid instance ] [[project @ 2005-10-25 09:29:16 by ross] ross**20051025092916 Now that Data.Monoid is portable, move Monoid instances for sets and maps back to where the data types are defined. ] [[project @ 2005-10-25 09:11:25 by ross] ross**20051025091125 Change the Monoid instance for functions (as proposed on the libraries list, and interpreting silence as assent) from composition to pointwise combination. Rationale: The new instance is consistent with the instances for tuples, it's compositional, in that it builds instances for complex types out of instances for simpler ones, and it makes this module Haskell 98. Downside: the old instance was easy to use with Writer monads, and ShowS was a special case. You can get that effect using the new Endo type, but you have to wrap and unwrap the newtype. Also added a few other simple monoids: dual, sum and product. ] [[project @ 2005-10-25 09:01:48 by simonmar] simonmar**20051025090148 Note that throwTo blocks if the target thread is in a foreign call. ] [[project @ 2005-10-22 00:37:01 by ross] ross**20051022003701 docs (readListDefault seems pretty useless) ] [[project @ 2005-10-22 00:28:21 by ross] ross**20051022002821 define readListPrec too. ] [[project @ 2005-10-21 16:31:23 by ross] ross**20051021163123 oops ] [[project @ 2005-10-21 16:25:45 by ross] ross**20051021162545 Data and FunctorM instances for View[LR]. ] [[project @ 2005-10-21 13:10:48 by simonmar] simonmar**20051021131048 cmp_thread returns CInt, not Int ] [TAG cmm-merge2 Unknown tagger**20060111180415] [[project @ 2005-10-21 10:47:25 by ross] ross**20051021104725 conformant Show and Read instances. (sorry to jump in, JP, but I had these to hand) ] [[project @ 2005-10-21 10:39:56 by ross] ross**20051021103956 conformant Show and Read instances ] [[project @ 2005-10-21 10:26:57 by ross] ross**20051021102657 conformant Show and Read instances ] [[project @ 2005-10-21 10:24:58 by ross] ross**20051021102458 export parens, which is useful for writing Read instances. ] [[project @ 2005-10-21 06:54:13 by ross] ross**20051021065413 repair findExecutable ] [[project @ 2005-10-20 23:28:42 by ross] ross**20051020232842 revise Read instance to match < and > as chars rather than lexemes, as suggested by Georg Martius. ] [[project @ 2005-10-20 18:07:53 by krasimir] krasimir**20051020180753 The original version of @findExecutable@ was looking only in the $PATH but under Windows the executables are searched in the current directory, in $PATH and in some other places too. The new version is based on @SearchPath@ function from Win32 API. This is more consistent with @system@ and @rawSystem@ ] [[project @ 2005-10-20 17:12:28 by krasimir] krasimir**20051020171228 from Neil Mitchell: On Windows, the path can be path;"c:\ghc\ghc-6.4\bin";restofpath, and thats still a valid path with GHC in it. Cabal doesn't find ghc with the quotes in, removing them does find it though. ] [[project @ 2005-10-20 15:14:22 by malcolm] malcolm**20051020151422 Add spaces in Show instance, to avoid lexing problems e.g. Foo:=-0.9 in Read. ] [[project @ 2005-10-20 15:08:35 by ross] ross**20051020150835 Read instance ] [[project @ 2005-10-20 10:58:44 by malcolm] malcolm**20051020105844 Instance of Read for Map, from Georg Martius. ] [[project @ 2005-10-18 11:36:25 by simonmar] simonmar**20051018113625 Fixes to enable base to be compiled with -fasm on Windows: - a few stdcall/ccall mismatches - use GetTempPathA instead of GetTempPath (a couple of these) ] [[project @ 2005-10-13 11:09:50 by ross] ross**20051013110951 update non-portability reasons ] [[project @ 2005-10-13 10:36:42 by ross] ross**20051013103642 MArray instance for Lazy.ST ] [[project @ 2005-10-13 10:35:49 by ross] ross**20051013103549 comments re strict/lazy monads ] [[project @ 2005-10-12 10:57:40 by simonpj] simonpj**20051012105740 Comments ] [[project @ 2005-10-10 23:32:51 by sof] sof**20051010233251 CSsize fix: this Haskell type is defined iff HTYPE_SSIZE_T is. Merge to STABLE ] [[project @ 2005-10-05 14:04:28 by simonmar] simonmar**20051005140428 hPutChar should (probably) not be strict in its Char argument ] [[project @ 2005-10-05 13:15:44 by simonmar] simonmar**20051005131544 mention that -O turns assertions off ] [[project @ 2005-10-05 08:43:26 by ross] ross**20051005084326 add Monad and MonadPlus instances ] [[project @ 2005-09-29 09:31:58 by ross] ross**20050929093158 Tweak Read instance: allow optional parentheses around the outside (for consistency), and don't propagate precedence to elements. ] [[project @ 2005-09-28 13:18:28 by malcolm] malcolm**20050928131828 Add an instance of Read to correspond to the existing Show instance. (Implementation based on H'98 Report definition of 'readList'.) ] [[project @ 2005-09-24 15:07:49 by panne] panne**20050924150749 Synched all FPTOOLS_CHECK_HTYPE definitions with the latest changes in libraries/OpenAL/aclocal.m4. Although it is not strictly necessary, keeping things identical is good for consistency. At some point in time we should really find a way to eliminate all this redundancy... *sigh* ] [[project @ 2005-09-22 09:43:01 by ross] ross**20050922094301 some docs ] [[project @ 2005-09-21 11:54:59 by simonmar] simonmar**20050921115459 improve documentation for getProcessExitCode ] [[project @ 2005-09-19 23:24:31 by ross] ross**20050919232431 For compilers other than MSVC and GCC, assume inline has the C99 semantics. ] [[project @ 2005-09-18 10:01:57 by panne] panne**20050918100157 Fixed a few underquoted definitions. ] [[project @ 2005-09-18 02:22:33 by dons] dons**20050918022233 Typo in comment only. Spotted by heatsink on #haskell. ] [[project @ 2005-09-02 14:04:38 by simonmar] simonmar**20050902140438 back out rev. 1.22; as pointed out by Krasimir Angelov, the optimisation doesn't work (sadly). ] [[project @ 2005-09-01 10:49:07 by ross] ross**20050901104907 GHC only: define toList using build ] [[project @ 2005-08-31 12:15:31 by ross] ross**20050831121531 Hugs: use custom versioon of unsafeInterleaveIO ] [[project @ 2005-08-05 09:48:16 by ross] ross**20050805094816 haddock stuff ] [[project @ 2005-08-04 11:40:26 by simonmar] simonmar**20050804114026 fix typo in subRegex (fixes subRegex breakage on Windows) ] [[project @ 2005-08-01 13:23:22 by simonmar] simonmar**20050801132322 Fix [ ghc-Bugs-1249226 ] runInteractiveProcess and closed stdin. ] [[project @ 2005-07-29 17:17:22 by ross] ross**20050729171722 document deprecation ] [[project @ 2005-07-29 17:03:37 by ross] ross**20050729170337 deprecate in favour of Data.Sequence ] [[project @ 2005-07-29 17:02:07 by ross] ross**20050729170207 use Data.Sequence instead of Data.Queue ] [[project @ 2005-07-28 13:27:03 by ross] ross**20050728132703 avoid warnings ] [[project @ 2005-07-27 10:04:26 by simonmar] simonmar**20050727100426 expand docs for touchForeignPtr and newConcForeignPtr ] [[project @ 2005-07-27 00:52:33 by ross] ross**20050727005233 Hugs only: no longer need backslash fiddle now that Hugs leaves them alone. ] [[project @ 2005-07-26 11:00:42 by ross] ross**20050726110042 this version of closeFd is used by GHC only ] [[project @ 2005-07-26 09:37:27 by ross] ross**20050726093728 PrelHandle functions are only needed by GHC ] [[project @ 2005-07-23 17:08:03 by ross] ross**20050723170803 non-GHC: implement rawSystem by translating the string for system. ] [[project @ 2005-07-23 13:28:24 by ross] ross**20050723132824 Hugs: omit commandToProcess ] [[project @ 2005-07-22 16:25:16 by ross] ross**20050722162516 revert 1.17 ] [[project @ 2005-07-22 10:18:51 by simonmar] simonmar**20050722101851 check the return value of chdir() [ 1242598 ] runProcess uses cwd for bad working directory argument ] [[project @ 2005-07-22 08:15:06 by ross] ross**20050722081506 unbreak for non-GHC ] [[project @ 2005-07-21 12:54:33 by simonmar] simonmar**20050721125433 Hack Makefiles so that 'make distclean' works even if the tree has not been configured, or 'make distclean' has already been run. This is to solve problems caused by 'make distclean' removing files that it needs itself - previously we were arranging to remove certain files right at the end of cleaning, but this is fragile. So now we assume that e.g. the X11 library is always enabled when we're cleaning. ] [[project @ 2005-07-21 11:08:51 by ross] ross**20050721110851 specialize instances too ] [[project @ 2005-07-21 11:00:17 by ross] ross**20050721110017 revise Data instance again, making it like lists ] [[project @ 2005-07-21 10:59:27 by ross] ross**20050721105927 more SPECIALIZE pragmas ] [[project @ 2005-07-21 10:00:34 by simonmar] simonmar**20050721100034 Further optimisations to ForeignPtr: now we don't allocate the IORef for a ForeignPtr without a finalizer. ] [[project @ 2005-07-21 09:26:30 by simonmar] simonmar**20050721092630 copyFile: copy the permissions properly (don't use getPermissions >>= setPermissions, which only copies the owner's permissions on Unix). ] [[project @ 2005-07-19 23:22:39 by ross] ross**20050719232239 use feature tests instead of $host to locate socket library ] [[project @ 2005-07-19 17:33:23 by ross] ross**20050719173323 improved definition of gfold for Seq a ] [[project @ 2005-07-19 17:06:18 by ross] ross**20050719170618 hook in Data.Sequence ] [[project @ 2005-07-19 09:26:03 by ross] ross**20050719092603 use $host instead of $target (mainly affects builds with cabal) ] [[project @ 2005-07-14 15:36:31 by ross] ross**20050714153632 remove redundant definitions of unsafeRangeSize (same as default) ] [[project @ 2005-07-14 11:59:27 by ross] ross**20050714115927 Data.Sequence: general purpose finite sequences (as discussed on the libraries list in May 2005). ] [[project @ 2005-07-14 11:57:09 by ross] ross**20050714115709 Hugs only: more specific imports ] [[project @ 2005-07-10 23:01:24 by ross] ross**20050710230124 doc fix from Remi Turk MERGE to STABLE ] [[project @ 2005-07-08 17:17:31 by sof] sof**20050708171731 - System.Posix.Internals.FDType.RawDevice: new constructor. - System.Posix.Internals.fdType: map block devices to RawDevice (but left character devices as still being Streams). - GHC.IOBase.isReadWriteHandleType: new HandleType predicate. - GHC.Handle.hIsSeekable: RawDevices are seekable. - GHC.Handle.openFd: handle RawDevices. => opening of block devices via std IO opening actions (open{Binary}File, openFd etc.) should now work better. Merge to STABLE. ] [[project @ 2005-07-08 13:17:47 by simonmar] simonmar**20050708131747 oops, fix imports ] [[project @ 2005-07-08 12:22:02 by simonmar] simonmar**20050708122202 Fix instance Eq Version ] [[project @ 2005-07-06 16:17:36 by malcolm] malcolm**20050706161736 Fix (from Scott Turner) for a broken implementation of 'split'. ] [[project @ 2005-07-06 12:25:53 by simonmar] simonmar**20050706122553 runProcess: allow duplicate Handles to be passed in without deadlock. Fixes #1187295. ] [[project @ 2005-07-06 12:13:04 by simonmar] simonmar**20050706121304 Close Handles passed to runProcess. Fixes #1187302 ] [[project @ 2005-07-04 10:22:17 by ross] ross**20050704102217 add Typeable instance ] [[project @ 2005-06-27 22:31:41 by simonmar] simonmar**20050627223141 As discussed on ghc-users some time ago, optimise the representation of ForeignPtr to make withForeignPtr more efficient. ForeignPtr is now represented by a pair of an Addr# and a ForeignPtrContents object. withForeignPtr just extracts the Addr# and touches the ForeignPtrContents. ForeignPtr no longer uses the primitive ForeignObj# type: it isn't required, since we attach the finalizer to the IORef inside ForeignPtrContents now. In fact, the ForeignObj# type is now obsolete, and can be removed. ] [[project @ 2005-06-27 13:56:32 by simonmar] simonmar**20050627135632 Fix performance buglet: small Float literals weren't being simplified enough because the fromInteger method is defined in terms of encodeFloat, which itself is an FFI call. Double was already fixed, this change does the right thing for Float too. ] [[project @ 2005-06-10 13:21:52 by simonpj] simonpj**20050610132152 Make toConstr strict for tuples, so that it's uniform with all other data types. This inconsistency is really a bug: MERGE to STABLE ] [[project @ 2005-06-10 13:19:41 by simonpj] simonpj**20050610131941 Eta-contract foldr/app RULE to avoid overlap with foldr/id ] [[project @ 2005-05-27 19:26:34 by simonmar] simonmar**20050527192634 hLookAhead: don't wait for a completely full buffer ] [[project @ 2005-05-13 16:58:02 by sof] sof**20050513165802 flush_input_console__(): if the fd isn't connected to a console, treat flush as a NOP. Merge to STABLE. ] [[project @ 2005-05-06 00:30:56 by sof] sof**20050506003057 [mingw only] Work around bug in win32 Console API which showed up in the GHCi UI: if the user typed in characters prior to the appearance of the prompt, the first of these characters always came out as a 'g'. The GHCi UI does for good reasons one-character reads from 'stdin', which causes the underlying APIs to become confused. A simple repro case is the following piece of C code: /*----------------------*/ #include #include int main() { char ch1,ch2; HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE); DWORD dw; /* Type in some characters before the prompt appears and be amused.. */ sleep(1000); printf("? "); ReadConsoleA(hStdIn,&ch1,1,&dw,NULL); ReadConsoleA(hStdIn,&ch2,1,&dw,NULL); /* or, if you want to use libc: read(0,&ch1,1); read(0,&ch2,1); */ printf("%c%c\n", ch1,ch2); return 0; } /*----------------------*/ This happens across win32 OSes, and I can't see anything untoward as far as API usage goes (the GHC IO implementation uses read(), but that reduces to ReadConsoleA() calls.) People inside the Behemoth might want to have a closer look at this.. Not much we can do about this except work around the problem by flushing the input buffer prior to reading from stdin. Not ideal, as type-ahead is a useful feature. Flushing is handled by GHC.ConsoleHandler.flushConsole Merge to STABLE. ] [[project @ 2005-05-04 15:07:47 by simonmar] simonmar**20050504150747 Do *not* inline runSTRep now (see comments for details). ] [TAG arity-anal-branch-point Unknown tagger**20060111180224] [[project @ 2005-04-25 13:25:08 by simonmar] simonmar**20050425132508 Only ftruncate() regular files. ] [[project @ 2005-04-22 17:00:49 by sof] sof**20050422170049 [mingw only] Better handling of I/O request abortions upon throwing an exception to a Haskell thread. As was, a thread blocked on an I/O request was simply unblocked, but its corresponding worker thread wasn't notified that the request had been abandoned. This manifested itself in GHCi upon Ctrl-C being hit at the prompt -- the worker thread blocked waiting for input on stdin prior to Ctrl-C would stick around even though its corresponding Haskell thread had been thrown an Interrupted exception. The upshot was that the worker would consume the next character typed in after Ctrl-C, but then just dropping it. Dealing with this turned out to be even more interesting due to Win32 aborting any console reads when Ctrl-C/Break events are delivered. The story could be improved upon (at the cost of portability) by making the Scheduler able to abort worker thread system calls; as is, requests are cooperatively abandoned. Maybe later. Also included are other minor tidyups to Ctrl-C handling under mingw. Merge to STABLE. ] [[project @ 2005-04-22 16:07:36 by sof] sof**20050422160736 make DEBUG_DUMP-conditional code compile ] [[project @ 2005-04-21 09:40:41 by simonmar] simonmar**20050421094041 Add unsafeForeignPtrToStorableArray ] [[project @ 2005-04-17 10:06:16 by panne] panne**20050417100616 Merged "unrecoginzed long opt" fix from Distribution.GetOpt MERGE TO STABLE ] [[project @ 2005-04-12 12:57:49 by ross] ross**20050412125749 clarify docs of insert and union. (for STABLE) ] [[project @ 2005-04-07 23:36:48 by sof] sof**20050407233648 import reordering wibble to make it mingw-palatable. Merge to STABLE. ] [[project @ 2005-04-07 14:33:31 by simonmar] simonmar**20050407143332 Support handling signals in the threaded RTS by passing the signal number down the pipe to the IO manager. This avoids needing synchronisation in the signal handler. Signals should now work with -threaded. Since this is a bugfix, I'll merge the changes into the 6.4 branch. ] [[project @ 2005-04-06 22:05:58 by simonmar] simonmar**20050406220558 Fix bug in hDuplicateTo MERGE TO STABLE ] [[project @ 2005-04-05 08:38:24 by simonmar] simonmar**20050405083824 Determine the location of CMD.EXE (or COMMAND.COM) using the same algorithm as system() from msvcrt. ] [[project @ 2005-04-04 12:16:45 by simonpj] simonpj**20050404121645 Default method for unsafeRangeSize should use unsafeIndex! ] [[project @ 2005-04-04 08:02:53 by simonmar] simonmar**20050404080253 doc fix ] [[project @ 2005-04-02 04:39:35 by dons] dons**20050402043935 Typo in comment only: "Causes a the finalizers associated with a foreign pointer..." to "Causes the finalizers associated with a foreign pointer..." ] [[project @ 2005-03-31 21:40:15 by wolfgang] wolfgang**20050331214015 Fix handling of end-of-options markers (--). getOpt would correctly return the non-options after the marker, but it would return errors for things after the marker that looked like options. MERGE TO STABLE ] [[project @ 2005-03-30 11:15:21 by simonmar] simonmar**20050330111521 Ord instance: use toAscList instead of toList (doc change only; these functiosn are the same). ] [[project @ 2005-03-27 13:41:19 by panne] panne**20050327134119 * Some preprocessors don't like the C99/C++ '//' comments after a directive, so use '/* */' instead. For consistency, a lot of '//' in the include files were converted, too. * UnDOSified libraries/base/cbits/runProcess.c. * My favourite sport: Killed $Id$s. ] [[project @ 2005-03-24 09:19:52 by simonmar] simonmar**20050324091952 __hscore_getFolderPath is ccall, not stdcall. ] [[project @ 2005-03-21 18:04:48 by sof] sof**20050321180448 __hscore_getFolderPath(): Don't limit ourselves to shell32.dll, look up shfolder.dll too. Merge to STABLE. ] [[project @ 2005-03-19 02:03:26 by sof] sof**20050319020327 [Windows only] for System.Directory / Compat.Directory functionality that probes the OS for local details re: misc user directories, perform late binding of SHGetFolderPath() from shell32.dll, as it may not be present. (cf. ghc-6.4's failure to operate on Win9x / NT boxes.) If the API isn't there, fail with UnsupportedOperation. Packages.readPackageConfigs: gracefully handle excns from getAppUserDataDirectory. Merge to STABLE. ] [[project @ 2005-03-18 17:28:08 by krasimir] krasimir**20050318172808 HACK: The redirection of standard handles under Windows is a little bit tricky because we have to take in account that the application can be GUI. The commit affects only Windows GUI applications. MERGE TO STABLE ] [[project @ 2005-03-16 13:27:03 by ross] ross**20050316132704 Data.Char docs, and hide GHC.Unicode ] [[project @ 2005-03-16 10:55:04 by simonmar] simonmar**20050316105504 Back-port changes from WCsubst.c:iswprint() ] [[project @ 2005-03-15 17:19:09 by ross] ross**20050315171909 Nhc: export the new names ] [[project @ 2005-03-15 17:18:24 by ross] ross**20050315171824 remove unused WInt type ] [[project @ 2005-03-15 13:38:27 by simonmar] simonmar**20050315133827 patch for iswprint() from Dimitry. ] [[project @ 2005-03-15 12:15:15 by malcolm] malcolm**20050315121516 nhc98 can use the WCsubst.c stuff for Unicode as well. ] [[project @ 2005-03-14 18:02:48 by ross] ross**20050314180249 move general categories and derived predicates to Data.Char ] [[project @ 2005-03-14 17:23:22 by ross] ross**20050314172322 Hugs only: don't import Data.{Eq,Ord} ] [[project @ 2005-03-14 16:26:47 by simonmar] simonmar**20050314162647 Fix export of Ordering ] [[project @ 2005-03-14 15:57:57 by simonmar] simonmar**20050314155757 Add the script used to generate WCsubst.c ] [[project @ 2005-03-14 15:57:04 by malcolm] malcolm**20050314155704 Plumb in Data.Eq and Data.Ord. ] [[project @ 2005-03-14 15:52:03 by simonmar] simonmar**20050314155203 doc comparing ] [[project @ 2005-03-14 15:46:12 by simonmar] simonmar**20050314154612 Add Data.Ord and Data.Eq. Data.Ord also exports the new function 'comparing', as discussed on the libraries list a while back. ] [[project @ 2005-03-14 15:22:51 by simonmar] simonmar**20050314152251 - isDigit only returns True for ASCII digits - Export the new predicates from Data.Char ] [[project @ 2005-03-14 12:18:05 by simonmar] simonmar**20050314121808 Add Dimitry Golubovsky 's Unicode character class implementation. This will remove the dependency on libc's locale code and give us much more consistent support for Unicode across platforms. ] [TAG nhc98-1-18-release Unknown tagger**20060111180129] [[project @ 2005-03-10 17:23:06 by malcolm] malcolm**20050310172306 Change configuration for nhc98 on Cygwin only. ] [[project @ 2005-03-10 10:00:39 by simonpj] simonpj**20050310100039 Read instances for tuples ] [[project @ 2005-03-09 17:47:50 by simonpj] simonpj**20050309174750 Add instances for Bounded and Show up to 15-tuples ] [[project @ 2005-03-07 13:02:37 by simonmar] simonmar**20050307130237 Add dynTypeRep, from John Meacham. ] [[project @ 2005-03-07 10:40:44 by simonmar] simonmar**20050307104044 merge rev. 1.4.2.1 to HEAD ] [[project @ 2005-03-05 15:13:01 by panne] panne**20050305151301 Warning police again: Use the "official" hs_free_stable_ptr from HsFFI.h instead of the internal freeStablePtr, avoiding implicit declaration of function `freeStablePtr' warnings from gcc when compiling via C. ] [[project @ 2005-03-04 18:26:48 by sof] sof**20050304182648 Temper 'libm' testing -- if 'atan' is available straight from libc, no need to include libm. Merge to STABLE ] [[project @ 2005-03-03 05:11:41 by chak] chak**20050303051141 Merge to STABLE * Fixed two bugs reported on glasgow-haskell-users ] [[project @ 2005-03-02 16:39:56 by ross] ross**20050302163957 *Config.h files are in include/ (MERGE to STABLE) ] [[project @ 2005-03-02 14:46:14 by simonmar] simonmar**20050302144614 distcleaning of things generated by configure ] [[project @ 2005-03-02 13:11:00 by simonmar] simonmar**20050302131100 We should not assume that the timeout parameter to select() is updated with the time left over after select() returns. Linux does this, but FreeBSD does not. Fixes -threaded hangs on FreeBSD. ] [[project @ 2005-02-26 12:14:54 by panne] panne**20050226121456 Moved Monoid instances of collection types to Data.Monoid, concentrating non-H98 stuff to a single place. ] [[project @ 2005-02-25 10:42:24 by simonmar] simonmar**20050225104224 Add instance Typeable Queue ] [[project @ 2005-02-24 09:58:23 by simonmar] simonmar**20050224095824 nDoc fixes from Sven Panne. Generally fixing of Haddock links, adding some signatures, and in some cases exporting type constructors that are mentioned in the types of exported identifiers. ] [[project @ 2005-02-23 06:31:22 by dons] dons**20050223063122 Typo in comment only. Spotted by sjanssen on #haskell. ] [[project @ 2005-02-21 11:36:07 by simonmar] simonmar**20050221113607 docs only: clarify language in a couple of places. From: Paul Steckler [paul.steckler.ctr@metnet.navy.mil] ] [[project @ 2005-02-18 18:30:40 by ross] ross**20050218183040 Rename package description fields as in InstalledPackageInfo: options-ghc -> ghc-options options-hugs -> hugs-options options-nhc -> nhc-options extra-libs -> extra-libraries ] [[project @ 2005-02-18 15:06:45 by simonmar] simonmar**20050218150645 Rename fields in InstalledPackageInfo for consistency with PackageDescription & buildInfo: extra-libs (extraLibraries) --> extra-libraries (extraLibraries) extra-cc-opts (extraCcOpts) --> cc-options (ccOptions) extra-ld-opts (extraLdOpts) --> ld-options (ldOptions) extra-hugs-opts (extraHugsOpts) --> hugs-options (hugsOptions) extra-frameworks (extraFrameworks) --> frameworks (frameworks) ] [[project @ 2005-02-15 08:09:43 by ross] ross**20050215080943 Hugs only: use binary handles for copyFile ] [[project @ 2005-02-13 10:53:13 by malcolm] malcolm**20050213105313 Eliminate more explicit dependencies in Makefiles: use hmake to create the bootstrapping .hc files, as well as the ordinary .o files. ] [[project @ 2005-02-11 11:36:23 by simonmar] simonmar**20050211113623 Add bracketOnError ] [[project @ 2005-02-11 01:55:56 by ross] ross**20050211015556 track syntax changes: * add License-File and Synopsis fields * rename Hidden-Fields as Other-Fields These files are used only by Hugs, but are also useful as examples. ] [[project @ 2005-02-07 15:26:10 by malcolm] malcolm**20050207152610 Place imports before #includes, just to reduce the number of 'file not found' warnings from hmake. ] [[project @ 2005-02-07 12:21:29 by simonmar] simonmar**20050207122129 After no response on libraries@haskell.org... John Meacham's Data.Graph patch, which returns an extra component from graphFromEdges. The old version of graphFromEdges is available as graphFromEdges'. ] [[project @ 2005-02-07 09:56:42 by ross] ross**20050207095643 a few docs (for STABLE) ] [[project @ 2005-02-05 00:41:35 by ross] ross**20050205004137 more Haddock fixes. Now the only dangling links are in System.Directory, referring to the hidden module GHC.IOBase for constructors of IOException. ] [[project @ 2005-02-04 14:36:52 by simonmar] simonmar**20050204143652 Add a comment to Ross's previous commit (sorry, forgot to commit my version of that change earlier). ] [[project @ 2005-02-04 14:20:57 by ross] ross**20050204142057 if this can't be hidden, at least make it not-home ] [[project @ 2005-02-03 10:38:44 by simonmar] simonmar**20050203103845 unhide a few modules ] [[project @ 2005-02-03 10:32:11 by ross] ross**20050203103220 hide GHC internals from Haddock ] [[project @ 2005-02-02 15:28:49 by simonmar] simonmar**20050202153009 doc fix ] [[project @ 2005-02-02 15:23:59 by simonmar] simonmar**20050202152359 doc fixes ] [[project @ 2005-02-02 15:22:54 by simonmar] simonmar**20050202152254 Doc fix ] [[project @ 2005-02-02 15:22:19 by simonmar] simonmar**20050202152219 Doc fixes ] [[project @ 2005-02-02 15:21:02 by simonmar] simonmar**20050202152102 doc fixes ] [[project @ 2005-02-02 15:20:11 by simonmar] simonmar**20050202152011 tiny doc fix ] [[project @ 2005-02-02 14:54:18 by ross] ross**20050202145419 an instance for FunPtr, and minor Hugs fixes: * for Hugs only, move the instances for ST, STRef and STArray back. Having them in Data.Typeable, which is imported by Data.Dynamic, would mean that every invocation of runhugs or ffihugs would need the -98 option. * Hugs also has MVar and the exception types. and NHC has ForeignPtr too. ] [[project @ 2005-02-02 13:47:24 by simonpj] simonpj**20050202134724 Generalise gfindtype to gfindtype :: (Data x, Typeable y) => x -> Maybe y (It was (Data x, Data y) => ..., but there's no reason to require Data y.) Pointed out by Jim Apple ] [[project @ 2005-02-02 13:45:05 by malcolm] malcolm**20050202134505 nhc98 has Data.Typeable. ] [[project @ 2005-02-02 13:26:13 by simonpj] simonpj**20050202132620 I've moved Typeable instances so that they are either in the module that defines the type or in the Typeable module (which defines the class) GHC dislikes "orphan" instances, and even for humans this makes it easier to find. I have continued to use the INSTANCE_TYPEABLE macros, rather than GHC's deriving( Typeable ) mechanism, so that it'll still work for Hugs and NHC. Nevertheless, I may well have missed some Hugs- or NHC-specific imports, for which I apologise. Malcolm, Ross you may want to try a fresh build. ] [[project @ 2005-02-02 10:59:16 by malcolm] malcolm**20050202105916 Build all package sources using hmake. The inaccurate and ever-changing Makefile dependencies can now all be thrown away, hurrah! ] [[project @ 2005-02-01 17:32:19 by ross] ross**20050201173219 docs ] [[project @ 2005-02-01 16:47:27 by malcolm] malcolm**20050201164728 Make the cpp directives in NHC.SizedTypes directly usable by nhc98 with internal cpphs, avoiding ANSI-only string-pasting. ] [[project @ 2005-02-01 13:41:41 by simonmar] simonmar**20050201134141 Move #include of HsBaseConfig.h up ] [[project @ 2005-02-01 13:02:37 by simonmar] simonmar**20050201130237 Make hDuplicateTo actually use dup2() rather than dup(). The difference is noticeable if you want to eg. redirect stdout and then use executeFile or spawn sub-processes. ] [[project @ 2005-02-01 11:52:08 by malcolm] malcolm**20050201115208 Record more dependencies. ] [[project @ 2005-02-01 10:12:16 by krasimir] krasimir**20050201101217 Fixes for Windows ] [[project @ 2005-02-01 00:52:20 by ross] ross**20050201005222 more regex test down to libraries/base ] [[project @ 2005-01-31 21:07:15 by panne] panne**20050131210715 Documentation fix only ("in" is a keyword) ] [[project @ 2005-01-31 19:54:22 by panne] panne**20050131195422 Ooops, my evil XEmacs inserted an extraneous character... :-} ] [[project @ 2005-01-31 19:28:42 by panne] panne**20050131192842 * Unbreak System.Info for Hugs, rearranging the whole module a bit. * Platform-specific exports suck, so even Hugs has a compilerVersion now, although it is currently always version 0.0 :-) Tested with Hugs only... ] [[project @ 2005-01-31 18:33:48 by ross] ross**20050131183348 fix for non-GHC ] [[project @ 2005-01-31 13:52:26 by malcolm] malcolm**20050131135226 Make it compile for non-GHC. ] [[project @ 2005-01-31 13:51:22 by simonmar] simonmar**20050131135124 Some improvements to System.Cmd.{system,rawSystem} on Un*x systems: these commands now do the appropriate signal handling, namely ignoring SIGINT/SIGQUIT in the parent but allowing these signals in the child. This behaviour matches the Un*x system(). What this means is that when System.Cmd.system is executing, ^C only kills the child process, the parent will see an exception. ] [[project @ 2005-01-31 13:46:24 by simonmar] simonmar**20050131134624 oops, remove debugging modification ] [[project @ 2005-01-31 13:45:50 by malcolm] malcolm**20050131134550 Work around type-system bug (cxt in lhs pattern) in nhc98. ] [[project @ 2005-01-31 12:57:26 by simonmar] simonmar**20050131125727 Cleanup: convert System/Posix/Signals.hsc into a plain .hs file, and use the configure script to get the appropriate constants. ] [[project @ 2005-01-29 16:10:27 by wolfgang] wolfgang**20050129161027 import CString on non-windows platforms. ] [[project @ 2005-01-28 23:33:57 by krasimir] krasimir**20050128233358 - The output from uncaught exceptions handler is redirected to RTS's errorBelch. - The output from Debug.Trace is redirected to RTS's debugBelch - Usually errorBelch and debugBelch messages go to stderr except for Windows GUI applications. For GUI applications the Debug.Trace output is redirected to debug console and the exceptions message is displayed in message box. ] [[project @ 2005-01-28 16:09:06 by malcolm] malcolm**20050128160906 Add compilerVersion for nhc98. ] [[project @ 2005-01-28 15:03:06 by simonmar] simonmar**20050128150308 Remove some unnecessary #includes of ghcconfig.h ] [[project @ 2005-01-28 14:55:05 by simonmar] simonmar**20050128145505 Remove unnecessary ghcconfig.h include ] [[project @ 2005-01-28 13:54:56 by simonmar] simonmar**20050128135456 System.Info now exports: compilerName :: String compilerVersion :: Data.Version.Version as requested ages ago by Template Haskell users. This allows "conditional compilation" based on the GHC version in TH code. I've implemented compilerName for all compilers (I hope). Other compiler vendors are encouraged to provide their own implementations of compilerVersion. ] [[project @ 2005-01-28 13:36:25 by simonmar] simonmar**20050128133634 Catch up with updates to platform #defines. Generally: use _HOST_ rather than _TARGET_ (except in Cabal where we have to retain compatibility with previous GHC versions). ] [[project @ 2005-01-28 10:15:44 by ross] ross**20050128101544 fix foreign imports for non-GHC ] [[project @ 2005-01-27 14:38:05 by ross] ross**20050127143805 doc tweaks ] [[project @ 2005-01-27 14:19:50 by simonpj] simonpj**20050127141950 Fix regex.h include stuff; Ross and Malcolm might want to look at the new comment ] [[project @ 2005-01-27 10:46:19 by malcolm] malcolm**20050127104619 Hook up System.Directory.Internals. ] [[project @ 2005-01-27 10:45:47 by simonpj] simonpj**20050127104548 -------------------------------------------- Replace hi-boot files with hs-boot files -------------------------------------------- This major commit completely re-organises the way that recursive modules are dealt with. * It should have NO EFFECT if you do not use recursive modules * It is a BREAKING CHANGE if you do ====== Warning: .hi-file format has changed, so if you are ====== updating into an existing HEAD build, you'll ====== need to make clean and re-make The details: [documentation still to be done] * Recursive loops are now broken with Foo.hs-boot (or Foo.lhs-boot), not Foo.hi-boot * An hs-boot files is a proper source file. It is compiled just like a regular Haskell source file: ghc Foo.hs generates Foo.hi, Foo.o ghc Foo.hs-boot generates Foo.hi-boot, Foo.o-boot * hs-boot files are precisely a subset of Haskell. In particular: - they have the same import, export, and scoping rules - errors (such as kind errors) in hs-boot files are checked You do *not* need to mention the "original" name of something in an hs-boot file, any more than you do in any other Haskell module. * The Foo.hi-boot file generated by compiling Foo.hs-boot is a machine- generated interface file, in precisely the same format as Foo.hi * When compiling Foo.hs, its exports are checked for compatibility with Foo.hi-boot (previously generated by compiling Foo.hs-boot) * The dependency analyser (ghc -M) knows about Foo.hs-boot files, and generates appropriate dependencies. For regular source files it generates Foo.o : Foo.hs Foo.o : Baz.hi -- Foo.hs imports Baz Foo.o : Bog.hi-boot -- Foo.hs source-imports Bog For a hs-boot file it generates similar dependencies Bog.o-boot : Bog.hs-boot Bog.o-boot : Nib.hi -- Bog.hs-boto imports Nib * ghc -M is also enhanced to use the compilation manager dependency chasing, so that ghc -M Main will usually do the job. No need to enumerate all the source files. * The -c flag is no longer a "compiler mode". It simply means "omit the link step", and synonymous with -no-link. ] [[project @ 2005-01-26 15:41:01 by simonmar] simonmar**20050126154101 Add System.Directory to $(ALL_DIRS) ] [[project @ 2005-01-26 15:40:37 by simonmar] simonmar**20050126154037 remove System.FilePath; add System.Directory.Internals. ] [[project @ 2005-01-26 15:19:19 by malcolm] malcolm**20050126151919 Remove System.FilePath. ] [[project @ 2005-01-26 14:55:41 by simonmar] simonmar**20050126145544 Remove System.FilePath pending a redesign of the interface. Temporarily introduce System.Directory.Internals as a home for some of the bits of System.FilePath we were already using elsewhere. ] [[project @ 2005-01-26 14:36:42 by malcolm] malcolm**20050126143642 Patch from John Meacham: Generalise a couple functions in Data.Map to be usable in an arbitrary monad (rather than being restricted to Maybe). ] [[project @ 2005-01-26 14:33:29 by malcolm] malcolm**20050126143329 Fix module name. ] [[project @ 2005-01-26 13:27:44 by malcolm] malcolm**20050126132744 Change stability notation from 'stable' to 'experimental', since many people seem to agree there are plenty of bugs here. ] [[project @ 2005-01-26 12:23:33 by simonmar] simonmar**20050126122333 I think InvalidArgument is more useful than OtherError for EBADF. ] [[project @ 2005-01-25 22:17:37 by krasimir] krasimir**20050125221737 Fixed bug with splitFileExt "foo.bar." and splitFileName "foo:bar" ] [[project @ 2005-01-25 17:06:39 by ross] ross**20050125170639 add Cabal package descriptions ] [[project @ 2005-01-24 04:26:17 by wolfgang] wolfgang**20050124042617 Always flush stdout & stderr at exit, even when terminating abnormally due to an exception. ] [[project @ 2005-01-23 20:20:55 by wolfgang] wolfgang**20050123202055 Flush stdout and stderr also when exiting due to an ExitException. ] [[project @ 2005-01-23 13:48:19 by panne] panne**20050123134819 Added Isaac's getOpt variant (named getOpt' now), so System.Console.GetOpt and Distribution.GetOpt are identical now. ] [[project @ 2005-01-23 13:12:52 by panne] panne**20050123131252 Unify the base and Cabal versions of GetOpt a bit. ] [[project @ 2005-01-23 11:30:39 by panne] panne**20050123113039 * Nuked one #ifdef in isPathSeparator, the generated code is the same * Added a ToDo for searchPathSeparator ] [[project @ 2005-01-22 12:18:49 by panne] panne**20050122121849 Doc change only: I don't think that toList should give the guarantee that the resulting list is in ascending order... ] [[project @ 2005-01-21 21:52:56 by panne] panne**20050121215256 *sigh* Once again: Fixed a Haddock comment which broke "make html"... Why on earth do we have "make validate"?? :´-( I think we should introduce some kind of disciplinary punishment for checking in broken Haddock comments, like porting the mangler to a new platform or porting Adjustor.c to an ABI more irregular than the one on PowerPC... ] [[project @ 2005-01-21 19:59:01 by sof] sof**20050121195901 win32 only: Tidy up delivery and handling of console events by having the low-level console event handler signal the RTS thread blocked waiting for I/O. ] [[project @ 2005-01-21 16:02:47 by simonmar] simonmar**20050121160248 Don't try to run finalizers at program exit. This turned out to be hard if not impossible to do in general, so now we don't attempt it at all. The Main.main wrapper, previously called runIO and now called runMainIO, flushes stdout and stderr before exiting. This should catch most cases where programs rely on Handles being flushed at program exit, but note that now if you simply drop a Handle in your program, there's no guarantee it'll be flushed on exit. If the punters complain enough, I suppose we could implement a global Handle table and flush them all at exit... I'd rather not do this if possible, though. Better to teach people to close their Handles properly. ] [[project @ 2005-01-21 15:12:21 by simonmar] simonmar**20050121151221 hClose on stdin,stdout,stderr now actually closes the file descriptor. Before, there was no way to actually close these file descriptors, which might be necessary in some cases - especially when stdin/stdout are pipes and you need to indicate to the other end of the pipe that you've finished I/O, but without exiting the program. ] [[project @ 2005-01-21 11:44:08 by ross] ross**20050121114409 alter the interface of splitLookup and splitMember, placing the match between the trees of smaller and larger elements in the returned triple. ] [[project @ 2005-01-21 10:52:47 by ross] ross**20050121105247 refine docs a bit ] [[project @ 2005-01-21 09:55:52 by malcolm] malcolm**20050121095552 Typo ] [[project @ 2005-01-20 19:00:26 by ross] ross**20050120190028 cross-references and minor doc fixes ] [[project @ 2005-01-20 14:39:09 by malcolm] malcolm**20050120143909 Lots more new dependencies. ] [[project @ 2005-01-20 14:22:26 by simonmar] simonmar**20050120142226 Fill in the haddock-interfaces and haddock-html fields in the package.conf files. To do this I had to make some changes: - haddock-interfaces requires the value of $(datadir). We can't just plug this in, because $(datadir) might change at install-time (eg. a Windows installer can be placed anywhere, as can a Unix binary .tar.gz distribution). The current trick is for the compiler to splice in the value of $libdir in package.conf at runtime. So we could extend this mechanism and tell the compiler the value of $datadir via a command-line option, but that seems ugly. On Windows, $datadir==$libdir, so we don't need any changes: package.conf still uses $libdir, and a Windows installation is independent of its absolute location. Even 'make install' on Windows should have this property. On Unix: - for 'make install' and in-place execution, we just use absolute paths in package.conf - for a binary dist, we generate a package.conf that refers to $libdir and $datadir, and splice in the values at install-time (distrib/Makefile-bin.in). - Also, I renamed $libdir to $topdir to more closely reflect its actual meaning. This is somewhat malicious in that it will flush out all those clients using $libdir when they really shouldn't be :-) ] [[project @ 2005-01-20 11:09:54 by malcolm] malcolm**20050120110954 Hook up Data.FunctorM, and update dependencies from Data.Set, Data.IntMap, Data.Map etc, on Data.Typeable. ] [[project @ 2005-01-20 10:36:43 by malcolm] malcolm**20050120103643 Include Typeable instance for nhc98. ] [[project @ 2005-01-19 23:33:25 by ross] ross**20050119233326 Move comments inside #if's they refer to -- makes the cpp output, e.g. as seen by Hugs users, more sensible. ] [[project @ 2005-01-19 23:32:04 by ross] ross**20050119233204 fix name in Typeable instance ] [[project @ 2005-01-19 22:33:32 by ralf] ralf**20050119223336 Added quite a few more Data instances. For these datatypes: - Data.Array - Data.FiniteMap - Data.IntMap - Data.IntSet - Data.Map - Data.Set - GHC.ST - GHC.ForeignPtr - Control.Concurrent.MVar and friends (In some cases, this also required adding Typeable instances.) Most or all additions have been tagged by #ifdef __GLASGOW_HASKELL__ ... For the _abstract_ datatypes in the above list, we use the from... and to... projections and injections so that we can process the containers or whatever as lists. We don't provide the reflection API for abstract datatypes. If anyone sees Data-wanting datatypes in the base or elsewhere in the module space, please let me know, or please go ahead, and add coverage for SYB. As far as I understand, the base code cannot use "deriving (Typeable, Data)", whereas this is very well an option for non-base modules. Indeed it is readily done like this in: - network/Network/URI - haskell-src ] [[project @ 2005-01-19 17:20:31 by ross] ross**20050119172031 document the deprecated functions, and redirect mkSet to fromList ] [[project @ 2005-01-18 15:08:39 by simonmar] simonmar**20050118150839 Win32: attempt to make inputReady() work on pipes too. Fixes bug #995658. ] [[project @ 2005-01-18 11:23:35 by ross] ross**20050118112335 generalize the types of intersectionWith and intersectionWithKey ] [[project @ 2005-01-17 13:23:43 by simonmar] simonmar**20050117132344 Add Typeable instances for the new DData libraries ] [[project @ 2005-01-17 11:23:25 by ross] ross**20050117112325 doc tweaks ] [[project @ 2005-01-17 11:08:52 by simonmar] simonmar**20050117110852 Add Data.FunctorM ] [[project @ 2005-01-16 12:52:21 by ross] ross**20050116125221 added runKleisli as suggested by David Menendez ] [[project @ 2005-01-16 11:50:45 by panne] panne**20050116115045 Improved DEPRECATED pragmas a bit ] [[project @ 2005-01-14 17:01:02 by ross] ross**20050114170102 non-GHC: import Word type ] [[project @ 2005-01-14 14:31:58 by malcolm] malcolm**20050114143158 Hook up the new Text.Map, Text.IntSet, and Text.IntMap modules, and the existing Text.Regex stuff. ] [[project @ 2005-01-14 14:30:42 by malcolm] malcolm**20050114143042 Minor tweaks to build with nhc98. ] [[project @ 2005-01-14 12:18:00 by ross] ross**20050114121802 Hugs: include instances for Word ] [[project @ 2005-01-14 12:06:51 by ross] ross**20050114120651 Hugs: use Word like everyone else ] [[project @ 2005-01-14 00:00:22 by ross] ross**20050114000022 make these work with Hugs (pending the possible return of Word) and simplify the #if's a bit. ] [[project @ 2005-01-13 13:31:09 by ross] ross**20050113133111 adjust module header comments (the bit about imports still sounds wierd) ] [[project @ 2005-01-13 12:26:50 by ross] ross**20050113122650 another cpp hack (that infix declaration occurs 3 times!) ] [[project @ 2005-01-13 12:09:55 by ross] ross**20050113120955 kludge for cpp's that don't like \ at end of line ] [[project @ 2005-01-13 11:15:17 by ross] ross**20050113111517 use ioError instead of the GHC-specific ioException ] [[project @ 2005-01-13 11:14:09 by ross] ross**20050113111409 Hugs only: replace UserError with ResourceExhausted ] [[project @ 2005-01-13 10:46:36 by ross] ross**20050113104636 make comments ASCII ] [[project @ 2005-01-13 10:37:35 by simonmar] simonmar**20050113103738 Add Data.Map, Data.Set, Data.IntMap and Data.IntSet from Daan Leijen's DData library, with some modifications by JP Bernardy and others on the libraries@haskell.org list. Minor changes by me to remove the last references to DData, and add a DEPRECATED copy of the old Data.Set interface to the new Data.Set. Data.FiniteMap is now DEPRECATED. ] [[project @ 2005-01-13 10:23:07 by simonmar] simonmar**20050113102327 import Prelude explicitly ] [[project @ 2005-01-11 21:26:42 by krasimir] krasimir**20050111212642 Use "o" extension everywere. Added haddock comment about the possible usage of "obj" for Hugs. ] [[project @ 2005-01-11 16:04:08 by simonmar] simonmar**20050111160430 Use OPTIONS_GHC instead of OPTIONS ] [[project @ 2005-01-11 14:49:07 by ross] ross**20050111144907 untangle #if's ] [[project @ 2005-01-11 14:36:51 by ross] ross**20050111143651 System.IO no longer re-exports System.IO.Error ] [[project @ 2005-01-11 14:18:13 by ross] ross**20050111141813 get IOError stuff from System.IO.Error instead of System.IO ] [[project @ 2005-01-11 13:44:39 by malcolm] malcolm**20050111134440 Hack around the non-portable ReadP library to allow nhc98 to use Data.Version. ] [[project @ 2005-01-11 13:29:34 by malcolm] malcolm**20050111132934 Use ghc implementation of createDirectoryIfMissing and removeDirectoryRecursive for nhc98 and Hugs too. ] [[project @ 2005-01-11 13:20:22 by ross] ross**20050111132022 doc fixes ] [[project @ 2005-01-11 12:14:00 by ross] ross**20050111121400 tweak docs of name clashes ] [[project @ 2005-01-11 12:12:36 by ross] ross**20050111121236 haddock fix ] [[project @ 2005-01-10 23:25:04 by krasimir] krasimir**20050110232504 move createIfNotExists and removeFileRecursive functions from Distribution.Simple.Utils to System.Directory. The functions are renamed to createDirectoryIfMissing and removeDirectoryRecursive. ] [[project @ 2005-01-10 00:03:04 by krasimir] krasimir**20050110000304 Add dropAbsolutePrefix function. (used in Cabal) ] [[project @ 2005-01-07 22:24:55 by krasimir] krasimir**20050107222455 truncate the file only in WriteMode ] [[project @ 2005-01-07 13:31:07 by krasimir] krasimir**20050107133107 fix for readFile001 ] [[project @ 2005-01-07 12:22:18 by simonmar] simonmar**20050107122218 oops, reinstate an import ] [[project @ 2005-01-07 11:37:02 by simonmar] simonmar**20050107113702 Add unsafeIOToSTM ] [[project @ 2005-01-06 19:35:05 by krasimir] krasimir**20050106193507 add temporary files API ] [[project @ 2005-01-06 19:10:14 by krasimir] krasimir**20050106191014 Reduce dependencies for GHC. This allows System.FilePath to be used in some low-level modules. ] [[project @ 2005-01-06 18:14:40 by ross] ross**20050106181440 extensions no longer include dots ] [[project @ 2005-01-06 16:37:36 by simonmar] simonmar**20050106163736 Apply the previous change to the docs, too. ] [[project @ 2005-01-06 16:35:04 by simonmar] simonmar**20050106163504 Remove the leading '.' from exeExtension, objExtension and dllExtension. This is for consistency with joinFileExt, which does not expect to see a '.' in the extension. ] [[project @ 2005-01-05 21:30:05 by krasimir] krasimir**20050105213007 Added implementation for hSetFileSize. The configure script checks for _chsize (usially Windows) and ftruncate (Linux) C functions and the package uses one of them to implement hSetFileSize. ] [[project @ 2005-01-04 20:15:04 by krasimir] krasimir**20050104201504 fix haddock comment ] [[project @ 2005-01-01 23:59:58 by krasimir] krasimir**20050102000000 According to the documentation, the Haskell implementation of Handle should implement single writer/multiple readers locking but the current implementation doesn't work under Windows. This commit fixes this using '_sopen' function instead of 'open'. The former allows to implement system level locking on Windows. The changes doesn't affect other platforms. ] [[project @ 2005-01-01 23:36:20 by krasimir] krasimir**20050101233620 add getTemporaryDirectory to the collection of pre-defined directories. ] [[project @ 2004-12-24 12:20:18 by krasimir] krasimir**20041224122018 revert the previous commit it was wrong ] [[project @ 2004-12-24 12:12:28 by krasimir] krasimir**20041224121228 minor performance update for withCAStringLen and newCAStringLen functions. We don't need to calculate the string length twice. ] [[project @ 2004-12-23 00:02:41 by ralf] ralf**20041223000242 Resolved stage1 issues related SPJ's commit "Add more scoped type variables". Incidentally, this provides some input for the recent GHC list discussion on whether to provide lex. scope for function signatures. Not too many modules are affected! Good! The example hslibs/data/edison/Seq/BinaryRandList.hs was interesting in so far that indeed up-front function signatures were given in one shot, so one is really a bit confused to see type variables in where clauses to clash with far-removed top-level function signatures. Ralf ] [[project @ 2004-12-21 16:42:06 by ross] ross**20041221164206 Hugs only: move the Typeable instance for ST back to Control.Monad.ST. Having it in Data.Typeable, which is imported by Data.Dynamic, would mean that every invocation of runhugs or ffihugs would need the -98 option. ] [[project @ 2004-12-21 14:00:12 by simonpj] simonpj**20041221140012 Add an instance for Typeable RealWorld; and move the Typeable ST instance to Data.Typeable ] [[project @ 2004-12-21 12:12:40 by simonpj] simonpj**20041221121240 Add GHC.Prim to base package modules ] [[project @ 2004-12-18 15:38:08 by panne] panne**20041218153808 * Fixed Haddock comment. Please: Before committing, everybody should test with "make html" if the documentation is syntactically OK. It is quite frustrating to find a broken RPM build after several hours and 99% of the work done... >:-( * Fixed isPathSeparator comment. * Cleanup ] [[project @ 2004-12-18 00:45:27 by ross] ross**20041218004527 Add system-dependent filename extensions: exeExtension ("" or ".exe") objExtension (".o" or ".obj") dllExtension (".so" or ".dll") ] [[project @ 2004-12-18 00:43:03 by ross] ross**20041218004303 avoid a warning by defining getDrive only on Windows ] [[project @ 2004-12-17 15:12:13 by simonmar] simonmar**20041217151213 Add GHC.ConsoleHandler ] [[project @ 2004-12-14 13:55:22 by simonmar] simonmar**20041214135522 Add Text.Printf ] [[project @ 2004-12-14 13:32:38 by malcolm] malcolm**20041214133238 Plumb in the new Text/Printf module. ] [[project @ 2004-12-14 13:31:44 by malcolm] malcolm**20041214133144 For nhc98, get entities from H'98 libraries, rather than redefine them here. ] [[project @ 2004-12-14 12:52:03 by simonmar] simonmar**20041214125203 Some more Typeable instances, as requested on the ghc-users list a while back. ] [[project @ 2004-12-14 12:44:52 by simonmar] simonmar**20041214124452 Add instance Typeable MVar ] [[project @ 2004-12-14 12:37:28 by simonmar] simonmar**20041214123728 Add Lennart's Printf module, extended by me to include hPrintf. ] [[project @ 2004-12-09 17:25:15 by simonmar] simonmar**20041209172515 Haddock only: import Data.Array.IArray, to avoid linking to hidden Data.Array.Base. ] [[project @ 2004-12-09 09:45:39 by simonmar] simonmar**20041209094539 Add subRegex & splitRegex Contributed by: John Goerzen ] [[project @ 2004-12-08 11:05:31 by simonmar] simonmar**20041208110532 - Update docs on finalizers: we don't guarantee to run finalizers at all, and you can't express finalizer ordering using touchForeignPtr. - consistently rename finaliser to finalizer. ] [[project @ 2004-12-03 14:08:07 by ross] ross**20041203140807 added a simple-minded implementation of rawSystem for non-GHC implementations. Also re-instated the doc comment that rawSystem lost in its travels. ] [[project @ 2004-12-02 15:57:02 by ross] ross**20041202155704 Hugs only: replace the CBITS pragma (files relative to cbits) with CFILES (files relative to the root of the package). ] [[project @ 2004-12-02 14:52:30 by ross] ross**20041202145230 add Henrik Nilsson's combinators for composing with pure functions ] [[project @ 2004-12-01 17:46:14 by ross] ross**20041201174614 tweaks for portability ] [[project @ 2004-12-01 17:45:28 by ross] ross**20041201174528 markup ] [[project @ 2004-11-30 10:04:31 by simonpj] simonpj**20041130100431 Use C comment not Haskell comment in package.conf ] [[project @ 2004-11-26 16:22:09 by simonmar] simonmar**20041126162210 Further integration with the new package story. GHC now supports pretty much everything in the package proposal. - GHC now works in terms of PackageIds (-) rather than just package names. You can still specify package names without versions on the command line, as long as the name is unambiguous. - GHC understands hidden/exposed modules in a package, and will refuse to import a hidden module. Also, the hidden/eposed status of packages is taken into account. - I had to remove the old package syntax from ghc-pkg, backwards compatibility isn't really practical. - All the package.conf.in files have been rewritten in the new syntax, and contain a complete list of modules in the package. I've set all the versions to 1.0 for now - please check your package(s) and fix the version number & other info appropriately. - New options: -hide-package P sets the expose flag on package P to False -ignore-package P unregisters P for this compilation For comparison, -package P sets the expose flag on package P to True, and also causes P to be linked in eagerly. -package-name is no longer officially supported. Unofficially, it's a synonym for -ignore-package, which has more or less the same effect as -package-name used to. Note that a package may be hidden and yet still be linked into the program, by virtue of being a dependency of some other package. To completely remove a package from the compiler's internal database, use -ignore-package. The compiler will complain if any two packages in the transitive closure of exposed packages contain the same module. You *must* use -ignore-package P when compiling modules for package P, if package P (or an older version of P) is already registered. The compiler will helpfully complain if you don't. The fptools build system does this. - Note: the Cabal library won't work yet. It still thinks GHC uses the old package config syntax. Internal changes/cleanups: - The ModuleName type has gone away. Modules are now just (a newtype of) FastStrings, and don't contain any package information. All the package-related knowledge is in DynFlags, which is passed down to where it is needed. - DynFlags manipulation has been cleaned up somewhat: there are no global variables holding DynFlags any more, instead the DynFlags are passed around properly. - There are a few less global variables in GHC. Lots more are scheduled for removal. - -i is now a dynamic flag, as are all the package-related flags (but using them in {-# OPTIONS #-} is Officially Not Recommended). - make -j now appears to work under fptools/libraries/. Probably wouldn't take much to get it working for a whole build. ] [[project @ 2004-11-26 16:00:06 by simonmar] simonmar**20041126160006 more make -j fixing ] [[project @ 2004-11-26 15:03:22 by ross] ross**20041126150322 fix tycon name strings ] [[project @ 2004-11-26 11:58:18 by simonmar] simonmar**20041126115821 More 'import Prelude's to help make -j. ] [[project @ 2004-11-25 15:01:24 by simonmar] simonmar**20041125150124 Add explicit 'import Prelude' to fix dependencies (necessary for make -j) ] [[project @ 2004-11-22 14:03:15 by simonmar] simonmar**20041122140315 Plug a race condition in the IO manager ] [[project @ 2004-11-22 10:26:46 by simonmar] simonmar**20041122102646 More fixes to the sample code (thanks to Satnam Singh for pointing out a problem). ] [[project @ 2004-11-22 10:16:42 by simonmar] simonmar**20041122101642 Fix example code ] [[project @ 2004-11-19 12:54:12 by ross] ross**20041119125412 make instance Enum () conform to the Report (though I doubt anyone will notice) ] [[project @ 2004-11-18 16:39:54 by stolz] stolz**20041118163954 Push down more feature-tests ] [[project @ 2004-11-18 09:56:58 by tharris] tharris**20041118095659 Support for atomic memory transactions and associated regression tests conc041-048 ] [[project @ 2004-11-17 19:07:38 by sof] sof**20041117190738 Expose Win32 console event handling to the user. Added RTS support for registering and delivering console events quite a while ago (rts/win32/ConsoleHandler.c), but got bored with it before completing the job. Here's the concluding commit; it does the following: - new module, base/GHC/ConsoleHandler.hs which supports registering of console event handlers (the null module on plats other than mingw). - special handling of aborted async read()s on 'standard input' in rts/win32/IOManager.c (together with GHC.Conc.asyncRead). See comments in that IOManager.c as to why this is needed. [ Any other code that performs blocking I/O on 'standard input' will need to be tweaked too to be console event handler/signal friendly.] - for now, disable the delivery of 'close' events (see rts/win32/ConsoleHandler.c:generic_handler() for reasons why) Feel free to hoik GHC/ConsoleHandler.hs around the lib hierarchy to wherever is considered more fitting. Unifying functionality between System.Posix.Signals and GHC.ConsoleHandler is one (obvious) thing to do. -- Demonstrating GHC.ConsoleHandler use; win32 only module Main(main) where import GHC.ConsoleHandler import System.IO (hFlush, stdout) import GHC.Conc (threadDelay) main :: IO () main = do installHandler (Catch (\ _ -> putStrLn "Caught console event; ignoring" >> hFlush stdout)) loop where loop = do threadDelay 100000 ls <- getLine putStrLn ls loop -- ] [[project @ 2004-11-16 23:36:36 by ross] ross**20041116233636 drop with a negative length should yield the whole list, not [] ] [[project @ 2004-11-16 18:02:07 by ross] ross**20041116180207 spelling in error message ] [[project @ 2004-11-14 20:25:54 by panne] panne**20041114202554 Tiny refactoring, mostly used as a reminder that '#if blah_platform' tests are evil and should be replaced by feature-based test (autoconf!) and concentrated in few modules. System.FilePath is another great example for this, all #ifs should be replaced by a function handling a possible drive letter + a few separator constants. ] [[project @ 2004-11-14 12:32:48 by ross] ross**20041114123248 tweak imports for portability ] [[project @ 2004-11-14 10:48:23 by malcolm] malcolm**20041114104823 Plumb in new addition System.FilePath. ] [[project @ 2004-11-14 10:47:26 by malcolm] malcolm**20041114104726 Allow new additions to build with nhc98 too. (I suspect more work is still needed to make them portable to Hugs as well.) ] [[project @ 2004-11-13 14:37:18 by panne] panne**20041113143718 Get rid of those ugly WinDoze CR/LF ] [[project @ 2004-11-13 08:21:32 by krasimir] krasimir**20041113082133 Added the proposed System.FilePath. I also added to System.Directory the canonicalizePath and findExecutable functions. ] [[project @ 2004-11-12 17:07:54 by simonpj] simonpj**20041112170754 Missing #include following per-package config changes ] [[project @ 2004-11-12 15:14:17 by simonmar] simonmar**20041112151417 Note Haskell 98 divergence in isAlpha. ] [[project @ 2004-11-12 12:34:52 by stolz] stolz**20041112123452 Push FreeBSD-unicode-detection into package ] [[project @ 2004-11-11 17:48:49 by simonpj] simonpj**20041111174849 Fix version skew ] [[project @ 2004-11-11 17:17:30 by simonmar] simonmar**20041111171730 remove unnecessary #ifdef ] [[project @ 2004-11-10 11:27:54 by simonmar] simonmar**20041110112754 Move the compatibility code for rawSystem from libraries/base into ghc/lib/compat. ] [[project @ 2004-11-09 17:02:23 by simonmar] simonmar**20041109170223 Make this compile with GHC < 6.3 ] [[project @ 2004-11-09 15:48:34 by simonmar] simonmar**20041109154834 Adding Cabal to GHC, stage 1: - Add Data.Version library as previously discussed on libraries@haskell.org. - import the Cabal library as a package under fptools/libraries, build & install it by default. - Instead of importing Cabal's version of ReadP, I added the extra combinators to Text.ParserCombinators.ReadP. If anyone objects, please speak up. I made various changes to Cabal along the way, which I'll try to fold back into the main Cabal sources in due course. The changes are roughly these: - Generic Version stuff removed from Distribution.Version (now in Data.Version). - Some modules were rearranged. Distribution.Misc was replaced by Distribution.License & Distribution.Extension. Distribution.Package split into D.PackageDescription and D.Package. - modules under Compat.* renamed to Distribution.Compat.*. Hopefully I've retained enough compatibility stuff so that this will still build under nhc98 & Hugs. - Some elaboration of InstalledPackageInfo, which was previously unused in Cabal. I've updated the type definition with respect to changes in PackageDescription, and added a parser/pretty-printer for it. This is going to be used in the new ghc-pkg. - Fixed a bug or two that I found along the way. The next stage will be to integrate GHC's idea of packages with Cabal's. That means ghc-pkg must grok InstalledPackageInfo, and we must use all the new information (versions, exposed/unexposed modules etc.). ] [[project @ 2004-11-07 10:17:22 by ross] ross**20041107101722 move CONST_O_BINARY detection down to libraries/base ] [[project @ 2004-11-06 17:03:43 by panne] panne**20041106170343 * Issue a warning when compilation/execution fails during FP_READDIR_EOF_ERRNO and assume a value of '0'. * Stylistic changes ] [[project @ 2004-11-06 16:34:25 by panne] panne**20041106163425 'd->d_name' (where d is of type 'struct dirent*') should always return a pointer to the directory entry's name, regardless if dirent is defined as struct dirent { ... ; char d_name[...]; } or struct dirent { ... ; char* d_name; } No need for autoconf trickery here. ] [[project @ 2004-11-06 14:15:06 by panne] panne**20041106141506 * Re-enable large file support * No need to test for lchown here ] [[project @ 2004-11-06 13:01:18 by panne] panne**20041106130120 * Changed some '#include "ghcconfig.h"' to '#include "HsBaseConfig.h"' (or added the latter), tracking the recent autoconf-related changes. * Continued my crusade against CVS keywords. * Made CTypes.h self-contained. * Protected headers against multiple inclusions. ] [[project @ 2004-11-06 11:10:18 by panne] panne**20041106111018 Moved test for C/ISO types to base package, hopefully testing for all needed headers first. ] [[project @ 2004-11-06 10:45:46 by panne] panne**20041106104547 Push down the tests for errno values to the base package. There's really no need testing for this when e.g. building Happy. :-) ] [[project @ 2004-10-27 15:47:23 by ross] ross**20041027154723 adjustments to doc comments ] [[project @ 2004-10-25 13:47:34 by simonmar] simonmar**20041025134734 hDuplicate, hDuplicateTo: add finalizers ] [[project @ 2004-10-25 13:40:08 by simonmar] simonmar**20041025134008 Doc update: notes on finalization of Handles ] [[project @ 2004-10-17 00:22:03 by ross] ross**20041017002203 tighten imports ] [[project @ 2004-10-17 00:09:58 by ross] ross**20041017000959 move some GHC-specific implementations into GHC.* ] [[project @ 2004-10-17 00:08:08 by ross] ross**20041017000809 markup ] [[project @ 2004-10-14 14:58:50 by simonmar] simonmar**20041014145851 Threaded RTS improvements: - Unix only: implement waitRead#, waitWrite# and delay# in Haskell, by having a single Haskell thread (the IO manager) performing a blocking select() operation. Threads communicate with the IO manager via channels. This is faster than doing the select() in the RTS, because we only restart the select() when a new request arrives, rather than each time around the scheduler. On Windows we just make blocking IO calls, we don't have a fancy IO manager (yet). - Simplify the scheduler for the threaded RTS, now that we don't have to wait for IO in the scheduler loop. - Remove detectBlackHoles(), which isn't used now (not sure how long this has been unused for... perhaps it was needed back when main threads used to be GC roots, so we had to check for blackholes manually rather than relying on the GC.) Signals aren't quite right in the threaded RTS. In fact, they're slightly worse than before, because the thread receiving signals might be blocked in a C call - previously there always be another thread stuck in awaitEvent() that would notice the signal, but that's not true now. I can't see an easy fix yet. ] [[project @ 2004-10-13 10:24:16 by simonpj] simonpj**20041013102416 c_execvpe & pPrPr_disableITimers: remove these in a Windows build. ] [[project @ 2004-10-12 17:45:44 by ross] ross**20041012174544 unused line ] [[project @ 2004-10-11 10:54:57 by simonmar] simonmar**20041011105457 genericRaise() hack needed on FreeBSD too. ] [[project @ 2004-10-09 07:51:06 by panne] panne**20041009075106 Unbreak Hugs by moving pPrPr_disableITimers and execvpe to System.Posix.Internals (base package) and use it from System.Posix.Process (unix package). ] [[project @ 2004-10-08 21:21:08 by malcolm] malcolm**20041008212108 Fix layout to Haskell'98. ] [[project @ 2004-10-08 12:07:02 by ross] ross**20041008120702 Hugs can't handle System.Process yet ] [[project @ 2004-10-08 12:04:48 by ross] ross**20041008120448 revert previous change, so now these includes don't define PACKAGE_* ] [[project @ 2004-10-08 10:28:37 by simonmar] simonmar**20041008102837 - make sure we don't overflow the table - use a checked array index just in case we *do* try to overflow - fix a harmless off-by-one ] [[project @ 2004-10-07 13:13:22 by stolz] stolz**20041007131322 Bring declaration of runProcess back in line with prototype: pid_t (ProcHandle) isn't compatible with int on SunOS. ] [[project @ 2004-10-07 09:42:28 by malcolm] malcolm**20041007094228 Oops, fix impdecl/fundecl ordering. ] [[project @ 2004-10-06 23:45:37 by dons] dons**20041006234537 Fix order of PACKAGE_* #undefs. They must appear before HsBaseConfig.h ] [[project @ 2004-10-06 15:02:41 by malcolm] malcolm**20041006150241 Dummy implementations of openBinaryFile and hSetBinaryMode for nhc98. ] [[project @ 2004-10-06 11:11:34 by ross] ross**20041006111135 Add getEnvironment from hslibs/lang/SystemExts. This differs from the System.Posix.Env version in not failing if an entry lacks an '=' sign. ] [[project @ 2004-10-06 10:13:07 by ross] ross**20041006101307 make the evil PACKAGE_* hacks consistent ] [[project @ 2004-10-05 15:56:17 by simonmar] simonmar**20041005155617 If we try to use a finalized handle, then throw a useful exception. Before, the thread would just block forever on the MVar or get a BlockedOnDeadMVar exception. The fact that you can actually get into a situation where a finalized handle can be accessed is arguably a bug itself, but at least now we'll be able to quickly see when it is happening which should cut down on debugging time. ] [[project @ 2004-10-05 12:51:33 by simonmar] simonmar**20041005125133 inputReady foreign import should be "safe. ] [[project @ 2004-10-05 07:43:07 by mthomas] mthomas**20041005074307 Nonexistent file stopped entire install for libraries. ] [[project @ 2004-10-02 07:34:38 by dons] dons**20041002073438 Bind raiseSignal to genericRaise, on OpenBSD only, atm. ] [[project @ 2004-10-02 07:14:38 by dons] dons**20041002071438 Undef PACKAGE_NAME PACKAGE_STRING PACKAGE_BUGREPORT PACKAGE_TARNAME coming in from ghcconfig.h, so that we can use HsBaseConfig.h versions without screenfulls of cpp warnings. ] [[project @ 2004-09-30 10:01:46 by malcolm] malcolm**20040930100146 Add a type signature to help nhc98 out. ] [[project @ 2004-09-30 09:42:17 by simonmar] simonmar**20040930094217 Haddock fixes ] [[project @ 2004-09-30 08:54:00 by simonmar] simonmar**20040930085400 Update the signature of execvpe() to match the one in HsBase. ] [[project @ 2004-09-29 22:49:36 by krasimir] krasimir**20040929224938 Change file extension. We don't need hsc2hs here. ] [[project @ 2004-09-29 22:48:06 by krasimir] krasimir**20040929224807 compile execvpe only under Unix. The mingw's process.h header also contains definition for execvpe which conflicts with our definition. ] [[project @ 2004-09-29 15:50:51 by simonmar] simonmar**20040929155053 Process reorganisation: the System.Process library moves into base, and System.Cmd is re-implemented in terms of it. Thanks to Krasimir Angelov, we have a version of System.Process that doesn't rely on the unix or Win32 libraries. Normally using unix/Win32 would be the right thing, but since we want to implement System.Cmd on top of this, and GHC uses System.Cmd, we can't introduce a bunch of .hsc dependencies into GHC's bootstrap libraries. So, the new version is larger, but has fewer dependencies. I imagine it shouldn't be too hard to port to other compilers. ] [[project @ 2004-09-29 15:46:53 by simonmar] simonmar**20040929154653 Move this to the Attic ] [[project @ 2004-09-29 10:29:13 by ross] ross**20040929102915 haddock markup ] [[project @ 2004-09-28 23:34:26 by ross] ross**20040928233426 unbreak for non-GHC implementations ] [[project @ 2004-09-28 12:38:55 by simonmar] simonmar**20040928123855 Add update, and improve documentation of insert. ] [[project @ 2004-09-28 11:29:29 by simonmar] simonmar**20040928112929 - export foldl1' - specialise minimum/maximum for Integer too ] [[project @ 2004-09-28 09:02:13 by simonmar] simonmar**20040928090213 - Move foldl1 to Data.List - Provide a strict version of foldl1, namely foldl1' - Move minimum, maximum to Data.List - Provide specialised versions of minimum & maximum for Int, which use foldl1' ] [[project @ 2004-09-27 09:04:15 by ross] ross**20040927090417 update documentation of memory allocation ] [[project @ 2004-09-22 08:37:01 by panne] panne**20040922083701 * Replace obsolete macro AC_TRY_RUN with AC_RUN_IFELSE * Same for AC_TRY_LINK and AC_LINK_IFELSE * Minor cleanup ] [[project @ 2004-09-20 16:35:12 by sof] sof**20040920163512 openFile: have Haddock comments mention openBinaryFile ] [[project @ 2004-09-18 12:49:59 by panne] panne**20040918124959 Make autoupdate 2.52 happy, mainly by using the new formats of AC_INIT and AC_OUTPUT. This has the nice side effect that all "packages" have now a name, a version, a bug-report address, and a tar name, yielding better output with "configure --help=recursive". Nuked an unused AC_STRUCT_ST_BLKSIZE test on the way. ] [[project @ 2004-09-15 13:51:00 by stolz] stolz**20040915135100 - Remove configure tests for SIG{POLL,INFO,WINCH}: Testing via #ifdef SIGFOO should be sufficient. - Change #if HAVE_SIGPOLL to #ifdef SIGPOLL - Remove SIGINFO/WINCH from package base: they'll reappear in package unix in System/Posix/Signals.Exts. ] [[project @ 2004-09-10 22:43:20 by ross] ross**20040910224320 doc tweaks ] [[project @ 2004-09-10 20:38:53 by ross] ross**20040910203853 docs ] [[project @ 2004-09-10 08:29:14 by stolz] stolz**20040910082914 Fix build on Solaris: CTime is no longer an instance of Integral, so do the realToInteger-dance. ] [[project @ 2004-09-08 11:10:08 by ross] ross**20040908111013 typos in comments ] [[project @ 2004-09-07 15:35:41 by stolz] stolz**20040907153543 Add cpp-protected signals sigINFO & sigWINCH if available. (An autoconf-wizard might want to look at the bottom of configure.ac, the similarities between HAVE_SIGPOLL, HAVE_SIGINFO & HAVE_SIGWINCH can surely be factored out) ] [[project @ 2004-09-06 17:20:02 by ross] ross**20040906172002 add some RULES ] [[project @ 2004-09-06 09:07:45 by ross] ross**20040906090747 Text.Regex.Posix is portable (because it includes an implementation) ] [[project @ 2004-09-02 05:57:41 by dons] dons**20040902055741 Trying to closedir the wrong pointer in "readdir sets errno" test. This caused test to dump core, leading to 'bogus' value of test result, which breaks the build. ] [[project @ 2004-09-01 15:57:13 by ross] ross**20040901155715 devolve the recently added dirent checks to a new libraries/base/configure.ac ] [[project @ 2004-09-01 09:47:31 by simonmar] simonmar**20040901094731 Win32 rawSystem: set errno to EINVAL on error. This is a gross hack, but is slightly better than the existing situation (errno not set at all, caller tries to report errno and draws a blank). Microsoft's C runtime has a conversion function from Win32 error codes into errno error codes, but it isn't part of the external interface. grrrrr. Strictly speaking, we should have support for Win32 error codes in the base package. ] [[project @ 2004-08-31 09:07:26 by ross] ross**20040831090726 make the new directory queries available to all implementations, though the mingw versions only work for GHC. ] [[project @ 2004-08-25 18:42:47 by sof] sof**20040825184247 __hscore_d_name(), __hscore_end_of_dir(): de-platformify and use feature #defines instead. [Should anyone see compilation breakages stemming from HsBase.h as a result of this commit, remember to 'autoreconf' in FPTOOLS_TOP and re-make.] ] [[project @ 2004-08-25 18:35:29 by sof] sof**20040825183529 extrs_libraries{mingw32}: replace 'shell32' with 'shfolder'; standard, and more version-proof ] [[project @ 2004-08-25 16:20:13 by sof] sof**20040825162013 Be resistant to missing CSIDL_* defines ] [[project @ 2004-08-23 11:53:08 by simonmar] simonmar**20040823115308 Fix deadlock problem when the difference list for \\ refers recursively to the array. Fixes [ 973063 ] DiffArray deadlock MERGE TO STABLE ] [[project @ 2004-08-21 10:56:59 by panne] panne**20040821105659 Haddock fix ] [[project @ 2004-08-20 08:45:52 by simonpj] simonpj**20040820084552 Better handling of overflow conditions for Enum Int. (I also reduced the use of RULES and deforestation for the [a,b..] case, because it took a lot of code for a case that isn't common. ] [[project @ 2004-08-19 10:54:34 by malcolm] malcolm**20040819105434 Missing import for nhc98. ] [[project @ 2004-08-19 08:23:01 by simonmar] simonmar**20040819082301 Add a new Haddock section "Pre-defined directories" ] [[project @ 2004-08-18 17:48:44 by krasimir] krasimir**20040818174844 add getUserDocumentsDirectory function ] [[project @ 2004-08-18 09:34:02 by simonmar] simonmar**20040818093402 Add Haddock comments for getHomeDirectory/getAppUserDataDirectory ] [[project @ 2004-08-18 09:23:19 by malcolm] malcolm**20040818092319 Add versions of getHomeDirectory and getAppUserDataDirectory for nhc98. (Note: implementation still missing for Hugs.) ] [[project @ 2004-08-17 16:48:09 by krasimir] krasimir**20040817164809 Add getHomeDirectory and getAppUserDataDirectory functions ] [[project @ 2004-08-16 11:08:47 by simonmar] simonmar**20040816110847 wibble ] [[project @ 2004-08-16 11:07:31 by simonmar] simonmar**20040816110731 More ugly hacks related to the config.h change. I'm beginning to think maybe this wasn't such a great idea. ] [[project @ 2004-08-16 09:31:15 by simonmar] simonmar**20040816093115 #ifdefery to work around change in name of config.h ] [[project @ 2004-08-13 13:29:00 by simonmar] simonmar**20040813132907 Changes required be merge of backend-hacking-branch. Mostly config.h ==> ghcconfig.h. ] [[project @ 2004-08-13 10:55:06 by simonmar] simonmar**20040813105506 Add a Todo ] [[project @ 2004-08-13 10:54:15 by simonmar] simonmar**20040813105415 Update copyright date ] [[project @ 2004-08-13 08:50:32 by simonmar] simonmar**20040813085032 work around stricter CPP in GCC 3.4.1 ] [[project @ 2004-08-10 11:35:24 by simonpj] simonpj**20040810113524 Add a Haddock note about dynamic linking ] [[project @ 2004-08-09 12:00:34 by simonmar] simonmar**20040809120034 whitespace changes to the header only, for new compatibility with new Haddock ] [[project @ 2004-08-09 10:04:33 by simonmar] simonmar**20040809100433 quotes: use an appostrophe at both ends rather than a grave accent at the front and an apostrophe at the end. Previously `quotes' now 'quotes' the latter is more correct. See http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html fpr details. ] [[project @ 2004-08-03 19:36:41 by panne] panne**20040803193641 Fixed spelling of "http-equiv" attribute MERGE TO STABLE ] [[project @ 2004-07-30 23:29:41 by ross] ross**20040730232941 copyFile is GHC-only at the moment ] [[project @ 2004-07-30 22:17:44 by krasimir] krasimir**20040730221744 fix ] [[project @ 2004-07-30 20:33:54 by krasimir] krasimir**20040730203354 add copyFile to the export list ] [[project @ 2004-07-30 06:16:00 by krasimir] krasimir**20040730061600 add copyFile function ] [[project @ 2004-07-28 10:32:11 by ross] ross**20040728103212 haddock food ] [[project @ 2004-07-27 10:35:54 by ross] ross**20040727103555 haddock fodder ] [[project @ 2004-07-26 17:22:41 by ross] ross**20040726172243 a few odd docs ] [[project @ 2004-07-26 13:26:41 by ross] ross**20040726132646 docs only ] [[project @ 2004-07-23 15:31:59 by ross] ross**20040723153200 To make Text.Regex.Posix work with Hugs, move cbits/regex/regex.h under include, where Hugs can find it. ] [[project @ 2004-07-23 15:26:06 by ross] ross**20040723152606 tweak comment ] [[project @ 2004-07-23 13:24:04 by ross] ross**20040723132405 docs only ] [[project @ 2004-07-23 11:34:31 by ross] ross**20040723113433 docs only ] [[project @ 2004-07-11 09:20:07 by panne] panne**20040711092007 Use "flat" names for the type constructors of Ptr/StablePtr/IORef. This might be debatable, but at least it is consistent with the rest of the types. ] [[project @ 2004-07-01 18:05:00 by panne] panne**20040701180500 Increase heap size and stack size when building via hbc ] [[project @ 2004-07-01 14:49:11 by malcolm] malcolm**20040701144911 Heap-profiling build bootstrapped with nhc98 requires more heap. ] [[project @ 2004-07-01 13:25:09 by malcolm] malcolm**20040701132509 Revert from common heap/stack options to per-package options. Since hbc's runtime requirements are on occasion so much larger ghc/nhc98, break out EXTRA_HBC_FLAGS as a separate variable. ] [[project @ 2004-06-29 19:10:47 by panne] panne**20040629191047 Centralized compiler differences for requesting additional heap/stack in a single place. Only tested for bootstrapping via hbc, and this needs 170M heap for Language/Haskell/Parser.hs. There seems to be a "small" space leak here... :-] ] [[project @ 2004-06-25 10:42:48 by ross] ross**20040625104248 more Ptr/FunPtr documentation ] [[project @ 2004-06-23 09:47:47 by simonmar] simonmar**20040623094747 Add documentation from the FFI spec. ] [[project @ 2004-06-22 12:45:55 by ross] ross**20040622124555 Change the interface (but not the implementation) to match the FFI spec: * added charIsRepresentable, *CAString and *CWString * currently (and in violation of the spec), fooCString = fooCAString * The WString versions use UTF-16 under Windows and UTF-32 elsewhere (valid only if the compiler defines __STDC_ISO_10646__). ] [[project @ 2004-06-16 09:50:25 by malcolm] malcolm**20040616095025 Typo. ] [[project @ 2004-06-15 21:07:23 by panne] panne**20040615210723 Yet another fix for the fact that CTime is not an instance of Integral anymore, ] [[project @ 2004-06-15 10:29:12 by malcolm] malcolm**20040615102912 Note dependency of Foreign.C on Foreign.C.* ] [[project @ 2004-06-15 10:20:05 by malcolm] malcolm**20040615102005 Add missing instances of Data.Bits.Bits for nhc98. ] [[project @ 2004-06-14 13:28:52 by malcolm] malcolm**20040614132852 Solaris/nhc98 fixes: HAVE_TZNAME rather than HAVE_TM_ZONE, and need a "time.h" specification on every foreign import. ] [[project @ 2004-06-13 21:03:46 by panne] panne**20040613210347 Changes related to arithmetic types: * Renamed macros NUMERIC_FOO to ARITHMETIC_FOO to match C99-speak * ARITHMETIC_TYPEs now have a Real instance, otherwise they are quite useless. Note that this differs from the FFI spec, but the spec should very probably changed in this respect. * Some changes to fix the wrong assumption that CTime/CClock are integral types, C99 in fact guarantees only that they are arithmetic types. This has been accomplished by using realToInteger = round . realToFrac :: Real a => a -> Integer instead of fromIntegral for CTime/CClock. I'm not sure if we could do better, going via Double seems to be overkill, but I couldn't think of a better way. GHC could e.g. use RULES here. Improvements welcome. ] [[project @ 2004-06-13 20:26:03 by panne] panne**20040613202603 Added missing dependencies of Haskell files to header files they include ] [[project @ 2004-06-13 17:16:40 by panne] panne**20040613171640 The FFI report does not mention that CClock and CTime have instances for Bounded, Real, Integral, and Bits. ] [[project @ 2004-06-12 12:13:12 by panne] panne**20040612121312 timezone fix by Antony Courtney ] [[project @ 2004-06-02 16:17:20 by simonmar] simonmar**20040602161720 Add a comment about fdGetMode, which doesn't work properly on Windows ] [[project @ 2004-06-02 16:09:58 by simonmar] simonmar**20040602160958 __hscore_PrelHandle_{send,recv}: make these mingw32-only ] [[project @ 2004-06-02 16:07:17 by simonmar] simonmar**20040602160717 - Win32: when using the threaded RTS, bypass the Async IO stuff and just make blocking calls to read()/write(). This gives a significant performance boost to programs doing lots of multithreaded I/O: in fact, a test program I have which does I/O over 500 pipes simultaneously goes twice as fast with this change, and is even faster than the non-threaded RTS (Windows only - Unix changes are in the pipeline too). - openFd: take an extra parameter to specify socketness of the file descriptor rather than assuming that all streams are sockets. Some streams (eg. pipes) aren't sockets. ] [[project @ 2004-06-02 16:00:02 by simonmar] simonmar**20040602160002 Add __hscore_PrelHandle_{send,recv} ] [[project @ 2004-06-02 12:35:11 by simonmar] simonmar**20040602123511 The lock arrays are too small on Windows, leading to buffer overruns and crashes when a program opens too many files. The problem is that on Windows, we shouldn't use FD_SETSIZE to get the max number of file descriptors: this is set to 64 in the mingw includes. The real maximum is 2048 (according to the crt sources), so we now hardwire that in. Also, put in a runtime check that we aren't overruning this array. MERGE TO STABLE ] [[project @ 2004-05-27 11:32:03 by simonpj] simonpj**20040527113203 Inline the default method for newArray; big perf boost; comments with the pragma ] [[project @ 2004-05-25 09:27:16 by simonmar] simonmar**20040525092716 Small performance hack in maxBound::Word. ] [[project @ 2004-05-25 09:11:57 by simonpj] simonpj**20040525091157 Remove spaces around the "%" when showing ratios. This is not absolutely strictly according to the H98 report, but it was suggested by Doug McIlroy According to the standard prelude, a list of Ratios prints like this: [1 % 1,1 % 2,1 % 3,1 % 4], which strongly suggests the grouping [1 % (1,1) % (2,1) % (3,1) % 4]. Even standing alone outside of lists, the style is at odds with mathematical custom. When did you last see 1/2 written as 1 / 2? ] [[project @ 2004-05-10 09:22:59 by malcolm] malcolm**20040510092259 RawSystem inclusion belongs inside the __GLASGOW_HASKELL__ ifdef. ] [[project @ 2004-05-09 01:36:32 by dons] dons**20040509013632 When .hc bootstrapping, don't build the Concurrent_stubs ] [[project @ 2004-05-06 12:27:47 by wolfgang] wolfgang**20040506122747 Make the documentation and the error messages match the way the threaded RTS is used nowadays (the -threaded flag to ghc rather than ./configure --enable-threaded-rts) MERGE TO STABLE ] [[project @ 2004-05-06 08:44:52 by simonmar] simonmar**20040506084452 Move the definition of rawSystem into a separate file which we #include in the places it is needed. This is slightly better than copying the code, since we now need it in three places (ghc/utils/runghc is the 3rd). ] [[project @ 2004-04-23 18:13:07 by ross] ross**20040423181307 Hugs: use the same version of fixIO as GHC ] [[project @ 2004-04-20 15:52:18 by simonmar] simonmar**20040420155218 New version of fixIO which does eager blackholing. ] [[project @ 2004-04-20 15:49:58 by simonmar] simonmar**20040420154958 - comments on INLINability of unsafePerformIO - change unsafeInterleaveIO from NOINLINE to INLINE(!) we believe this is safe. Interestingly, there's now a good reason to use unsafeInterleaveIO. ] [[project @ 2004-04-20 09:18:46 by simonmar] simonmar**20040420091846 Fix a file descriptor leak in openFile: if openFd fails, then we weren't closing the newly created descriptor. ] [[project @ 2004-04-14 09:01:18 by simonmar] simonmar**20040414090118 indent: don't use tab characters ] [[project @ 2004-04-06 08:54:02 by panne] panne**20040406085402 Tiny fix in Haddock markup ] [[project @ 2004-04-05 08:21:39 by simonpj] simonpj**20040405082139 Use consistent capitalisation ] [[project @ 2004-03-30 17:54:28 by ross] ross**20040330175428 fix a warning ] [[project @ 2004-03-30 17:02:59 by ross] ross**20040330170259 track Data/Generics/* twists ] [[project @ 2004-03-30 15:31:35 by ralf] ralf**20040330153135 We decided that we want the gunfold primitive back. This avoids some hassle with bottoms and strict datatypes. The compiler now also derives gunfold. ] [[project @ 2004-03-30 07:05:46 by panne] panne**20040330070546 Added withArrayLen and withArrayLen0 ] [[project @ 2004-03-27 14:15:24 by panne] panne**20040327141524 This package is named "base", not "core". ] [[project @ 2004-03-27 13:18:12 by panne] panne**20040327131812 * Merged Martin Sj-Aögren's patch for multiline descriptions-b * Nuked some TABs in favour of space + some small reformatting * Updated copyright ] [[project @ 2004-03-24 16:59:51 by simonmar] simonmar**20040324165951 Add caveat about finalizers (don't refer to Handles from finalizers). ] [[project @ 2004-03-22 14:48:56 by malcolm] malcolm**20040322144857 For nhc98, at last include the Typeable macros which define the instance decls. ] [[project @ 2004-03-21 19:07:00 by ralf] ralf**20040321190701 Implemented renaming for Data.Typeable according to http://www.haskell.org//pipermail/libraries/2004-March/001846.html ] [[project @ 2004-03-20 18:26:40 by ross] ross**20040320182641 change instances of Typeable to macros ] [[project @ 2004-03-20 13:31:06 by ross] ross**20040320133106 revert a couple of tcnames for greater consistency (fixes dynamic001). ] [[project @ 2004-03-20 12:42:27 by ross] ross**20040320124228 Comments (and deleted some of the blank lines Ralf is so fond of). ] [[project @ 2004-03-20 02:37:18 by ross] ross**20040320023718 clean up the TypeableN stuff a bit: GHC uses overlapping instances; everyone else uses explicit instances using provided defaults. Macros paper over the difference. ] [[project @ 2004-03-19 20:31:50 by panne] panne**20040319203150 HACK: Unbreak the Hugs build again, Typeable left the realm of Haskell98 one more time. I slowly doubt if this module belongs to the "base" package at all... If it stays there, things should better be tested with Hugs and nh98 before committing, the latter build probably breaks, too. ] [[project @ 2004-03-19 11:00:02 by simonmar] simonmar**20040319110002 - fix one performance bug: we weren't updating the bucket count when expanding the hash table, so too many expansions were happening. - slight improvement to hashString: if we use foldl rather than foldr, the resulting code uses an accumulating parameter and runs in linear stack space. ] [[project @ 2004-03-19 10:45:42 by simonmar] simonmar**20040319104542 Bugfix for insert (from the missing-prime class of bugs) ] [[project @ 2004-03-17 23:22:51 by ralf] ralf**20040317232251 Installed genneric instances for Typeable1, ..., Typeable7. Updated Data/Generics/Instances.hs accordingly. ] [[project @ 2004-03-16 15:19:36 by ralf] ralf**20040316151936 I thought that I removed that one. ] [[project @ 2004-03-16 13:46:07 by ralf] ralf**20040316134608 Some more refactoring and renaming to be aligned with the boilerplate II paper. Removed the weird module Generics.Reify, the code of which still lives in testsuite (see example reify.hs). One will also need to cvs upd the compiler which again changed slightly with regard to deriving Data. ] [[project @ 2004-03-16 10:04:17 by ross] ross**20040316100417 comment typo ] [[project @ 2004-03-08 10:22:09 by malcolm] malcolm**20040308102209 nhc98 (built by ghc/solaris) needs more stack to make System.Time. ] [[project @ 2004-03-05 18:00:35 by malcolm] malcolm**20040305180036 Plumb System.Time and System.CPUTime into nhc98 libraries build. ] [[project @ 2004-03-03 19:25:41 by malcolm] malcolm**20040303192541 #ifdefs for nhc98. ] [[project @ 2004-03-03 11:47:42 by ross] ross**20040303114742 withObject -> with ] [[project @ 2004-03-02 22:23:59 by ralf] ralf**20040302222400 Once more revised the Data class. You will need to cvs upd the compiler as well. ] [[project @ 2004-03-01 17:25:46 by malcolm] malcolm**20040301172546 nhc98: ensure the Either type is identical with Prelude.Either. ] [[project @ 2004-03-01 14:47:30 by simonmar] simonmar**20040301144730 small improvements from Ian Lynagh ] [[project @ 2004-02-28 15:35:28 by ralf] ralf**20040228153528 Code that uses deriving (... Data ...) will require an updated *compiler* to be in line with these new boilerplate modules. Overall changes: - Revised datatype/constructor representations. - Enhanced API for construction and observation. - Added many Data instances for prelude-like types. ] [[project @ 2004-02-27 14:48:16 by malcolm] malcolm**20040227144816 To make it compile with nhc98, #ifdef out the Typeable[12] instances. ] [[project @ 2004-02-27 10:27:41 by simonmar] simonmar**20040227102741 Update the comments in here after changes in rev. 1.17. ] [[project @ 2004-02-26 18:34:14 by ross] ross**20040226183414 instances for Ordering and tuples (up to 5) ] [[project @ 2004-02-26 18:06:51 by ralf] ralf**20040226180652 Simplified kind-polymorphic boilerplate stuff. ] [[project @ 2004-02-25 21:20:04 by ralf] ralf**20040225212004 Follow-up fix triggered by yesterday's major scrap your boilerplate commit. ] [[project @ 2004-02-25 20:10:18 by ralf] ralf**20040225201018 Thanks to Sven Panne. The module should be back to Haskell 98 or at least should not break hugs anymore. ] [[project @ 2004-02-25 19:21:20 by krasimir] krasimir**20040225192121 Added finalizeForeignPtr function ] [[project @ 2004-02-24 19:51:11 by ralf] ralf**20040224195112 Twin traversal is now based on accumulating maps. Added polymorphic type extension for type constructors. ] [[project @ 2004-02-24 19:49:58 by ralf] ralf**20040224194958 Proliferation of unsafeCoerce in Data.Typeable stopped. (There is now just one cast0 which generalises on all previous forms: cast, castss, castarr.) Started classes Typeable1/2 for unary/binary type constructors. Added instances for lists, products, sums, functions, maybies. ] [[project @ 2004-02-24 12:39:12 by simonmar] simonmar**20040224123912 New version of translate for mingw32, which correctly (allegedly) reverses the command-line translation done by the standard C runtime on Windows. ] [[project @ 2004-02-20 17:46:38 by panne] panne**20040220174638 Hugs has hSetBinaryMode, hPutBuf, and hGetBuf now. ] [[project @ 2004-02-20 10:55:09 by stolz] stolz**20040220105509 wibble (replace helper function with fromEnum) ] [[project @ 2004-02-19 10:42:50 by stolz] stolz**20040219104250 Preserve group/other bits in setPermissions. Closes: SF 899533 Directory.setPermissions bug https://sourceforge.net/tracker/index.php?func=detail&aid=899533&group_id=8032&atid=108032 ] [[project @ 2004-02-18 15:07:03 by simonmar] simonmar**20040218150704 stat() needs to be wrapped too ] [[project @ 2004-02-17 11:59:16 by simonmar] simonmar**20040217115917 Also need to wrap fstat(). ] [[project @ 2004-02-17 11:22:22 by simonmar] simonmar**20040217112223 Use C wrappers for lseek() and open(). On Linux, these functions are macro'd to different versions when large file support is on, so to make the libraries compilable with the NCG we need to use C wrappers for these functions. ] [[project @ 2004-02-17 11:21:04 by simonmar] simonmar**20040217112104 Remove unused argument from commitBuffer ] [[project @ 2004-02-17 11:16:36 by malcolm] malcolm**20040217111636 Exclude "config.h" inclusion for nhc98 as well as Hugs. ] [[project @ 2004-02-16 11:08:58 by ross] ross**20040216110858 adjust imports for portability ] [[project @ 2004-02-15 13:24:42 by ralf] ralf**20040215132443 Another commit of boilerplate refactoring related to twin traversal and type introspection. Clean-up. After some reflection the list processing module was not regarded suitable for the library (see List.hs removed). ] [[project @ 2004-02-15 13:04:47 by krasimir] krasimir**20040215130447 Added support for tracers ] [[project @ 2004-02-14 18:18:46 by ralf] ralf**20040214181848 Refactored the approach to Twin Traversal. Added some illustrative treatment of polymorphic lists. ] [[project @ 2004-02-13 17:46:32 by ross] ross**20040213174632 make import Foreign.C.String GHC-only to unbreak Hugs build ] [[project @ 2004-02-13 15:17:38 by ross] ross**20040213151740 array doc updates ] [[project @ 2004-02-13 12:13:00 by simonmar] simonmar**20040213121301 uncatched -> uncaught ] [[project @ 2004-02-12 22:35:25 by krasimir] krasimir**20040212223525 The UncatchedExceptionHandler is defined only for GHC ] [[project @ 2004-02-12 21:23:48 by krasimir] krasimir**20040212212349 Added interface to set/get handler for uncatched exceptions. The handler is invoked from the GHC.TopHandler.topHandler or Control.Concurrent.childHandler when an exception is catched. ] [[project @ 2004-02-12 14:55:55 by simonpj] simonpj**20040212145555 Comments ] [[project @ 2004-02-12 14:55:31 by simonpj] simonpj**20040212145531 Documentation for floatToDigits ] [[project @ 2004-02-12 14:55:05 by simonpj] simonpj**20040212145505 Explicit for-alls for Monad (so desugaring knows which order to give type args) ] [[project @ 2004-02-12 14:54:19 by simonpj] simonpj**20040212145419 Document non-std behaviour of array ] [[project @ 2004-02-11 14:01:06 by simonmar] simonmar**20040211140106 Put double quotes around the -#include flag, so that command-lines can be cut-n-pasted. ] [[project @ 2004-02-05 18:55:47 by ross] ross**20040205185548 moved the monad transformer libraries into a separate mtl package. ] [[project @ 2004-02-05 11:58:21 by malcolm] malcolm**20040205115821 Fix definition of 'partition' to match the (non-)strictness mandated by the Haskell'98 Libraries Report version. ] [[project @ 2004-02-05 11:45:59 by ross] ross**20040205114559 Hugs only: use the configure-set variable INLINE_ONLY instead of `extern inline' (which works for gcc but not C99 compilers). ] [[project @ 2004-02-04 17:13:53 by ross] ross**20040204171353 plug a warning ] [[project @ 2004-02-04 17:00:00 by malcolm] malcolm**20040204170000 Excluding 'unfoldTreeM' and 'unfoldForestM' is overkill for nhc98. A simpler workaround for the type inference bug is just to omit one type signature from the mutually recursive pair. ] [[project @ 2004-02-04 10:52:28 by malcolm] malcolm**20040204105228 Plumb in Data.Queue for nhc98. ] [[project @ 2004-02-04 10:51:18 by malcolm] malcolm**20040204105118 Exclude functions 'unfoldTreeM' and 'unfoldForestM' in nhc98. For some unknown reason they result in a type inference error: "No default for Prelude.Monad" ] [[project @ 2004-02-02 11:54:32 by ross] ross**20040202115432 add some unfolds (pure, monadic depth-first and monadic breadth-first) ] [[project @ 2004-01-28 10:04:25 by simonpj] simonpj**20040128100425 --------------------------------------- Fix the WinME/98/95 double-backslash bug --------------------------------------- Merge to stable branch, at least once we are sure it's right Backslashes should not be escaped in command-line arguments for rawSystem, on Win32. This only actually causes failures on WinME/98/95, and we can't test that since we don't have it. But this fix seems right regardless. There are extensive new comments in libraries/base/System/Cmd.hs which describe the issues. ] [[project @ 2004-01-27 09:52:37 by ross] ross**20040127095237 generalize the type of minusFM ] [[project @ 2004-01-26 11:24:54 by simonmar] simonmar**20040126112454 - fix bug(s) in emptySampleVar - add isEmptySampleVar, with similar caveats on its use as isEmptyMVar ] [[project @ 2004-01-23 13:35:16 by ross] ross**20040123133516 add a Functor instance for FiniteMap ] [[project @ 2004-01-21 17:28:47 by simonmar] simonmar**20040121172847 __hscore_set_errno() should return void, not int. ] [[project @ 2004-01-20 13:57:25 by ross] ross**20040120135725 use fields in Node ] [[project @ 2004-01-14 14:58:57 by ralf] ralf**20040114145857 Added gdepth to determine depth of a term. ] [[project @ 2004-01-14 14:19:41 by ross] ross**20040114141943 (Hugs only) add hIsTerminalDevice, hGetEcho and hSetEcho. ] [[project @ 2004-01-14 11:16:10 by malcolm] malcolm**20040114111610 Unbreak for nhc98 after recent errno changes. ] [[project @ 2004-01-10 12:53:42 by panne] panne**20040110125343 Haddock fixes ] [[project @ 2004-01-08 15:27:29 by simonmar] simonmar**20040108152729 update threadDelay docs: delay is rounded up. ] [[project @ 2004-01-07 12:43:50 by simonmar] simonmar**20040107124350 Mention that threadDelay rounds its argument down to a multiple of 0.02s. ] [[project @ 2004-01-06 14:01:52 by ross] ross**20040106140152 fix for Hugs ] [[project @ 2004-01-06 12:40:00 by simonmar] simonmar**20040106124001 Fix, and simplify, the getting/setting of errno in Foreign.C.Error. It was previously wrong: although we called a C function to get the location of errno (correct), we cached the result in a CAF which was wrong because the location is OS thread dependent. We must call the C function every time we need the value of errno. I also simplified things by making the getter/setter functions inlined in the same way as the other C fragments in this library, and putting them in HsBase.h. MERGE TO STABLE ] [[project @ 2004-01-06 10:31:05 by ross] ross**20040106103105 new Queue type, using Chris Okasaki's cute 3-list implementation. ] [[project @ 2004-01-05 17:44:30 by ross] ross**20040105174430 Make runST(U)Array work with Hugs. This includes explicitly using unsafeFreezeSTArray rather than unsafeFreeze, to avoid relying on rules. ] [[project @ 2004-01-05 16:47:09 by ross] ross**20040105164709 Change the drawing of trees so that long labels work better. The new drawings are narrower but a little longer than before. ] [[project @ 2004-01-05 16:03:34 by simonmar] simonmar**20040105160334 Add runSTArray and runSTUArray, as suggested by John Meacham. runSTUArray showed up an interesting deficiency in the type system (see comments for details). ] [[project @ 2004-01-05 10:07:52 by ross] ross**20040105100752 doc tidy-ups ] [[project @ 2004-01-05 10:07:25 by ross] ross**20040105100725 doc tweak ] [[project @ 2004-01-02 19:03:14 by panne] panne**20040102190314 Annual copyright update ] [[project @ 2003-12-29 17:16:42 by panne] panne**20031229171642 Updated my email address ] [[project @ 2003-12-23 13:58:17 by simonmar] simonmar**20031223135818 - Fix up mingw build after changes to hGetBuf etc. I don't think that hGetBufNonBlocking works correctly on Windows, because there doesn't seem to be a non-blocking read primitive. I haven't tested it, however. - Clean up Unix versions of the low-level read/write functions in Handle.hs. Now that these aren't used on Windows, they can be made simpler. ] [[project @ 2003-12-23 12:35:34 by simonmar] simonmar**20031223123534 Fix yet another bug in hGetBuf/hGetBufNonBlocking ] [[project @ 2003-12-22 12:41:52 by simonmar] simonmar**20031222124152 add fillReadBufferWithoutBlocking (required for fixed hGetBufNonBlocking implementation in IO.hs rev. 1.20) ] [[project @ 2003-12-22 12:23:35 by simonmar] simonmar**20031222122335 - Fix hGetBuf & hGetBufNonBlocking. There were various bugs in these two functions, so I did a complete rewrite (again). They are quite hard to get right it seems, so I've put together a test case (shortly to be added to the test suite). - Change to the semantics of hWaitForInput: when given a negative time argument, this function will wait indefinitely for input to arrive. It will wait in a thread-friendly way, unlike when the time argument is positive. The docs now admit that hWaitForInput is buggy when given a positive time value. hWaitForInput h (-1) is now the approved way to wait for input before calling hGetBufNonBlocking. MERGE TO STABLE (hGetBuf is broken in 6.2). ] [[project @ 2003-12-22 10:56:42 by simonmar] simonmar**20031222105642 performGC should really do a major GC - this was broken at some point. ] [[project @ 2003-12-17 17:15:12 by sof] sof**20031217171512 merge rev. 1.13.2.1 ] [[project @ 2003-12-17 17:13:47 by sof] sof**20031217171347 merge rev 1.48.2.4 ] [[project @ 2003-12-16 16:54:42 by simonmar] simonmar**20031216165442 Add Show instance for Set ] [[project @ 2003-12-16 16:54:12 by simonmar] simonmar**20031216165412 Add Show instance for FiniteMap ] [[project @ 2003-12-15 17:59:05 by panne] panne**20031215175905 Fixed #ifdefs for Cygwin ] [[project @ 2003-12-12 18:29:26 by sof] sof**20031212182926 showIntAtBase: - implementation uses quotRem [where the remainder isn't always non-negative -- ditto for divMod, so there's no trivial fix], negative bases aren't supported; catch this. - separate argument validity checking from actual digitisation. ] [[project @ 2003-12-06 17:48:49 by ralf] ralf**20031206174849 Added Data instances for triples and quadruples. ] [[project @ 2003-12-04 18:25:51 by panne] panne**20031204182551 Synched #ifdefs, but only 90% sure if I got it right... ] [[project @ 2003-11-28 11:08:54 by simonmar] simonmar**20031128110854 Doc wibble ] [[project @ 2003-11-26 10:00:09 by simonmar] simonmar**20031126100009 oops, revert accidental commit ] [[project @ 2003-11-26 09:55:22 by simonmar] simonmar**20031126095526 Declare some libraries to be "stable". ] [[project @ 2003-11-23 22:19:35 by ralf] ralf**20031123221935 Added the missing Data instance for Either. ] [[project @ 2003-11-23 12:25:02 by ralf] ralf**20031123122503 Refactored some alias for generic builders and readers. Worked out some interested stuff for reification of type structures. ] [[project @ 2003-11-23 12:23:49 by ralf] ralf**20031123122349 Added some trivial observers for type representations. ] [[project @ 2003-11-21 16:24:44 by sof] sof**20031121162444 code tidyup ] [[project @ 2003-11-15 22:31:16 by panne] panne**20031115223116 Decouple packages a bit more again: The prologue of the combined index is now generated via shell magic from the package prologues. As a nice side effect, some autoconf magic is gone, so configure.ac is effectively empty now (but not for long... :-) ] [[project @ 2003-11-13 19:23:12 by panne] panne**20031113192312 Markup fix ] [[project @ 2003-11-13 14:43:58 by ross] ross**20031113144358 Hugs-only tweak ] [[project @ 2003-11-11 11:50:52 by simonmar] simonmar**20031111115053 Convert to use Haddock 0.6's combined contents/index functionality for the hierarchical library docs. HEADS UP: you need Haddock 0.6 in order to run 'make html' in fptools/libraries now. ] [[project @ 2003-11-10 15:55:13 by sof] sof**20031110155513 ALL_DIRS: added Control/Parallel ] [[project @ 2003-11-10 15:54:55 by sof] sof**20031110155455 brought into the hier-lib world; stripped away outdated code & comments ] [[project @ 2003-11-10 15:32:43 by simonmar] simonmar**20031110153243 Change the documentation title from "Haskell Core Libraries" to "Haskell Hierarchical Libraries". ] [[project @ 2003-11-06 17:34:00 by simonmar] simonmar**20031106173400 Doc wibbles ] [[project @ 2003-11-06 12:50:22 by ross] ross**20031106125024 import Prelude if haddocking ] [[project @ 2003-11-05 15:05:12 by ross] ross**20031105150512 doc updates for mallocForeignPtr and friends ] [[project @ 2003-11-05 10:43:10 by simonmar] simonmar**20031105104310 Better documentation for unsafeThaw, unsafeFreeze. ] [[project @ 2003-11-05 09:58:01 by simonmar] simonmar**20031105095801 Fix a memory leak in __hscore_readdir() which meant that one struct dirent was leaked at the end of each directory read. Bug-reported-by: David Roundy What-a-great-system: Valgrind ] [[project @ 2003-11-04 21:59:23 by ross] ross**20031104215923 Hugs only: add finalizers with environments, as per the latest FFI draft. ] [[project @ 2003-11-02 17:52:09 by ralf] ralf**20031102175209 Minor extension to enable rebuild of Strafunski. ] [[project @ 2003-11-02 16:30:16 by panne] panne**20031102163016 * Added workaround for broken sigemptyset * Use #if, not #ifdef for feature tests * Nuked CVS keyword ] [[project @ 2003-11-02 00:06:23 by panne] panne**20031102000623 Added an extremely ugly workaround for the broken sigfillset macro on OpenBSD, which misses a cast. Is there a better way? Probably merge to STABLE. ] [[project @ 2003-10-30 18:51:26 by sof] sof**20031030185126 drop uses of __MINGW32__, no longer needed ] [[project @ 2003-10-27 12:09:44 by stolz] stolz**20031027120944 Avoid setting O_NONBLOCK when already set. ] [[project @ 2003-10-27 09:56:11 by ross] ross**20031027095611 unswap UNBLOCK/SETMASK (merge to STABLE) ] [[project @ 2003-10-21 14:32:43 by sof] sof**20031021143244 appease the GHC bigwigs ] [[project @ 2003-10-21 14:00:20 by simonmar] simonmar**20031021140020 oops, revert parts of previous commit that weren't supposed to be included. ] [[project @ 2003-10-21 13:57:39 by simonmar] simonmar**20031021135739 Fix bug in hGetBufNonBlocking that meant it would sometimes block. ] [[project @ 2003-10-21 13:31:44 by simonmar] simonmar**20031021133144 - Add _LE duals of the _GE functions - Add minFM and maxFM From: George Russell ] [[project @ 2003-10-21 13:27:13 by simonmar] simonmar**20031021132713 Make peekArray0 run in constant stack-space by testing the length of the array first, then calling peekArray (which works backwards from the end so it can be tail-recursive). ] [[project @ 2003-10-21 13:24:31 by simonmar] simonmar**20031021132431 Make the GHC implementation of peekCString run in constant stack-space by checking the length of the array first and then working backwards from the end. Interestingly, this version is faster than the original. ] [[project @ 2003-10-20 20:00:25 by panne] panne**20031020200025 Again: Fixed previous commit. Our QA department must really be on an extended vacation... :-] ] [[project @ 2003-10-20 15:56:52 by simonmar] simonmar**20031020155652 Convert Unicode.hsc to a plain .hs file to fix bootstrapping problems. ] [[project @ 2003-10-20 13:16:58 by simonmar] simonmar**20031020131724 Comment use of $(HavePosixRegex) ] [[project @ 2003-10-20 12:31:00 by ross] ross**20031020123100 add System.Posix.Signals to Hugs ] [[project @ 2003-10-17 16:48:43 by ross] ross**20031017164843 Hugs only: add most of the rest of System.Posix (I wonder why SIG_UNBLOCK and SIG_SETMASK are switched in HsBase.h) ] [[project @ 2003-10-16 16:26:43 by ross] ross**20031016162643 fix a couple of id references in haddock docs ] [[project @ 2003-10-16 00:18:34 by ross] ross**20031016001834 add withArgs and withProgName to Hugs. No change for GHC, but does change the docs, so please merge to STABLE. ] [[project @ 2003-10-13 05:23:53 by sof] sof**20031013052353 mingw tweaks + add cbits/consUtils.c to CBITS ] [[project @ 2003-10-13 05:22:59 by sof] sof**20031013052259 support CFoo iff HTYPE_FOO_T is defined ] [[project @ 2003-10-13 05:21:37 by sof] sof**20031013052154 more mind-numbing CPP tweaking ] [[project @ 2003-10-13 05:20:37 by sof] sof**20031013052037 extra_libraries: win32 CPP tweak ] [[project @ 2003-10-13 05:09:40 by sof] sof**20031013050940 prev commit too strict wrt mingw ] [[project @ 2003-10-13 03:21:20 by sof] sof**20031013032120 cope if regex.h isn't supported by target ] [[project @ 2003-10-13 03:19:48 by sof] sof**20031013031948 make it useable with msvc + gcc-mingw ] [[project @ 2003-10-09 14:01:46 by stolz] stolz**20031009140146 Fix flipped arguments to sigprocmask in getSignalMask. Noticed by: Shawn P. Garbett ] [[project @ 2003-10-09 13:59:33 by stolz] stolz**20031009135933 FreeBSD 4.X has an emtpy wctype.h, so test one of the affected functions in Unicode.hsc if it's really there. ] [[project @ 2003-10-07 16:56:33 by sof] sof**20031007165633 peekCString{Len}: tweak GHC impls (why are these provided anyway?) - Do as for Foreign.Marshal.Array.peekArray and read in length-bounded string back-to-front. - force evaluation of CChar->Char conversions. merge to STABLE. ] [[project @ 2003-10-06 13:14:36 by simonpj] simonpj**20031006131436 MERGE TO STABLE Fix trivial lexing bug involving leading zeros 045.4 was lexing as an Int, with a trailing ".4" The test is lib/Lex/lexNum ] [[project @ 2003-10-01 11:00:20 by wolfgang] wolfgang**20031001110020 Add runInUnboundThread to the export list ] [[project @ 2003-10-01 10:57:44 by wolfgang] wolfgang**20031001105744 New implementation & changed type signature of forkProcess forkProcess now has the following type: forkProcess :: IO () -> IO ProcessID forkProcessAll has been removed as it is unimplementable in the threaded RTS. forkProcess using the old type (IO (Maybe ProcessID)) was impossible to implement correctly in the non-threaded RTS and very hard to implement in the threaded RTS. The new type signature allows a clean and simple implementation. ] [[project @ 2003-09-26 09:26:13 by panne] panne**20030926092613 Saving/restoring termios is only done for GHC ] [[project @ 2003-09-25 15:14:44 by panne] panne**20030925151444 To fix dynamic linking issues with Hugs, access saved_termios via getter/setter. ] [[project @ 2003-09-25 14:44:36 by sof] sof**20030925144436 [win32]getCPUTime: comments + reduce fromIntegral use. No change in functionality. ] [[project @ 2003-09-24 14:01:18 by simonmar] simonmar**20030924140118 Add foldFM_GE, fmToList_GE, keysFM_GE, eltsFM_GE. (contributed by Tomasz Zielonka via George Russell). ] [[project @ 2003-09-24 13:26:08 by malcolm] malcolm**20030924132608 Missing dependency. ] [[project @ 2003-09-24 11:36:24 by simonmar] simonmar**20030924113624 Add some realToFrac rules for CFloat,CDouble and CLDouble, so that eg. realToFrac :: CDouble -> Double turns into a no-op. ] [[project @ 2003-09-24 11:06:54 by simonmar] simonmar**20030924110654 Move forkOS_createThread into the RTS so its implementation can be dependent on RTS_SUPPORTS_THREADS, which means we can provide a stub implementation in the !RTS_SUPPORTS_THREADS case, and hence not depend on pthread_create, which requires -lpthread. The upshot is that GHCi now works again when !RTS_SUPPORTS_THREADS. ] [[project @ 2003-09-24 10:41:11 by simonmar] simonmar**20030924104111 Add non-blocking versions of hGetBuf, hPutBuf. ] [[project @ 2003-09-24 10:32:12 by simonmar] simonmar**20030924103212 If we change the terminal settings as a result of hSetBuffering or hSetEcho, then restore them again in hs_exit(). This is just good citizenship on Unixy platforms. We *don't* just automatically save the terminal settings and restore them at the end, because that would prevent implementing stty-like programs in Haskell. This scheme is a compromise that hopefully DTRT in most cases. ] [[project @ 2003-09-23 18:59:43 by sof] sof**20030923185943 h{Get,Put}NonBlocking: win32 impl ] [[project @ 2003-09-23 17:33:12 by sof] sof**20030923173312 createPipe, createPipeEx: commented out exports (doesn't appear to be defined anywhere) ] [[project @ 2003-09-23 16:18:03 by sof] sof**20030923161803 [win32]: make it compile ] [[project @ 2003-09-23 16:13:59 by simonmar] simonmar**20030923161359 Haddock fix. ] [[project @ 2003-09-23 13:26:30 by simonmar] simonmar**20030923132630 - Add h{Get,Put}BufNonBlocking - optimise hGetBuf/hPutBuf so that they use the buffer more. Lots of small hGetBufs will now use the read buffer, rather than repeatedly calling into the OS. ] [[project @ 2003-09-23 13:23:58 by simonmar] simonmar**20030923132358 micro-optimisation ] [[project @ 2003-09-23 10:09:17 by panne] panne**20030923100917 Unbreak Show instance for Ptr caused by the changes to showHex merge to STABLE ] [[project @ 2003-09-22 13:27:19 by wolfgang] wolfgang**20030922132719 Really make the bound threads stuff compile this time (sorry). ] [[project @ 2003-09-22 11:11:54 by ross] ross**20030922111154 cosmetic: move comments inside #ifdefs to avoid confusing people (like Hugs users) who look at the preprocessed output. ] [[project @ 2003-09-22 10:20:06 by wolfgang] wolfgang**20030922102006 fix some embarassing typos in the previous commit ] [[project @ 2003-09-21 22:20:57 by wolfgang] wolfgang**20030921222057 Bound Threads ============= Introduce a way to use foreign libraries that rely on thread local state from multiple threads (mainly affects the threaded RTS). See the file threads.tex in CVS at haskell-report/ffi/threads.tex (not entirely finished yet) for a definition of this extension. A less formal description is also found in the documentation of Control.Concurrent. The changes mostly affect the THREADED_RTS (./configure --enable-threaded-rts), except for saving & restoring errno on a per-TSO basis, which is also necessary for the non-threaded RTS (a bugfix). Detailed list of changes ------------------------ - errno is saved in the TSO object and restored when necessary: ghc/includes/TSO.h, ghc/rts/Interpreter.c, ghc/rts/Schedule.c - rts_mainLazyIO is no longer needed, main is no special case anymore ghc/includes/RtsAPI.h, ghc/rts/RtsAPI.c, ghc/rts/Main.c, ghc/rts/Weak.c - passCapability: a new function that releases the capability and "passes" it to a specific OS thread: ghc/rts/Capability.h ghc/rts/Capability.c - waitThread(), scheduleWaitThread() and schedule() get an optional Capability *initialCapability passed as an argument: ghc/includes/SchedAPI.h, ghc/rts/Schedule.c, ghc/rts/RtsAPI.c - Bound Thread scheduling (that's what this is all about): ghc/rts/Schedule.h, ghc/rts/Schedule.c - new Primop isCurrentThreadBound#: ghc/compiler/prelude/primops.txt.pp, ghc/includes/PrimOps.h, ghc/rts/PrimOps.hc, ghc/rts/Schedule.h, ghc/rts/Schedule.c - a simple function, rtsSupportsBoundThreads, that returns true if THREADED_RTS is defined: ghc/rts/Schedule.h, ghc/rts/Schedule.c - a new implementation of forkProcess (the old implementation stays in place for the non-threaded case). Partially broken; works for the standard fork-and-exec case, but not for much else. A proper forkProcess is really next to impossible to implement: ghc/rts/Schedule.c - Library support for bound threads: Control.Concurrent. rtsSupportsBoundThreads, isCurrentThreadBound, forkOS, runInBoundThread, runInUnboundThread libraries/base/Control/Concurrent.hs, libraries/base/Makefile, libraries/base/include/HsBase.h, libraries/base/cbits/forkOS.c (new file) ] [[project @ 2003-09-16 13:46:36 by simonmar] simonmar**20030916134636 Don't strip the trailing slash from the filename '/'. ] [[project @ 2003-09-16 13:03:37 by simonmar] simonmar**20030916130337 Legacy Removal ~~~~~~~~~~~~~~ The following features have been consigned to the bit bucket: _ccall_ _casm_ ``....'' (lit-lits) the CCallable class the CReturnable class ] [[project @ 2003-09-12 13:05:19 by simonmar] simonmar**20030912130520 Implement pathconf()/fpathconf() wrappers. ] [[project @ 2003-09-12 12:29:43 by simonmar] simonmar**20030912122944 Move setChildStopFlag and queryChildStopFlag to System.Posix.Signals. ] [[project @ 2003-09-10 14:45:24 by simonmar] simonmar**20030910144524 Quick hack to work around the dynamic exception crashes in GHCi. The problem is this: the Data.Typeable library (Data.Dymamic in previous versions of GHC) maintains an internal cache mapping type names to unique numbers, and this cache is used for fast comparisons on TypeReps. In GHCi, there are actually two versions of the Data.Typeable library loaded: one linked to GHCi itself, and the other dynamically loaded, so there are two copies of the hash tables. The problem is that if we have a Dynamic value generated using one set of hash tables, it will erroneously appear to be of a different type when the other hash tables are used. The hack I've instigated is to use the central RTS genSym (which already exists) to generate the unique Ids, so that the two copies of the dynamic library will be using distinct Ids, and Dynamics from one will never be recognisable to the other. ] [[project @ 2003-09-10 11:46:58 by simonmar] simonmar**20030910114658 The finalizer for a ForeignPtr created with mallocForeignPtr better "touch#" the MutableByteArray# after running the other finalizers, otherwise the memory might be garbage collected before we've finished running the finalizers. This can cause crashes if you add any extra finalizers to a ForeignPtr created with mallocForeignPtr. SourceForge bug: #802692 ] [[project @ 2003-09-08 16:23:57 by ross] ross**20030908162358 ST doc adjustments ] [[project @ 2003-09-08 14:14:37 by simonmar] simonmar**20030908141437 Doc wibbles ] [[project @ 2003-09-05 17:36:40 by ross] ross**20030905173642 minimal docs ] [[project @ 2003-09-05 15:06:48 by ross] ross**20030905150648 doc tweaks ] [[project @ 2003-09-03 10:49:19 by simonmar] simonmar**20030903104919 inputReady(): the time calculation for select() was wrong, forgetting to multiply the milliseconds value by 1000 to get microseconds. ] [[project @ 2003-09-02 16:07:08 by ross] ross**20030902160711 Deal with systems on which PATH_MAX is undefined, e.g. systems with unlimited path length, like the Hurd (also faulty installations of gcc on Solaris). In fact getCurrentDirectory only needs a long path size to use as a first approximation, so give it that. ] [[project @ 2003-09-02 15:31:02 by malcolm] malcolm**20030902153102 For nhc98, take the corrected (thanks to Ross Paterson) version of fixIO from NHC.IOExtras. ] [[project @ 2003-09-01 09:12:02 by ross] ross**20030901091207 H98 docs for Data.List ] [[project @ 2003-08-31 18:41:28 by ross] ross**20030831184130 doc tweaks ] [[project @ 2003-08-30 23:01:48 by ross] ross**20030830230150 minor haddock fixes ] [[project @ 2003-08-30 22:55:42 by ross] ross**20030830225542 docs for System.Environment & System.Exit ] [[project @ 2003-08-30 12:26:56 by ross] ross**20030830122658 docs for System.IO.Error ] [[project @ 2003-08-27 11:03:44 by simonmar] simonmar**20030827110344 isSpace should only recognise Latin-1 whitespace characters, according to the report. Perhaps we should have isUniSpace, too? ] [[project @ 2003-08-27 08:41:07 by simonmar] simonmar**20030827084107 Remove duplicate type signature ] [[project @ 2003-08-26 20:41:46 by ross] ross**20030826204146 Hugs only: remove unused argument from toClockTimePrim ] [[project @ 2003-08-26 10:39:55 by ross] ross**20030826103957 Document Data.Char from the H98 Report. Note that the new implementations of isSpace and isDigit are inconsistent with this documentation -- maybe two versions of them are needed? ] [[project @ 2003-08-23 10:25:52 by ross] ross**20030823102552 non-GHC only: hide functions defined in the Prelude ] [[project @ 2003-08-23 00:08:02 by sof] sof**20030823000802 [win32]renameFile: Try bridging between GetLastError() error values and the errno-based error handling code in System.Directory. As was, errors ended up being reported as 'no errors'. ] [[project @ 2003-08-22 23:44:40 by sof] sof**20030822234440 pin better location info on IOErrors ] [[project @ 2003-08-22 22:11:03 by sof] sof**20030822221103 [GHC only]: Added missing 'config.h' #include ; needed by getProgName Merge to STABLE. ] [[project @ 2003-08-22 08:58:30 by panne] panne**20030822085831 Added a workaround for the Haddock problems introduced by the circular module dependencies regarding Unicode handling. ] [[project @ 2003-08-20 15:54:45 by panne] panne**20030820155445 Nuked FPTOOLS_O_BINARY test and use FP_CHECK_CONST instead, which is shorter and better (e.g. cross compilation). ] [[project @ 2003-08-20 15:44:19 by panne] panne**20030820154419 * Cleaned up FP_CHECK_ALIGNMENT test a bit. * Nuked FPTOOLS_CHECK_CCONST test in favour of a more general one which handles cross compilation and languages different from C. ] [[project @ 2003-08-20 10:22:44 by simonmar] simonmar**20030820102244 Use the wide-char classifications from the C library if available. This gives us Unicode-aware isLower, isUpper, isAlpha etc. On Unix, you have to set your locale to something. This is usually done by setting the environment variable LANG, eg. export LANG=en This stuff *should* also work on Windows, except that Windows uses a 16-bit wchar_t so will get it wrong for characters > '\xffff'. However, I figured it was better to use the system-supplied functionality rather than trying to implement this stuff ourselves. ] [[project @ 2003-08-19 16:39:13 by simonmar] simonmar**20030819163914 Use the wide-char classifications from the C library if available. This gives us Unicode-aware isLower, isUpper, isAlpha etc. On Unix, you have to set your locale to something. This is usually done by setting the environment variable LANG, eg. export LANG=en This stuff *should* also work on Windows, except that Windows uses a 16-bit wchar_t so will get it wrong for characters > '\xffff'. However, I figured it was better to use the system-supplied functionality rather than trying to implement this stuff ourselves. ] [[project @ 2003-08-19 16:34:11 by simonmar] simonmar**20030819163411 Fix reversed flag in mkRegexWithOpts ] [[project @ 2003-08-19 16:33:03 by simonmar] simonmar**20030819163303 Fix incorrect Haddock syntax ] [[project @ 2003-08-18 12:46:21 by panne] panne**20030818124621 Revamped altzone detection. Note that we test only for successful compilation now, not for successful linking, but this is what most autoconf macros do. ] [[project @ 2003-08-11 18:39:56 by ross] ross**20030811183956 rename the cute presentations and use derived instances of Read and Show, as suggested by Tomasz Zielonka. ] [[project @ 2003-08-11 13:18:22 by ross] ross**20030811131822 expose unsafeInterleaveIO to Hugs ] [[project @ 2003-08-08 10:55:22 by malcolm] malcolm**20030808105522 Adjust the default search path for building library packages with nhc98. ] [[project @ 2003-08-05 17:25:30 by ross] ross**20030805172531 fix some identifier links ] [[project @ 2003-08-05 17:24:40 by ross] ross**20030805172441 add type signatures for Haddock's benefit ] [[project @ 2003-08-05 17:16:16 by ross] ross**20030805171616 adjust exclusions for Hugs ] [[project @ 2003-08-05 12:13:29 by panne] panne**20030805121330 Moved QuickCheck into separate package ] [[project @ 2003-08-04 18:40:47 by panne] panne**20030804184047 Export HandlePosition ] [[project @ 2003-08-04 18:20:44 by panne] panne**20030804182044 Ooops, forgot one link in the last commit... ] [[project @ 2003-08-04 18:07:49 by panne] panne**20030804180750 Export ReadS from Text.ParserCombinators.ReadP, curing CPP trickery a bit ] [[project @ 2003-08-04 17:52:33 by panne] panne**20030804175233 Synched comments with reality ] [[project @ 2003-08-04 17:30:53 by panne] panne**20030804173053 Fixed hyperlink (at least for GHC docs :-) ] [[project @ 2003-08-04 14:47:37 by panne] panne**20030804144737 Fixed hyperlink ] [[project @ 2003-08-04 14:41:55 by simonmar] simonmar**20030804144155 Make a bunch of foreign imports "unsafe". ] [[project @ 2003-08-04 13:49:28 by panne] panne**20030804134928 Fixed hyperlink for exitWith ] [[project @ 2003-08-04 10:05:32 by ross] ross**20030804100533 docs copied from the report ] [[project @ 2003-08-01 15:56:11 by panne] panne**20030801155611 Warning police ] [[project @ 2003-08-01 10:00:48 by ross] ross**20030801100049 Swapped argument order of `newForeignPtr' and `addForeignPtrFinalizer' to track FFI spec. (Maybe the Conc ones should do the same?) This will break NHC. ] [[project @ 2003-08-01 09:59:04 by ross] ross**20030801095904 tiny doc fix ] [[project @ 2003-07-31 17:45:22 by ross] ross**20030731174530 move Parsec out of base into a package parsec (no code changes) ] [[project @ 2003-07-31 10:48:50 by panne] panne**20030731104851 Merge Foreign.C.TypesISO into Foreign.C.Types ] [[project @ 2003-07-31 09:28:47 by ralf] ralf**20030731092847 Cosmetic changes. Documentation of Data.Generics at http://www.cs.vu.nl/boilerplate/ is now also again well in line with the major revision of Data.Generics from last week. ] [[project @ 2003-07-30 08:13:16 by ralf] ralf**20030730081316 Rolled back to newtype now that the compiler does not panic anymore for the module Data/Generics/Text.hs. ] [[project @ 2003-07-29 12:36:52 by ross] ross**20030729123652 exclude Data.Generics.* ] [[project @ 2003-07-29 12:03:13 by ross] ross**20030729120317 trim imports ] [[project @ 2003-07-28 15:03:05 by panne] panne**20030728150309 Markup fixes ] [[project @ 2003-07-28 12:11:46 by malcolm] malcolm**20030728121146 Use new Data.Dynamic/Data.Typeable story in nhc98. ] [[project @ 2003-07-26 12:43:58 by ralf] ralf**20030726124400 Renamed Data/Generics/Strings to .../Text. Implemented generic read by using Text/ParserCombinators/ReadP. This is now how it really should look like. Did some more refactoring in the modules of Data/Generics. I consider the library relatively stable by now. Very experimental stuff is only in Data/Generics/Reify.hs ( I was a bit too optimistic yesterday regarding the commitibility of Data/Generics. SPJ wanted me to use Text/ParserCombinators/ReadP for generic read what I did, which revealed a funny compiler bug. SPJ will probably report on this very soon. The compiler does not panic if I turn ReadP from a newtype into a datatype, what I have temporarily done. I hope this is Ok for the moment. ) ] [[project @ 2003-07-25 15:03:38 by simonpj] simonpj**20030725150338 Wibbles to gread; Ralf to check ] [[project @ 2003-07-25 14:36:38 by ralf] ralf**20030725143650 Data.Generics is up and running again! The testsuite is passed 100% successful. Much of the Data.Generics code looks better. So the transition to a new Data class and the deriving support is completed. Some detailed changes: - Rolled back type change for gmapQ. (We rather added gmapQl and gmapQr.) - Renamed gmapF and other "F" to Mp like MonadPlus. - Reconstructed gread. ] [[project @ 2003-07-25 10:03:51 by simonmar] simonmar**20030725100351 regcomp: don't attach the regfree finalizer if c_regcomp failed. ] [[project @ 2003-07-24 16:24:21 by ralf] ralf**20030724162422 Addressed Ross' concerns as follows: Included all of Data/Types.hs into Data/Typeable.hs. It really makes sense there anyway. ] [[project @ 2003-07-24 15:28:06 by simonpj] simonpj**20030724152807 Minor bugs in generics ] [[project @ 2003-07-24 15:13:44 by ross] ross**20030724151344 exclude Data.Generics.* from Hugs ] [[project @ 2003-07-24 14:20:23 by panne] panne**20030724142023 Quick fix from Ross to get the Hugs builds working again. I'm not sure what the right fix is, e.g. is moving sameType to Data.Types enough? ] [[project @ 2003-07-24 13:53:20 by simonmar] simonmar**20030724135320 Make pre-processing primops.txt from this directory work properly. ] [[project @ 2003-07-24 12:19:57 by ralf] ralf**20030724122000 Major refactoring of Data/Generics. This also affects the compiler (because of deriving issues). This is an intermediate commit. The library is supposed to compile fine. But the deriving stuff for Data needs to be revised. The testsuite for Data/Generics will not pass. gread is broken at the moment. So it is strongly recommended not to cvs upd for a few hours or a day. Detailed description of changes: - Split up Data/Dynamic into Data/Typeable and Data/Dynamic. (This makes clear what part is about TypeReps and cast vs. dynamics. The latter is not needed by Data/Generics.) - Renamed Data/include/Dynamic.h -> Typeable.h to end confusion. - Split up Data/Generics.hs in a set of modules. - Revised class Data: - Got rid of gunfold but added fromConstr as more primtive one - Revised representations of constructors - Revised treatment of primitive types - Revised type of gmapQ; preserved old gmapQ as gmapL - Added a module Data/Types.hs for treatment of types as values. This is going somewhere. ] [[project @ 2003-07-24 12:05:42 by panne] panne**20030724120542 GCC 3.3 is a bit picky about macros with a varying number of arguments, even when they are skipped. Strange... ] [[project @ 2003-07-24 10:41:38 by simonpj] simonpj**20030724104138 Add more comments ] [[project @ 2003-07-24 07:49:33 by simonpj] simonpj**20030724074933 A gross hack to stop the pretty-printer going into an infinite loop. What happens is that 'indent' is given a negative number, and that made it loop. This patch checks for the negative case, so at least it doesn't loop -- but I don't understand why the indent ever goes negative, so there's still something wrong here. ] [[project @ 2003-07-23 15:39:54 by simonmar] simonmar**20030723153954 GHC/PrimopWrappers.hs fix for BootingFromHc ] [[project @ 2003-07-23 10:27:49 by wolfgang] wolfgang**20030723102749 Fix regular expressions for Mac OS X. For some reason, Apple uses 64-bit offsets in regmatch_t, so we have to use (#type regoff_t) instead of CInt. MERGE TO STABLE. ] [[project @ 2003-07-22 14:38:02 by simonpj] simonpj**20030722143802 Remove out-of-date apology about mkTyConApp; merge to stable ] [[project @ 2003-07-22 12:55:50 by simonmar] simonmar**20030722125550 Export hShow (GHC only for now). ] [[project @ 2003-07-22 09:55:05 by ross] ross**20030722095506 jiggle to make System.Posix.Directory work for Hugs ] [[project @ 2003-07-21 16:50:20 by simonmar] simonmar**20030721165021 GHC's instance Show Handle is wrong, because it is impure. This commit makes the Show instance pure by restricting what it shows to just the filename. I moved the filename from the Handle__ (the mutable portion of the Handle) to the Handle proper, to facilitate this. This might result in a small performance improvment because Handle__ is now slightly smaller. Also added: GHC.Handle.hShow :: Handle -> IO String which provides the old functionality, but now in the IO monad. Pending discussion on the libraries list, this may be exposed by System.IO. Also, while I was here, I did something I've been meaning to do for a long time: change the godawful IOError Show instance. Previously: illegal operation Action: hGetChar Handle: {loc=,type=semi-closed,binary=False,buffering=block (8192)} Reason: handle is closed File: Now: : hGetChar: illegal operation (handle is closed) This is going to result in a bunch of test failures, but I'll deal with those later. ] [[project @ 2003-07-21 13:21:02 by malcolm] malcolm**20030721132102 > Build Control.Monad before Data.HashTable, the latter depends on the > former. Shouldn't the build system know about that automatically? Yes. The right way to fix the issue is to add a dependency between the .o files. ] [[project @ 2003-07-21 09:26:23 by simonmar] simonmar**20030721092623 Fix showIntAtBase to match the report. Its signature was previously showIntAtBase :: Integral a => a -> (a -> Char) -> a -> ShowS and is now: showIntAtBase :: Integral a => a -> (a -> Char) -> a -> ShowS ] [[project @ 2003-07-16 17:46:52 by sof] sof**20030716174652 [win32]asyncDoProc :: FunPtr (Ptr a -> IO Int) -> Ptr a -> IO Int ] [[project @ 2003-07-16 10:55:20 by simonmar] simonmar**20030716105520 - Make showHex and showOct match the report (don't add leading "Ox" or "Oo"). - Remove showBin, which isn't specified by the report. ] [[project @ 2003-07-16 10:46:29 by panne] panne**20030716104629 Build Control.Monad before Data.HashTable, the latter depends on the former. Shouldn't the build system know about that automatically? ] [[project @ 2003-07-10 19:25:58 by sof] sof**20030710192559 For System.Directory.renameFile on Win32 platforms, implement the Haskell98 semantics of replacing the target file if it already exists (i.e., file/directory renaming is now done by dirUtils.c:__hscore_renameFile().) Document that System.Directory.renameDirectory will fail on Win32 boxes should the target directory exist. Merge to STABLE, I suppose. ] [[project @ 2003-07-08 16:22:52 by panne] panne**20030708162253 Fixed some more Haddock links. ] [[project @ 2003-07-08 16:04:54 by panne] panne**20030708160454 Export TestResult, too ] [[project @ 2003-07-08 15:46:40 by panne] panne**20030708154642 Fixed some Haddock links. ] [[project @ 2003-07-03 15:22:04 by sof] sof**20030703152204 [mingw only] asyncDoProc :: FunPtr (Ptr a -> IO ()) -> Ptr a -> IO () ] [[project @ 2003-07-02 13:27:35 by stolz] stolz**20030702132735 fork() never returns with EINTR ] [[project @ 2003-06-30 14:08:24 by stolz] stolz**20030630140824 Duplex Handles are writeable. Noticed by: Jurriaan Hage Please MERGE ] [[project @ 2003-06-24 09:40:51 by stolz] stolz**20030624094051 Pick up openFileEx/openBinaryFile change in error message ] [[project @ 2003-06-22 09:24:23 by ross] ross**20030622092423 Hugs only: import throwIO ] [[project @ 2003-06-21 20:21:04 by malcolm] malcolm**20030621202104 Exclude openBinaryFile etc from nhc98 build until we implement it. ] [[project @ 2003-06-20 14:42:03 by ross] ross**20030620144203 Hugs only: no hSetBinaryMode ] [[project @ 2003-06-19 13:20:37 by simonmar] simonmar**20030619132037 Fix reallocBytes: when size is zero, it is supposed to act like free. Which it did, except that we were complaining about the NULL return value from C's realloc and reporting it as an error. MERGE TO STABLE ] [[project @ 2003-06-19 13:04:49 by simonmar] simonmar**20030619130452 Following near-silence on the libraries list, add openBinaryFile :: FilePath -> IOMode -> IO Handle hSetBinaryMode :: Handle -> Bool -> IO () to System.IO. IOModeEx(..) and openFileEx are still available from IOExts (package lang), but are marked DEPRECATED. ] [[project @ 2003-06-19 12:55:09 by simonmar] simonmar**20030619125509 Fix typo in doc string ] [[project @ 2003-06-19 10:42:26 by simonmar] simonmar**20030619104226 Add raiseIO# primop. This is part of ensuring that exceptions are *precise* in the IO monad (as opposed to imprecise exceptions in the pure world). If we allow the strictness analyser to see the definition of throwIO: throwIO e = IO $ \s -> throw e then it might re-order evaluation in the IO monad, with the result that we get _|_ instead of an exception, or one kind of exception when we were expecting another. We therefore must prevent the strictness analyser from doing these reorderings in the IO monad. Hiding the definition of throwIO by making it a primop solves part of the problem (there's more to come). See SourceForge bug #752149. ] [[project @ 2003-06-19 10:38:15 by simonmar] simonmar**20030619103815 Fix Windows build ] [[project @ 2003-06-19 09:32:04 by wolfgang] wolfgang**20030619093204 fix misleading typo in comment ] [[project @ 2003-06-18 08:06:00 by stolz] stolz**20030618080600 fork() never returns with EINTR ] [[project @ 2003-06-16 08:02:09 by simonpj] simonpj**20030616080210 Add Haddock docs, courtesy of Hal Daume ] [[project @ 2003-06-12 16:06:06 by simonmar] simonmar**20030612160607 Change the type of System.Cmd.rawSystem: rawSystem :: FilePath -> [String] -> IO ExitCode and implement it properly on both Windows & Unix. The intended meaning is that the program is executed with *exactly* these arguments. We now re-use this rawSystem in the compiler itself (using it directly from the library if __GLASGOW_HASKELL__ >= 601). The previous implementation of SysTools.runSomething was broken on 4.08, because Posix.executeFile was broken. However, implementing the new rawSystem on 4.08 is tricky, because it uses the FFI marshalling libraries which weren't present on 4.08. Hence, bootstrapping from 4.08 is now not possible (it was already not possible on Windows). It could be made possible by importing enough FFI marshalling support, but I won't bother doing that unless/until it is needed. ] [[project @ 2003-06-12 15:15:23 by simonmar] simonmar**20030612151523 exitWith should be using throwIO not throw. ] [[project @ 2003-06-12 12:55:27 by ross] ross**20030612125528 move portable newForeignPtr from GHC.ForeignPtr to Foreign.ForeignPtr ] [[project @ 2003-06-12 10:59:00 by malcolm] malcolm**20030612105900 ... and add newForeignPtr_ for nhc98. ] [[project @ 2003-06-12 10:55:57 by malcolm] malcolm**20030612105557 For nhc98, define mallocForeignPtr and friends. ] [[project @ 2003-06-12 10:53:15 by simonmar] simonmar**20030612105316 Update to latest revision of the FFI spec: - foreignPtrToPtr is now unsafeForeignPtrToPtr - newForeignPtr_ added. ] [[project @ 2003-06-12 10:31:29 by malcolm] malcolm**20030612103129 For nhc98, temporarily make foreignPtrToPtr an alias for unsafeForeignPtrToPtr until ghc and hugs catch up. ] [[project @ 2003-06-05 13:42:51 by ralf] ralf**20030605134251 Add listify; other minor revisions. ] [[project @ 2003-06-05 00:49:31 by diatchki] diatchki**20030605004936 a huge commit. overall changes 1. moved the new monad transformer library to its own branch as simon suggested 2. attempted to integrate it with the make system, which mostly works, except "make install" tries to add the package _before_ copying the library files to their location. i don't understand what is going wrong, could someone take a look? library specific 3. the library is now using the standard "MonadFix" class as sugested by ross. the instances are defined in each transformer file. 4. moved "Utils.hs" file to a "Private" directory to indicate that programs should not use it 5. removed the file "Types.hs", now the type for each transformer is defined in the relevant file. 6. added a few tests ] [[project @ 2003-06-04 14:52:09 by ralf] ralf**20030604145209 Made gread a bit more robust; some renaming of new stuff; add more comments to implementations; added a bit more illustration of gunfold; added or/choice operators ] [[project @ 2003-06-03 22:26:44 by diatchki] diatchki**20030603222650 Added a first version of the new monad library (experimental). Hopefully one day the "X" will disappear. ] [[project @ 2003-06-02 14:32:14 by simonpj] simonpj**20030602143214 Add (<++) ] [[project @ 2003-06-01 17:20:02 by ralf] ralf**20030601172002 Minor revision; extension. (customised gread/gshow for String; add a generic count to be used in the definition gtypecount, gnodecount; added a mkF to use const mzero as default and not as in the case of mkM; added a gmapF which is monadic but tries to recover from failure while stile insisting on at least one successful immediate subterm; cosmetics) ] [[project @ 2003-05-30 21:59:44 by ralf] ralf**20030530215944 Major clean-up; would have been nice in GHC 6.00 (most of the changes concern documentation, types, coding style, grouping, i.e., the interface is largely preserved modulo some added exports; the only changed type is the one of synthesize; the pathological function undefineds was removed from the interaces, and the rarely used function branches was renamed to glength) I also commit testsuite/.../Generics which has now quite some meaninful examples in there. Also, the boilerplate is now properly documented on http://www.cs.vu.nl/boilerplate/ All in all, this stuff starts to be useful and usable. Great that it is supported by GHC!!! Cheers, Ralf ] [[project @ 2003-05-30 09:19:39 by simonpj] simonpj**20030530091940 Stop omitting Data.Generics from Haddockising, now that suitable #ifdefs make it go through. The #ifdefs mean that the documentation won't show the exports (:+:) etc, until Haddock learns about them. Merge to stable (but only this patch... not the earlier post-fork changes to Data.Generics) ] [[project @ 2003-05-29 17:37:17 by malcolm] malcolm**20030529173719 For nhc98 only, export the basic C types non-abstractly. This is due to a deficiency in the way newtypes are handled in interface files - the compiler needs full information about the newtype in order to pass values across the FFI. ] [[project @ 2003-05-29 14:39:31 by sof] sof**20030529143931 Support for interop'ing with .NET via FFI declarations along the lines of what Hugs98.NET offers, see http://haskell.org/pipermail/cvs-hugs/2003-March/001723.html for FFI decl details. To enable, configure with --enable-dotnet + have a look in ghc/rts/dotnet/Makefile for details of what tools are needed to build the .NET interop layer (tools from VS.NET / Framework SDK.) The commit doesn't include some library additions + wider-scale testing is required before this extension can be regarded as available for general use. 'foreign import dotnet' is currently only supported by the C backend. ] [[project @ 2003-05-27 16:57:09 by malcolm] malcolm**20030527165712 Unbreak for nhc98, after the addition of FinalizerPtr as a type synonym, and the change of Foreign.C.Types to export all newtypes abstract. ] [[project @ 2003-05-27 09:48:13 by ralf] ralf**20030527094813 Simplified type of gunfold (removed last arg.) And cosmetics. ] [[project @ 2003-05-27 08:46:38 by malcolm] malcolm**20030527084638 For nhc98, like hugs, re-export sum and product from the Prelude. ] [[project @ 2003-05-27 08:03:46 by stolz] stolz**20030527080347 GCC 3.3 cpp wibbles ] [[project @ 2003-05-23 10:48:55 by ross] ross**20030523104855 replace deriving Eq with explicit instance (twice) because Haddock's limited understanding of derived instances can't figure out these two. ] [[project @ 2003-05-23 10:21:27 by simonmar] simonmar**20030523102127 Hide this module in the Haddock docs. ] [[project @ 2003-05-23 10:13:33 by ross] ross**20030523101333 fix header comment ] [[project @ 2003-05-23 10:12:28 by ross] ross**20030523101228 hide GHC.PrimopWrappers from Haddock. ] [[project @ 2003-05-23 08:59:46 by simonmar] simonmar**20030523085946 Remove the words "A cool hack..." from the documentation of this module, since they refer to the implementation, not the API :-) ] [[project @ 2003-05-22 10:59:47 by ross] ross**20030522105947 unbreak for Hugs ] [[project @ 2003-05-22 09:55:56 by simonmar] simonmar**20030522095556 Commit an off-by-one fix that I forgot about. Fixes SF bug #741600. ] [[project @ 2003-05-22 09:40:04 by ross] ross**20030522094004 export architecture-dependent types opaquely. ] [[project @ 2003-05-22 08:24:32 by chak] chak**20030522082433 Added a `FinalizerPtr' synonym as in the FFI Addendum (RC 10). ** ATTENTION ** This will break the "#ifdef __NHC__" and "#ifdef __HUGS__" variants of `ForeignPtr'. See `GHC/ForeignPtr.hs' for the definitions. ] [[project @ 2003-05-22 08:21:49 by ross] ross**20030522082149 add Eq instance (explicit, so Haddock won't be confused) ] [[project @ 2003-05-22 08:20:38 by ross] ross**20030522082038 trim import ] [[project @ 2003-05-22 06:37:08 by chak] chak**20030522063708 The FFI Addendum requires `Foreign' to re-export `Data.Bits'. ] [[project @ 2003-05-21 16:31:59 by ross] ross**20030521163159 add finalizerFree :: FunPtr (Ptr a -> IO ()) ] [[project @ 2003-05-20 09:44:08 by stolz] stolz**20030520094408 Add missing 'Constr' for conOf/consOf in examples ] [[project @ 2003-05-19 16:48:18 by ross] ross**20030519164820 non-GHC (and non-NHC): simplistic implementation of byte array I/O. ] [[project @ 2003-05-17 00:11:29 by ross] ross**20030517001129 Rename per-package configuration files from $(PACKAGE).conf.* to package.conf.*, making them easier to find (since each package is in a separate directory anyway). ] [[project @ 2003-05-16 10:14:22 by simonmar] simonmar**20030516101422 Now that we have auto packages, it makes sense to keep all the interfaces for hierarchical libraries in the same directory tree. So now, instead of putting interfaces for package P in $libdir/imports/P, we put them all in $libdir/imports. Interfaces for old non-auto non-hierarchical packages now go in $libdir/hslibs-imports/P for package P. ] [[project @ 2003-05-14 17:31:47 by ross] ross**20030514173148 doc tweaks ] [[project @ 2003-05-14 09:12:27 by ross] ross**20030514091229 comments ] [[project @ 2003-05-14 09:11:43 by ross] ross**20030514091143 hide Foreign.Concurrent from Hugs ] [[project @ 2003-05-13 11:42:47 by simonpj] simonpj**20030513114247 Generalise the type of listens slightly; a suggestion from Tom Pledger ] [[project @ 2003-05-12 10:16:22 by ross] ross**20030512101628 documentation only: tag some things as "GHC only". ] [[project @ 2003-05-12 10:15:00 by ross] ross**20030512101500 mark Text.Read as non-portable, and make a bit more available in Hugs. ] [[project @ 2003-05-12 10:12:52 by ross] ross**20030512101255 Hugs only (I hope): add unboxed arrays to Hugs ] [[project @ 2003-05-12 08:57:55 by ross] ross**20030512085755 cosmetic change ] [[project @ 2003-05-12 08:55:53 by ross] ross**20030512085553 remove #ifndef __HUGS__ ] [[project @ 2003-05-12 08:54:21 by ross] ross**20030512085421 add Haddock markers ] [[project @ 2003-05-12 08:48:09 by ross] ross**20030512084809 some re-arrangement for the benefit of Hugs. ] [[project @ 2003-05-08 16:06:41 by ross] ross**20030508160641 avoid a C compiler warning about arithmetic with void * ] [[project @ 2003-05-05 19:44:28 by ross] ross**20030505194428 non-GHC: fill out the Bits instances for Int and Integer, and make them work with Hugs. ] [[project @ 2003-04-30 08:36:21 by simonmar] simonmar**20030430083621 When doing hGetChar on a block-buffered handle, don't wait for the buffer to be completely full before returning a character. This behaviour seems more useful, and matches what hGetLine and hGetContents do. Without this, to do an unbuffered read you have to set the buffering on the Handle to NoBuffering, which adversely affects the performance of writes. With this change, there is now no difference between line buffering and block buffering for read operations. Possibly fillReadBuffer can now be simplified, since the is_line parameter is always True. However, this is a delicate part of the IO library, and I don't want to remove the possiblity of forcing a complete buffer-fill in the future. ] [[project @ 2003-04-28 09:18:29 by ross] ross**20030428091829 add Text.ParserCombinators.ReadP, Text.ParserCombinators.ReadPrec and Text.Read.Lex to Hugs. (But they're not used by Read, because that would make the Prelude non-H98). ] [[project @ 2003-04-28 09:16:47 by ross] ross**20030428091648 portability fixes, plus marking these as non-portable (uses forall). ] [[project @ 2003-04-25 17:43:06 by ross] ross**20030425174306 tiny haddock fix ] [[project @ 2003-04-25 17:42:26 by ross] ross**20030425174226 add System.Info to Hugs ] [[project @ 2003-04-25 10:24:58 by ross] ross**20030425102458 add Data.Array.Diff to Hugs ] [[project @ 2003-04-25 10:24:20 by ross] ross**20030425102420 non-GHC: remove instances for Word ] [[project @ 2003-04-25 10:23:29 by simonmar] simonmar**20030425102329 doc fixes ] [[project @ 2003-04-24 12:25:26 by malcolm] malcolm**20030424122528 Add instances of Data.Bits.Bits for Int/Word[8,16,32,64] in a different way. The module Data.Bits is only available from the base package, which is normally added to the link line *before* the standard libraries, hence if the instances are in the latter, you get link errors. So move the instances into the base package where they belong, in NHC.SizedTypes. ] [[project @ 2003-04-23 14:36:26 by malcolm] malcolm**20030423143626 Add Data.HashTable, Data.Monoid, and Data.Tree to the nhc98 build, and re-instate Data.Dynamic, which now uses Data.HashTable. ] [[project @ 2003-04-23 14:29:51 by malcolm] malcolm**20030423142951 Tweak #ifdefs to make it compile with nhc98. ] [[project @ 2003-04-23 13:22:16 by simonmar] simonmar**20030423132216 Doc wibble. ] [[project @ 2003-04-23 10:27:53 by simonmar] simonmar**20030423102753 hGetArray/hPutArray with a count argument of zero now just return doing nothing. This brings them into line with hGetBuf/hPutBuf and fixes a bug in Data.PackedString.hPutPS which fails on an empty string. ] [[project @ 2003-04-22 10:20:30 by malcolm] malcolm**20030422102030 Exclude Data.Dynamic from the nhc98 build now that it no longer compiles. (Need to investigate getting Data.HashTable to work.) ] [[project @ 2003-04-22 09:21:34 by ross] ross**20030422092134 Hugs only: minor re-arrangement of ifdefs. ] [[project @ 2003-04-22 09:19:24 by ross] ross**20030422091924 remove an ifdef'd out commented out import. ] [[project @ 2003-04-21 16:32:39 by ross] ross**20030421163239 adjust imports for Hugs's benefit. ] [[project @ 2003-04-21 16:32:05 by ross] ross**20030421163205 Hugs only: Key is defined in Hugs.Prelude (because it needs Dynamic) ] [[project @ 2003-04-17 16:51:43 by simonpj] simonpj**20030417165143 Add lots of new generics stuff ] [[project @ 2003-04-17 15:23:37 by simonpj] simonpj**20030417152337 ---------------------------------- Implement Typeable properly ---------------------------------- 1. Add 'deriving' for Typeable class. So you can say data T a b = .... deriving( Typeable ) At the moment you only get this if you ask for it. If you say nothing you get nothing. 2. Implement Typeable better, with proper O(1) comparison of type representations 3. Add the 'cast' operation described in 'Scrap your boilerplate' and use it. 4. Consequence: need to move the definition of IOArray from Data.Array.IO.Internals to GHC.IOBase, where it joins IORef. This is necssary so that HashTable can be low down in the compilation hierarchy, and hence so can Dynamic. WARNING: I'm not certain the imports in HashTable and Dynamic will all be right for Hugs and NHC. I hope you can fix them up. ] [[project @ 2003-04-17 15:17:07 by simonpj] simonpj**20030417151712 Comments and imports ] [[project @ 2003-04-17 13:26:59 by simonmar] simonmar**20030417132659 Doc wibbles ] [[project @ 2003-04-17 12:58:14 by mthomas] mthomas**20030417125814 Fix "System/Posix/Internals.hs:273: Malformed entity string". ] [[project @ 2003-04-17 10:44:59 by simonmar] simonmar**20030417104459 Add a hash table implementation. This is an implementation of Dynamic Hash Tables, transliterated from the code in GHC's RTS into Haskell. I'd like to say it looks nicer, and well, maybe it does a little. Comments on the interface are welcome. This hash table implementation will be used by the new Typeable framework to do hash-consing and fast comparison of TypeRep values. ] [[project @ 2003-04-17 07:26:12 by simonpj] simonpj**20030417072612 Better Haddock documentation ] [[project @ 2003-04-17 07:01:27 by simonpj] simonpj**20030417070127 Start on better Typeable ] [[project @ 2003-04-16 15:12:02 by sof] sof**20030416151202 hGetArray: wrong result length returned. Merge to STABLE (if that's still on.) ] [[project @ 2003-04-15 12:42:13 by malcolm] malcolm**20030415124213 Add unlinesPS, unwordsPS, joinPS, and splitWithPS, to the nhc98 version of the code. ] [[project @ 2003-04-15 10:41:14 by simonmar] simonmar**20030415104114 Re-instate joinPS which appears to have been accidentally left out of this revised version of PackedString, and add unlinesPS and unwordsPS which are the analogs of Data.List.unlines and Data.List.unwords respectively. Fix bug: linesPS doesn't work the same way as Data.List.lines, because it strips out empty lines, and it therefore isn't the inverse of unlinesPS. This is because linesPS is defined in terms of splitPS, which omits empty substrings. However, the comments next to splitPS/splitWithPS state that the following should hold: joinPS (packString [x]) (splitPS x ls) = ls which implies that splitPS should *not* omit empty substrings. So the definition of splitPS is inconsistent. I therefore opted to fix splitPS to make the above property hold, and modify wordsPS to work with the new definition (it previously relied on the old behaviour). ] [[project @ 2003-04-11 23:39:43 by ross] ross**20030411233944 Hugs only: add a CBITS "pragma" to tell the Hugs conversion script which files from /cbits should be linked with the module by ffihugs, e.g. {-# CBITS HsNet.c initWinSock.c ancilData.c #-} ] [[project @ 2003-04-11 14:24:07 by simonmar] simonmar**20030411142407 Plug a file descriptor leak: when finalizing a handle, we should ignore errors in the flushing operation and go ahead and close the handle anyway. Spotted by: Keean [k.schupke@ic.ac.uk] ] [[project @ 2003-04-11 11:43:09 by ross] ross**20030411114309 Hugs only: use the whole thing now ] [[project @ 2003-04-11 11:10:57 by ross] ross**20030411111059 rename Control.Monad.Monoid as Data.Monoid ] [[project @ 2003-04-11 10:41:23 by ross] ross**20030411104123 move #hide to where it works ] [[project @ 2003-04-11 10:11:24 by ross] ross**20030411101125 rename GHC.Posix as System.Posix.Internals ] [[project @ 2003-04-09 10:21:09 by simonpj] simonpj**20030409102109 Typo ] [[project @ 2003-04-09 08:18:13 by simonpj] simonpj**20030409081813 ------------------------------------- Fix the lexer so that it does the right thing for floating point and hexadecimal numbers ------------------------------------- This fix requires the new (<++) combinator that Koen has added to the ReadP library. NB: we lex "0x9fw" as [("0x9f", "w")]; that is, we stop as soon as we get a legal thing (maximally munching) even if white space does not follow. I'm not totally certain this is the right thing, but it's much better than it was before. ] [[project @ 2003-04-09 08:17:39 by simonpj] simonpj**20030409081739 Remove redundant Prelude import ] [[project @ 2003-04-08 16:14:29 by simonpj] simonpj**20030408161429 add fixity for +++, <++ ] [[project @ 2003-04-08 16:02:05 by simonpj] simonpj**20030408160205 New ReadP module from Koen, featuring <++ combinator ] [[project @ 2003-04-08 14:52:26 by ross] ross**20030408145226 import tweak ] [[project @ 2003-04-04 16:12:01 by ross] ross**20030404161201 Added a list of the modules in the package that don't work with Hugs. Such modules are skipped by the conversion script. Packages in which everything works with Hugs don't need such a file. ] [[project @ 2003-04-04 14:36:31 by simonpj] simonpj**20030404143631 lexChar wibblifications ] [[project @ 2003-04-03 16:46:59 by ross] ross**20030403164700 Graph and Tree modules, from GHC's Digraph (actually the Haddock version, which looks more recent). ] [[project @ 2003-04-01 16:32:04 by simonpj] simonpj**20030401163204 Fix bogus implementation of readLitChar, lexLitChar ] [[project @ 2003-04-01 16:30:37 by simonpj] simonpj**20030401163037 Use INLINE rather than SPECIALISE for ceiling, floor, truncate ] [[project @ 2003-03-31 15:36:24 by ross] ross**20030331153624 remove a GHC-ism ] [[project @ 2003-03-31 13:58:43 by simonmar] simonmar**20030331135843 Get the filename right in IOErrors generated by several functions in here. ] [[project @ 2003-03-31 13:58:03 by simonmar] simonmar**20030331135803 - Add ioeSet{ErrorType,ErrorString,Handle,FileName} to match the existing ioeGet* functions. - Add modifyIOError :: (IOError -> IOError) -> IO a -> IO a ] [[project @ 2003-03-30 12:20:16 by ross] ross**20030330122017 withForeignPtr is portable. So is some other stuff, though only Hugs uses the portable versions at present. ] [[project @ 2003-03-27 10:24:43 by simonmar] simonmar**20030327102443 [ oops, forgot to commit this with the rest of the changes yesterday... ] Change our ForeignPtr implementation to match the spec: finalizers must now be foreign functions. Move the old Haskell-finalizer versions of newForeignPtr and addForeignPtrFinalizer into Foreign.Concurrent, to make it clear that the implementations of these functions require concurrency. While I'm here: move the GHC-specific parts of the ForeignPtr implementation into GHC.ForeignPtr. ] [[project @ 2003-03-26 15:25:46 by simonmar] simonmar**20030326152546 Change our ForeignPtr implementation to match the spec: finalizers must now be foreign functions. Move the old Haskell-finalizer versions of newForeignPtr and addForeignPtrFinalizer into Foreign.Concurrent, to make it clear that the implementations of these functions require concurrency. While I'm here: move the GHC-specific parts of the ForeignPtr implementation into GHC.ForeignPtr. ] [[project @ 2003-03-26 12:35:34 by simonmar] simonmar**20030326123534 Add getrlimit()/setrlimit() suppport ] [[project @ 2003-03-14 13:08:04 by simonmar] simonmar**20030314130804 Attach the finalizer to the write side of a duplex handle, where it should have been. Otherwise finalization of duplex handles doesn't work properly. MERGE TO STABLE ] [[project @ 2003-03-12 16:42:27 by ijones] ijones**20030312164227 * Added more Haddock documentation to functions / classes / types * Added section headings for classes / types * Added an Examples section ] [[project @ 2003-03-11 18:41:43 by panne] panne**20030311184143 Fixed link to getArgs ] [[project @ 2003-03-09 20:19:27 by panne] panne**20030309201927 Fixed markup confusion ("" vs. '') ] [[project @ 2003-03-08 23:03:47 by panne] panne**20030308230349 More markup fixes... ] [[project @ 2003-03-08 19:02:39 by panne] panne**20030308190239 Fixed some broken/redirected/canonicalized links found by a very picky link checker. ] [[project @ 2003-03-06 09:51:03 by simonmar] simonmar**20030306095103 Add Data/Array/IO to list of directories ] [[project @ 2003-03-05 15:54:59 by malcolm] malcolm**20030305155459 For nhc98, use nullPtr rather than 0 as the argument to time(). ] [[project @ 2003-03-05 15:53:10 by malcolm] malcolm**20030305155310 Build the hierarchical libraries from .hc files when building nhc98 from .hc's. ] [[project @ 2003-03-04 13:36:39 by ross] ross**20030304133639 add an #ifdef __GLASGOW_HASKELL__ ] [[project @ 2003-03-04 11:09:15 by simonmar] simonmar**20030304110915 Split Data.Array.IO into Data.Array.IO.Internals (which defines and exports the concrete representations of IOArray and IOUArray) and Data.Array.IO which exports the user-visible API. This is necessary so that we can build more libraries that use the internals of IOUArray in particular. ] [[project @ 2003-02-28 12:34:43 by stolz] stolz**20030228123443 - Rename System.Posix.Process.forkProcess to forkProcessAll - Move GHC.Conc.forkProcess to System.Posix with type 'Maybe ProcessID' Prompted by: George Russel ] [[project @ 2003-02-26 10:22:14 by simonmar] simonmar**20030226102214 Add a note about the problem with forkProcess, for the time being. ] [[project @ 2003-02-21 05:34:12 by sof] sof**20030221053413 Asynchronous / non-blocking I/O for Win32 platforms. This commit introduces a Concurrent Haskell friendly view of I/O on Win32 platforms. Through the use of a pool of worker Win32 threads, CH threads may issue asynchronous I/O requests without blocking the progress of other CH threads. The issuing CH thread is blocked until the request has been serviced though. GHC.Conc exports the primops that take care of issuing the asynchronous I/O requests, which the IO implementation now takes advantage of. By default, all Handles are non-blocking/asynchronous, but should performance become an issue, having a per-Handle flag for turning off non-blocking could easily be imagined&introduced. [Incidentally, this thread pool-based implementation could easily be extended to also allow Haskell code to delegate the execution of arbitrary pieces of (potentially blocking) external code to another OS thread. Given how relatively gnarly the locking story has turned out to be with the 'threaded' RTS, that may not be such a bad idea.] ] [[project @ 2003-02-20 09:36:40 by malcolm] malcolm**20030220093640 Add Foreign.Marshal.Pool to the nhc98 build. ] [[project @ 2003-02-19 13:54:19 by malcolm] malcolm**20030219135419 Oops, the "directory-collecting" modules Foreign and Foreign.Marshal were accidentally omitted from the nhc98 build. ] [[project @ 2003-02-18 20:39:56 by panne] panne**20030218203956 Guerrilla tactics: Re-export Foreign.Marshal.Pool >:-) ] [[project @ 2003-02-18 20:15:15 by panne] panne**20030218201515 * Fixed bug #687034 (GetOpt overly ambiguous) * Reformatted comment * Synch example with reality ] [[project @ 2003-02-17 15:13:56 by simonpj] simonpj**20030217151356 Wibbles to ST Monad methods; I forget why ] [[project @ 2003-02-17 15:13:09 by simonpj] simonpj**20030217151309 Type sig for getTag ] [[project @ 2003-02-17 11:43:21 by simonmar] simonmar**20030217114321 Comment wibble ] [[project @ 2003-02-14 17:11:59 by sof] sof**20030214171200 - add missing config.h include to Handle.hs - Handle.hSetBuffering: don't bother putting the handle's FD into 'raw' mode under Win32. 'raw' mode is just too specialised and potentially confusing (see comments.) ] [[project @ 2003-02-14 13:01:32 by simonpj] simonpj**20030214130132 Fix for deriving of records with leading underscore, and corresponding lex ] [[project @ 2003-02-06 10:41:13 by simonmar] simonmar**20030206104113 Aargh! We were setting the VMIN and VTIME values in the termios structure when the terminal is in non-raw mode, rather than raw mode, because I had a test round the wrong way. Apparently on Linux VMIN and VTIME default to 1/0, so it apparently worked properly, but on Solaris the VMIN slot in the c_cc array is shared with the VEOF slot, which meant that VMIN was being left as 4 (the value of ^D, which is the default contents of VEOF). Thanks to Hal Daume for reporting the bug, and Malcolm Wallce & Lennart Augustsson for helping to point me in the right direction. MERGE TO STABLE ] [[project @ 2003-02-06 10:41:10 by ross] ross**20030206104110 Hugs-only: special definitions of fromInt & fromDouble. ] [[project @ 2003-02-04 11:55:54 by simonmar] simonmar**20030204115554 Add support for using vfork, which I apparently removed when this file was moved over from ghc/lib/std/cbits. Using vfork on Linux makes quite a big difference - eg. when building GHC.Base with -split-objs , I saw a 2.5s reduction in system time. ] [[project @ 2003-01-30 20:41:10 by panne] panne**20030130204110 * Fixed the comment breakage of the previous commit (Haddock failure) * Synched signature comments in header with reality * Added default implementation of 'rotate' in terms of 'rotateL'/'rotateR' * Removed spurios "signed": What's a signed rotate or a signed left shift?? ] [[project @ 2003-01-30 12:51:05 by ross] ross**20030130125105 fix for non-GHC ] [[project @ 2003-01-29 14:28:47 by ross] ross**20030129142847 fix typo that broke non-GHC impls. ] [[project @ 2003-01-29 07:54:46 by panne] panne**20030129075446 Ooops, unbreak non-GHC targets... ] [[project @ 2003-01-28 21:48:23 by panne] panne**20030128214823 As agreed (= no riots after the proposal :-) on the FFI list, introduce a re-exporting module Foreign.Marshal ] [[project @ 2003-01-28 21:38:30 by panne] panne**20030128213830 After trying out re-exporting Foreign.Marshal.Pool from Marshal, it became obvious that -fno-implicit-prelude would be a good idea. :-} Otherwise one gets cirular dependencies to the Prelude. Alas, fixing this resulted in some uglification of the code in some places... ] [[project @ 2003-01-28 11:09:41 by simonmar] simonmar**20030128110941 Provide hand-optimised versions of all the functions herein, protected by #ifdef __GLASGOW_HASKELL__. In a quick test, withCString is at least 5 times faster than before. This isn't really the right way to do it: we should get deforestation working between the various component functions and let GHC do its stuff, but I couldn't quite get that to work. ] [[project @ 2003-01-28 11:07:39 by simonmar] simonmar**20030128110739 Hand-optimised versions of pokeArray and pokeArray0 (selected via #ifdef __GLASGOW_HASKELL__). I tried to make these functions amenable to deforestation, but couildn't quite get it to work, so in the meantime we'll settle for hand-written versions which are still quite a bit faster than the originals. ] [[project @ 2003-01-25 15:54:51 by wolfgang] wolfgang**20030125155451 This commit fixes many bugs and limitations in the threaded RTS. There are still some issues remaining, though. The following bugs should have been fixed: - [+] "safe" calls could cause crashes - [+] yieldToReturningWorker/grabReturnCapability - It used to deadlock. - [+] couldn't wake blocked workers - Calls into the RTS could go unanswered for a long time, and that includes ordinary callbacks in some circumstances. - [+] couldn't block on an MVar and expect to be woken up by a signal handler - Depending on the exact situation, the RTS shut down or blocked forever and ignored the signal. - [+] The locking scheme in RtsAPI.c didn't work - [+] run_thread label in wrong place (schedule()) - [+] Deadlock in GHC.Handle - if a signal arrived at the wrong time, an mvar was never filled again - [+] Signals delivered to the "wrong" thread were ignored or handled too late. Issues: *) If GC can move TSO objects (I don't know - can it?), then ghci will occasionally crash when calling foreign functions, because the parameters are stored on the TSO stack. *) There is still a race condition lurking in the code (both threaded and non-threaded RTS are affected): If a signal arrives after the check for pending signals in schedule(), but before the call to select() in awaitEvent(), select() will be called anyway. The signal handler will be executed much later than expected. *) For Win32, GHC doesn't yet support non-blocking IO, so while a thread is waiting for IO, no call-ins can happen. If the RTS is blocked in awaitEvent, it uses a polling loop on Win32, so call-ins should work (although the polling loop looks ugly). *) Deadlock detection is disabled for the threaded rts, because I don't know how to do it properly in the presence of foreign call-ins from foreign threads. This causes the tests conc031, conc033 and conc034 to fail. *) "safe" is currently treated as "threadsafe". Implementing "safe" in a way that blocks other Haskell threads is more difficult than was thought at first. I think it could be done with a few additional lines of code, but personally, I'm strongly in favour of abolishing the distinction. *) Running finalizers at program termination is inefficient - there are two OS threads passing messages back and forth for every finalizer that is run. Also (just as in the non-threaded case) the finalizers are run in parallel to any remaining haskell threads and to any foreign call-ins that might still happen. ] [[project @ 2003-01-24 15:18:46 by malcolm] malcolm**20030124151846 Move the 'shiftL/R' and 'rotateL/R' variants to become methods of the Bits class. This gives an instance the choice of which methods (directional, or unified) to implement directly. (This change was agreed in Sept 2002, but is only being committed now.) Add instances for Int and Integer in nhc98. ] [[project @ 2003-01-24 14:04:41 by simonmar] simonmar**20030124140441 - Generalise seq to allow an unlifted type in its second argument. This works because seq is *always* inlined and replaced by a case. - Remove getTag, a wired-in Id with an unfolding, with a definition in GHC.Base: getTag x = x `seq` dataToTag# x this is why we required the above generalisation to seq (dataToTag# returns an Int#). See the comments in GHC.Base for more details. - As a side-effect, this fixes a bug in the interpreter, where the compiler optimised away the evaluation of the argument to dataToTag#, but the interpreter ended up passing it an unevaluated thunk (nullary constructors aren't always evaluated in GHCi, but the simplifier assumes they are). Now, in the interpreter, getTag won't be inlined so the compiler can't optimise away the evaluation, and we're saved. The real bug here is either (a) dataToTag# requires an evaluated argument or (b) the interpreter doesn't supply it with one, take your pick. ] [[project @ 2003-01-23 18:06:01 by panne] panne**20030123180601 Added (not-so-standard ;-) support for pooled memory management. No GHC-specifics like the use of arenas yet... ] [[project @ 2003-01-23 17:45:40 by ross] ross**20030123174542 Hugs now uses most of Control.Exception. ] [[project @ 2003-01-23 11:46:57 by ross] ross**20030123114657 add Ord instance, as per FFI spec ] [[project @ 2003-01-22 14:44:50 by ross] ross**20030122144450 simpler swapMVar (like readMVar): no need to unblock for a return. ] [[project @ 2003-01-22 10:56:27 by ross] ross**20030122105627 use mallocForeignPtrArray from Foreign.ForeignPtr ] [[project @ 2003-01-22 10:55:56 by ross] ross**20030122105556 add mallocForeignPtrArray and mallocForeignPtrArray0 as per latest FFI draft. ] [[project @ 2003-01-21 16:33:20 by ross] ross**20030121163320 add local definitions of unsafeIOToST and stToIO ] [[project @ 2003-01-17 14:52:17 by ross] ross**20030117145219 Exchange some functions between System.Mem.Weak (portable) and GHC.Weak (not). ] [[project @ 2003-01-16 14:38:40 by ross] ross**20030116143840 remove spurious #ifdef __HUGS__ ] [[project @ 2003-01-13 11:42:16 by simonmar] simonmar**20030113114216 UArrays should always be initialized with known elements, otherwise we can lose referential transparency: Prelude> :m + Data.Array.Unboxed Prelude Data.Array.Unboxed> let f () = array (1, 5) [] :: UArray Int Int Prelude Data.Array.Unboxed> f () == f () False Noticed-by: Tomasz Zielonka MERGE TO STABLE ] [[project @ 2003-01-13 11:32:00 by simonmar] simonmar**20030113113200 Fix off-by-one in splitWithPS. Noticed-by: Tomasz Zielonka MERGE TO STABLE ] [[project @ 2003-01-08 14:08:29 by simonmar] simonmar**20030108140829 Fix annotateIOError (bug noticed by Ross Paterson). ] [[project @ 2003-01-08 13:06:30 by simonmar] simonmar**20030108130630 Alter the order of the argument to annotateIOError to match mkIOError and the FFI spec. ] [[project @ 2003-01-06 14:30:12 by ross] ross**20030106143012 Consolidate to a single version of trace (except that GHC has the post-hook). This version adds a newline, which the old Hugs and NHC versions didn't. ] [[project @ 2003-01-02 23:49:32 by ross] ross**20030102234932 Hugs only: #ifndef out the bits Hugs can't do. ] [[project @ 2002-12-23 13:33:16 by malcolm] malcolm**20021223133316 Ensure all the Storable instances are available in nhc98. ] [[project @ 2002-12-20 18:43:53 by ross] ross**20021220184353 Hugs only: use new version of evaluate. ] [[project @ 2002-12-20 17:56:21 by ross] ross**20021220175622 Make Hugs use all of System.IO.Error. Also renamed the ioe_descr field of IOException (not part of the public interface) to ioe_description, matching Hugs. ] [[project @ 2002-12-20 09:41:20 by simonmar] simonmar**20021220094120 Remove c_uname from here, it isn't required in the base package ] [[project @ 2002-12-20 09:31:11 by simonmar] simonmar**20021220093111 Oops, forgot to commit this with the "auto packages" changes. We now have to -#include "HsBase.h" explicitly. As far as I can tell it was happening by accident before, as a result of the base package being enabled by default. ] [[project @ 2002-12-19 22:06:20 by malcolm] malcolm**20021219220620 Add a couple more libraries for nhc98. ] [[project @ 2002-12-19 22:04:41 by malcolm] malcolm**20021219220441 Make it work with nhc98. ] [[project @ 2002-12-19 15:23:29 by ross] ross**20021219152330 #ifdef's for Hugs. ] [[project @ 2002-12-18 16:29:25 by simonmar] simonmar**20021218162925 "Auto" packages. The big change here is that it is no longer necessary to explicitly say '-package X' on the command line if X is a package containing hierarchical Haskell modules. All packages marked "auto" contribute to the import path, so their modules are always available. At link time, the compiler knows which packages are actually used by the program, and it links in only those libraries needed. There's one exception: one-shot linking. If you link a program using ghc -o prog A.o B.o ... then you need to explicitly add -package flags for each package required (except base & haskell98) because the compiler has no information about the package dependencies in this case. Package configs have a new field: auto, which is either True or False. Non-auto packages must be mentioned on the command-line as usual. Non-auto packages are still required for: - non-hierarchical libraries (to avoid polluting the module namespace) - packages with no Haskell content - if you want more than one version of a package, or packages providing overlapping functionality where the user must decide which one to use. Doc changes to follow... ] [[project @ 2002-12-18 10:45:31 by malcolm] malcolm**20021218104533 Now compiles with nhc98. ] [[project @ 2002-12-18 10:43:38 by malcolm] malcolm**20021218104338 Make it compilable with nhc98, although for now it omits all instances. ] [[project @ 2002-12-18 10:42:54 by malcolm] malcolm**20021218104254 With nhc98, avoid overlap between Prelude defns and Control.Monad defns. ] [[project @ 2002-12-18 10:42:09 by malcolm] malcolm**20021218104209 Make it work with nhc98. ] [[project @ 2002-12-18 10:34:28 by malcolm] malcolm**20021218103428 Add a bunch more libraries to the nhc98 build. ] [[project @ 2002-12-16 11:00:53 by malcolm] malcolm**20021216110053 Un-break for nhc98. `bracket' now comes from IO, not System.IO. ] [[project @ 2002-12-13 14:23:42 by simonmar] simonmar**20021213142342 Fix bugs caused by missing casts in arithmetic expressions in stg_integerToInt64 and stg_integerToWord64. ] [[project @ 2002-12-13 13:36:36 by malcolm] malcolm**20021213133636 Add #ifdef around import Control.Exception, which does not exist in nhc98. ] [[project @ 2002-12-12 13:42:46 by ross] ross**20021212134247 Changes to the exception interface, as discussed on the libraries list. 1) Move bracket and bracket_ from GHC.Exception (and hence System.IO) to haskell98/IO.hs. These two should now never be used (except in all-H98 programs), and this will save users of the new libraries from having to hide them. Use the ones in Control.Exception instead. 2) Define type IOError = IOException -- was Exception leaving the type of Prelude.ioError as IOError -> IO a, but adding to Control.Exception throwIO :: Exception -> IO a The result is a type distinction between the variants of catch and try: Prelude.catch :: IO a -> (IOError -> IO a) -> IO a Control.Exception.catch :: IO a -> (Exception -> IO a) -> IO a System.IO.Error.try :: IO a -> IO (Either IOError a) Control.Exception.try :: IO a -> IO (Either Exception a) These are breaking changes: the first one affects only import lists, but the second will bite in the following situations: - using ioError on general Exceptions: use throwIO instead. - using throw on IOErrors: if in the IO monad, use ioError instead. Otherwise, use throw (IOException e), but why are you throwing IO exceptions outside of the IO monad? Minor changes: - System.IO.Error now exports catch and try - moved try from GHC.Exception to System.IO.Error, because it's portable and can be shared by Hugs. ] [[project @ 2002-12-12 13:32:06 by ross] ross**20021212133206 Add an import for Hugs, and change some #ifdef __GLASGOW_HASKELL__ to #ifndef __NHC__ ] [[project @ 2002-12-12 13:29:07 by ross] ross**20021212132907 Hugs only: add an import. ] [[project @ 2002-12-11 16:12:22 by ross] ross**20021211161222 non-GHC: keep the old definition of Obj. ] [[project @ 2002-12-11 15:55:17 by simonmar] simonmar**20021211155517 Obj type must be forall a.a now, to avoid confusing GHC's new tail-calling scheme. ] [[project @ 2002-12-05 14:44:02 by stolz] stolz**20021205144402 Don't forget peeking signal handlers (nothing to see here, please move along) ] [[project @ 2002-12-05 14:20:56 by stolz] stolz**20021205142056 Add SA_RESETHAND (aka SA_ONESHOT) support. Requested by: John Meacham > module Main where > import System.Posix.Signals > main = do > installHandler sigUSR1 (Catch (print "usr1")) Nothing > installHandler sigUSR2 (CatchOnce (print "usr2")) Nothing > _ <- getLine > return () ] [[project @ 2002-12-05 09:49:38 by simonmar] simonmar**20021205094938 annotateIOError was somehow missing from the export list... ] [[project @ 2002-12-03 14:30:12 by simonmar] simonmar**20021203143012 Eeek! A nasty bug has been lurking in waitQSemN, which as far as I can make out has been there for ever. Presumably no-one uses this abstraction... The bug is that waitQSemN would discard any other blocked threads (presumably waiting for a larger chunk of the semaphore) if it succeeds. It still looks to me like the quantity semaphores in here can suffer from starvation: if one thread requests a large chunk, while lots of other threads are requesting smaller chunks, then the thread requesting the large chunk might never get to run. I'm sure this must be a well-known problem. MERGE TO STABLE ] [[project @ 2002-11-26 17:32:33 by ross] ross**20021126173233 added missing _ == _ = False to Eq Exception. ] [[project @ 2002-11-22 10:52:23 by stolz] stolz**20021122105223 Add 'mapException' as proposed in "A semantics for imprecise exceptions" Reminded by: Lauri Alanko ] [[project @ 2002-11-20 13:45:20 by simonmar] simonmar**20021120134520 Add experimental hDuplicate and hDuplicateTo. ] [[project @ 2002-11-20 13:44:41 by simonmar] simonmar**20021120134441 Allow opening a character special device; we treat it as a stream, even though it might be seekable. This allows opening /dev/stdin, /dev/null, etc. MERGE TO STABLE ] [[project @ 2002-11-19 11:28:51 by simonmar] simonmar**20021119112851 Doc fix for unsafeInterleaveIO ] [[project @ 2002-11-13 10:35:18 by simonmar] simonmar**20021113103518 Remove superfluous escaping of quotation marks in the example code (Haddock interprets bird-tracked code literally). MERGE ] [[project @ 2002-11-08 09:04:35 by simonpj] simonpj**20021108090435 --------------------------------- Tiny H98 fix to numericEnumFromThenTo --------------------------------- This was a late fix to the H98 report: it only affects [a,b..c] where a=b, which isn't exactly common ] [[project @ 2002-11-07 10:41:59 by stolz] stolz**20021107104159 - Explicitely document order of parameters in addToFM_C. ] [[project @ 2002-11-06 23:47:16 by ross] ross**20021106234716 Minor #elif adjustment (__HUGS__ vs __NHC__). ] [[project @ 2002-11-06 20:30:26 by ross] ross**20021106203026 Hugs only: move the dummy implementation of evaluate here, to avoid ambiguity. ] [[project @ 2002-11-06 10:38:16 by simonmar] simonmar**20021106103816 - Add a Show instance for ForeignPtr - Fix the Eq instance for ForeignPtr to match the behaviour specified by the spec. Two ForeignPtrs are equal iff their underlying Ptrs are equal (previously they were equal iff they were the same ForeignPtr). MERGE TO STABLE ] [[project @ 2002-11-02 11:56:30 by ross] ross**20021102115630 Hugs only: export throwIO :: Exception -> IO a instead of a generalized ioError. This is an interim measure to keep Hugs working until it's decided what to do about IOError. ] [[project @ 2002-10-30 18:21:25 by ross] ross**20021030182125 (Hugs only) fix silly slip in last commit. ] [[project @ 2002-10-30 14:53:39 by ross] ross**20021030145340 #ifdef's for Hugs ] [[project @ 2002-10-25 13:07:41 by sof] sof**20021025130741 Only interested in a subset when used in w/ Hugs ] [[project @ 2002-10-24 07:49:40 by mthomas] mthomas**20021024074940 Unchecked quick fix. Hope to test tonight after getting home. ] [[project @ 2002-10-22 10:59:40 by simonmar] simonmar**20021022105940 Don't bogusly cast ThreadId# to Ptr (). The right way to fix these warnings is to change the type signatures of cmp_thread and rts_getThreadId to take StgPtr rather than StgTSO *, since the compiler now has no internal distinction between the two in the backend (it used to, but recent simplifications removed the distinction). ] [[project @ 2002-10-18 16:29:18 by malcolm] malcolm**20021018162918 Implement atomicModifyIORef for nhc98. ] [[project @ 2002-10-18 13:32:56 by simonpj] simonpj**20021018133257 Move Typable IORef instance to Dynamic; stops IORef.hs being an oprhan module ] [[project @ 2002-10-18 12:28:38 by ross] ross**20021018122838 Hugs only: simple version of atomicModifyIORef, relying on the absence of preemption from Hugs. If Hugs gets Haskell finalizers, they'll have to be blocked during this operation. ] [[project @ 2002-10-18 09:51:04 by simonmar] simonmar**20021018095104 Add atomicModifyIORef, as discussed on the FFI list. ] [[project @ 2002-10-16 13:48:24 by ross] ross**20021016134824 Remove special treatment of Hugs. ] [[project @ 2002-10-14 10:06:28 by ross] ross**20021014100628 #ifdef tweaks ] [[project @ 2002-10-11 14:33:58 by simonpj] simonpj**20021011143358 Fix cpp syntax ] [[project @ 2002-10-11 12:23:41 by stolz] stolz**20021011122341 Add even more #ifdefs for nhc98. ] [[project @ 2002-10-11 11:05:20 by malcolm] malcolm**20021011110520 Make some more libraries buildable with nhc98. ] [[project @ 2002-10-09 17:24:12 by malcolm] malcolm**20021009172413 Add #ifdefs for nhc98. ] [[project @ 2002-10-09 17:08:18 by malcolm] malcolm**20021009170819 Add #ifdefs for nhc98. ] [[project @ 2002-10-09 16:55:30 by malcolm] malcolm**20021009165530 Add a little infrastructure for building the hierarchical libraries with nhc98. ] [[project @ 2002-10-08 08:03:01 by wolfgang] wolfgang**20021008080302 Make the new Posix bindings compile on Mac OS X. Most notable, Mac OS X lacks *) lchown *) SIGPOLL I don't know of a replacement of either, so they are just left out when they are not detected by configure. ] [[project @ 2002-10-03 15:19:15 by ross] ross**20021003151915 Reinstate the exports of the function names, because the module must export them, even though Hugs doesn't define them here. The old module export they overlapped with was there to pick up the tuple definitions for GHC, but that probably isn't necessary with the recent GHC changes. ] [[project @ 2002-10-03 13:56:12 by panne] panne**20021003135612 Warning police #9: Nuked modules from the export list which are already implied by other exported modules. Still quite a few warnings left here, though... >:-( ] [[project @ 2002-10-03 13:41:35 by panne] panne**20021003134135 Warning police #8: Exporting Foo(..) exports Foo's field selector functions, too, so let's nuke the latter from the export list. ] [[project @ 2002-10-03 13:29:07 by panne] panne**20021003132907 Warning police #7: Improved typing of TSOs a bit, getting rid of a bunch of C compiler warnings. ] [[project @ 2002-10-03 13:04:58 by panne] panne**20021003130458 Warning police #6: Add prototype for writeErrString__, which is used by GHC.TopHandler. ] [[project @ 2002-10-03 12:57:42 by panne] panne**20021003125742 Warning police #5: Nuked duplicate exports, simplifying (i.e. nuking :-) the export list on the way. The deep and arcane reasons for the strange #ifdef-ery in this module are not clear to me, so I hope no damage is done by this commit. :-} ] [[project @ 2002-10-03 12:43:50 by panne] panne**20021003124350 Warning police #4: To use uname, we should try to #include . ] [[project @ 2002-10-01 16:29:47 by ross] ross**20021001162947 Removed the strict ST instance (already in Control.Monad.ST) and moved the lazy ST instance to Control.Monad.ST.Lazy, so Control.Monad.Fix contains only instances for Prelude types, and is portable. ] [[project @ 2002-10-01 15:58:11 by erkok] erkok**20021001155812 Merge Fix.hs with MonadRec.hs, and remove the latter. As agreed, the class is now called "MonadFix", and the library is called "Control.Monad.Fix". Note: The old Control.Monad.Fix used to export the function fix :: (a -> a) -> a I retained that behavior, but I don't think it should export it. ] [[project @ 2002-10-01 10:32:11 by ross] ross**20021001103211 Hugs only: reinstate infix declarations. It seems the Hugs limitation this was working around no longer exists. ] [[project @ 2002-09-30 14:31:02 by ross] ross**20020930143103 Portability tweak. ] [[project @ 2002-09-30 10:27:49 by simonmar] simonmar**20020930102749 s/rm -f/$(RM)/ ] [[project @ 2002-09-29 20:24:00 by panne] panne**20020929202400 Warning police #1: Nuke duplicate export of CSsize(..) ] [[project @ 2002-09-27 23:10:23 by erkok] erkok**20020927231023 The MonadRec.hs library, stolen from the Hugs release. Note: There's a clear overlap with the library Control.Monad.Fix. Unfortunately, the names of the classes are different, mainly for historical reasons (MonadFix vs MonadRec.) There was some discussion on how to resolve this a while back, but I guess Hugs and GHC went their own ways. Once the dust settles, we can agree on something common, and make Hugs and GHC use the same names. (Note that this duplication also exists in the current release of Hugs as well.) For the time being, this file helps keep things simple with regard to the already existing code that uses the mdo-notation.. (i.e., it also defines instances for the LazyST, ST, and list monads in addition to the ones defined in Fix.hs: IO and maybe.) We can also name this file just "Rec", but "MonadRec" sounds less confusing, and more inline with the Hugs release. ] [[project @ 2002-09-26 09:16:33 by simonpj] simonpj**20020926091633 Comments ] [[project @ 2002-09-25 23:06:30 by ross] ross**20020925230630 (Hugs only) use StorableArray as a poor man's IOUArray. ] [[project @ 2002-09-25 23:01:11 by ross] ross**20020925230111 (Hugs only) conform to the current FFI spec. This code makes the additional assumption that a finalizer added with addForeignPtrFinalizer runs before any existing finalizers on the same object. ] [[project @ 2002-09-25 22:55:41 by ross] ross**20020925225541 Switch to mallocForeignPtr. ] [[project @ 2002-09-25 22:49:17 by ross] ross**20020925224917 Hugs only (but being considered for the ffi spec): added finalizerFree, a pointer to a foreign function equivalent to free, for use as a finalizer. ] [[project @ 2002-09-25 15:24:07 by simonmar] simonmar**20020925152407 Re-instate the checking for the values of errno constants at configure time. The problem with doing it using foreign calls is simply that this tickles a bad case in the code gen machinery, which in this case results in an extra 10-20k of goop ending up in pretty much every binary, and it impacts GC performance too. This has some portability implications, but the situation is no worse than before. To reliably cross-compile for a new platform you need to build a set of .hc files for the libraries using a config.h generated on the *target* machine. (at some point we'll formalise the cross-compilation story, but that's another thing on the todo list...) ] [[project @ 2002-09-25 15:16:30 by simonpj] simonpj**20020925151630 Remove readList__ ] [[project @ 2002-09-24 19:01:55 by sof] sof**20020924190155 userErrors: don't barf on non-IOExceptions. Merge to STABLE. ] [[project @ 2002-09-24 16:07:50 by sof] sof**20020924160750 ioeGetErrorType(error case): don't pose as ioeGetHandle. Merge to STABLE. ] [[project @ 2002-09-23 09:19:53 by ross] ross**20020923091953 remove unnecessary #ifndef __HUGS__ ] [[project @ 2002-09-20 13:15:07 by ross] ross**20020920131507 Make Data.Array.Base more portable (no semantic changes, I hope) by * replacing neat pattern guards with clunky case's * putting #ifdef __GLASGOW_HASKELL__ around the unboxed stuff * aliasing GHC.Arr Note that the reliance on RULES for specialization of general definitions, rather than a class for e.g. the unsafe freeze/thaw things, means that other implementations can't specialize them with efficient versions. ] [[project @ 2002-09-19 13:24:52 by simonmar] simonmar**20020919132452 Put this below the Prelude in the dependency tree. I accidentally created a loop with the latest change to Foreign.hs; this fixes it. ] [[project @ 2002-09-19 10:47:21 by simonmar] simonmar**20020919104721 re-export unsafePerformIO ] [[project @ 2002-09-18 11:32:43 by simonmar] simonmar**20020918113244 Sort out the divide-by-zero situation. Some integer division operations called error on a divide by zero, and some didn't test for it. Now we always raise the DivideByZero exception. MERGE TO STABLE ] [[project @ 2002-09-16 11:29:39 by ross] ross**20020916112939 Moved some stuff from Hugs.Prelude to Hugs.Char. ] [[project @ 2002-09-16 11:24:36 by simonpj] simonpj**20020916112436 Fix bug in Read instance for Maybe ] [[project @ 2002-09-16 11:24:20 by simonpj] simonpj**20020916112420 Comments only ] [[project @ 2002-09-14 09:27:21 by panne] panne**20020914092721 Make Haddock happy ] [[project @ 2002-09-13 18:25:07 by panne] panne**20020913182507 Not quite sure about this one: Export builtin stuff like [], (), and (->) only for NHC, not for GHC anymore. ] [[project @ 2002-09-13 18:21:46 by panne] panne**20020913182146 It looks like we need assert again...?! ] [[project @ 2002-09-11 11:06:05 by simonpj] simonpj**20020911110605 Add documentation about unsafePerformIO ] [[project @ 2002-09-10 20:45:50 by panne] panne**20020910204550 Fixed slashification in Haddock comment ] [[project @ 2002-09-10 11:36:04 by ross] ross**20020910113604 non-GHC: import Control.Monad (needed by INSTANCE_STORABLE). ] [[project @ 2002-09-10 11:07:23 by ross] ross**20020910110723 #ifdef's for Hugs, which only allows one import in the Prelude at the moment. ] [[project @ 2002-09-10 10:50:28 by malcolm] malcolm**20020910105028 Export the builtin syntax for []((:),[]), ()(()), and (->) in nhc98 as well as ghc. ] [[project @ 2002-09-10 09:13:52 by ross] ross**20020910091352 H98 conformance: fill out (..)'s, and make the [] export GHC-only. ] [[project @ 2002-09-10 09:06:07 by simonmar] simonmar**20020910090607 Remove CBlkCnt and add it to the ToDo list; it clearly isn't present on several systems yet. Fortunately we weren't using it. ] [[project @ 2002-09-09 16:04:10 by ross] ross**20020909160410 More imports for non-GHC platforms. ] [[project @ 2002-09-09 15:30:58 by ross] ross**20020909153058 Hugs-only changes: explicit imports + use approxRational. ] [[project @ 2002-09-09 15:13:47 by simonmar] simonmar**20020909151347 Comments only ] [[project @ 2002-09-09 03:50:38 by sof] sof**20020909035039 (hugs only): PrelImpl -> Hugs.Prelude ] [[project @ 2002-09-08 02:35:33 by sof] sof**20020908023534 Hugs updates + fixes ] [[project @ 2002-09-06 15:00:04 by simonmar] simonmar**20020906150004 Disable the whole contents on mingw32. At some point we might be able to provide cut-down signal support, but I'll leave that for later. ] [[project @ 2002-09-06 14:38:15 by simonmar] simonmar**20020906143815 Make it build on mingw32, with a cut-down set of types ] [[project @ 2002-09-06 14:34:15 by simonmar] simonmar**20020906143415 Partial rewrite of the POSIX library. The main purpose of this sweep is to remove the last dependencies of the compiler on hslibs. When I've committed the associated compiler changes, only the 'base' package will be required to bootstrap the compiler. Additionally to build GHCi, the 'readline' and 'unix' packages will be required. The new POSIX library lives mostly in libraries/unix, with a few bits required for compiler bootstrapping in libraries/base. The 'base' package is mostly free of hsc2hs code to make bootstrapping from HC files easier, but the 'unix' package will use hsc2hs liberally. The old POSIX library continues to provide more-or-less the same interface as before, although some of the types are more correct now (previously lots of POSIX types were just mapped to Int). The new interface is largely the same as the old, except that some new functionality from the latest POSIX spec has been added (eg. symbolic links). So far, the new POSIX library has signal support, directory/file operations and lots of stuff from unistd.h. The module names are: System.Posix The main dude, exports everything System.Posix.Types All the POSIX types, using the same naming scheme as Foreign.C.Types, Eg. CUid, COff, etc. Many of these types were previously exported by GHC.Posix. Additionally exports the "nicer" names used by the old POSIX library for compatibility (eg. ProcessID == CPid, FileMode == CMode, etc.) All reasonable instances are derived for these types. System.Posix.Signals Signal support, contains most of which was in PosixProcPrim before. The RTS interface to the signal handling support has been rationalised slightly. System.Posix.Directory Directory support, most were in PosixFiles before. System.Posix.Files File operations, most were in PosixFiles before. System.Posix.Unistd (for want of a better name) Miscellaneous bits that mostly come from the unistd.h header file. PosixProcEnv before. The rest of the library should pan out like so: System.Posix.IO System.Posix.Error (maybe) System.Posix.Process System.Posix.Terminal (I've no doubt broken Win32 support, but I'm checking the build at the moment). ] [[project @ 2002-09-06 14:08:45 by simonmar] simonmar**20020906140845 Implement mallocForeignPtr :: Storable a => IO (ForeignPtr a) mallocForeignPtrBytes :: Int -> IO (ForeignPtr a) as GHC extensions for the time being. I strongly recommend using these if you need some garbage-collected memory to pass to a foreign function. ] [[project @ 2002-09-04 16:51:33 by ross] ross**20020904165134 Foreign.C.TypesISO needs to import Foreign.Storable. Also added some imports for non-GHC platforms. ] [[project @ 2002-09-04 16:46:40 by ross] ross**20020904164640 Fix typo. ] [[project @ 2002-09-04 16:05:29 by simonmar] simonmar**20020904160530 GHC can derive arbitrary instances for newtypes, so derive Storable for the types in Foreign.C.Types, rather than using CPP trickery to define the instances. This moves the Storable instances for the C Types from Foreign.Storable into Foreign.C.Types, and hence a few imports have changed around. ] [[project @ 2002-09-04 15:52:20 by simonmar] simonmar**20020904155220 Remove some unnecessary imports ] [[project @ 2002-09-03 09:40:51 by simonmar] simonmar**20020903094051 (%) should be infixl 7 (thanks to Jon Fairbairn for pointing out the omission) MERGE TO STABLE ] [[project @ 2002-09-03 00:15:45 by mthomas] mthomas**20020903001545 Mingw32 has no fcntl() - use _setmode() (twice) instead. ] [[project @ 2002-09-02 16:40:55 by simonpj] simonpj**20020902164055 Un-break head build due to (:) export ] [[project @ 2002-09-02 16:33:31 by ross] ross**20020902163331 non-GHC compilers should also import Numeric. ] [[project @ 2002-09-02 11:20:50 by ross] ross**20020902112050 Minor rearrangement: the implementation of System.Exit.exitWith is GHC-specific, while exitFailure is portable. ] [[project @ 2002-08-31 08:37:56 by simonpj] simonpj**20020831083756 Remove GHC.Base.assert until I can figure out what happened ] [[project @ 2002-08-30 14:54:58 by simonpj] simonpj**20020830145458 Move defn of hs_fileno inside ifdef ] [[project @ 2002-08-30 14:29:51 by simonpj] simonpj**20020830142952 * Do not export built-in syntax (H98 conformance) * Add 'assert' to GHC.Base (no need to merge to stable branch) ] [[project @ 2002-08-30 14:19:18 by simonpj] simonpj**20020830141918 Extra space after $ to avoid conflict with Template Haskell ] [[project @ 2002-08-30 13:43:57 by stolz] stolz**20020830134357 Haddock-ise with comments from library report ] [[project @ 2002-08-30 13:27:42 by stolz] stolz**20020830132742 Haddock-ise. ] [[project @ 2002-08-30 13:00:31 by simonpj] simonpj**20020830130031 Remove bogus parError; MERGE TO STABLE ] [[project @ 2002-08-30 12:32:44 by stolz] stolz**20020830123244 - Haddock-ise with comments from library report - FIXME: Haddock doesn't support nested enumerations. ] [[project @ 2002-08-30 12:25:15 by stolz] stolz**20020830122515 Express 'killThread' in terms of 'throwTo' ] [[project @ 2002-08-30 10:46:10 by stolz] stolz**20020830104610 Haddock-ised. The previous version already did contain a lot of documentation which just wasn't in the right shape. The current documentation diverges slightly from the Library Report. ] [[project @ 2002-08-30 07:56:48 by stolz] stolz**20020830075648 Fix sample way of expressing 'killThread' in docs. From: Dean Herington PLEASE MERGE ] [[project @ 2002-08-29 16:39:42 by stolz] stolz**20020829163942 - Haddock-ise with comments from library report - The chapter "Deriving Instances of Ix" doesn't end up in the "Contents" section (yet), although it should. ] [[project @ 2002-08-29 16:05:59 by stolz] stolz**20020829160559 Haddock-ise with comments from library report ] [[project @ 2002-08-29 16:03:57 by stolz] stolz**20020829160357 Add replicateM[_] and foldM_ ] [[project @ 2002-08-29 11:49:10 by simonmar] simonmar**20020829114911 Make the readline binding into a hierarchical library and put it in its own package (for licensing reasons). As part of this, I moved fdToHandle from PosixIO into GHC.Handle (and updated the code to avoid using _casm_) since Readline requires it. I've also updated Readline to use the latest FFI syntax. ] [[project @ 2002-08-29 11:29:40 by simonmar] simonmar**20020829112940 Foreign.C.TypesISO has been merged into Foreign.C.Types now. ] [[project @ 2002-08-29 09:24:21 by simonmar] simonmar**20020829092422 Move library-project documentation to a better place, and add the current hierarchy spec. ] [[project @ 2002-08-29 05:11:41 by ross] ross**20020829051141 The functions rawSystem, withArgs and withProgName aren't supported by Hugs yet. ] [[project @ 2002-08-28 14:30:12 by simonpj] simonpj**20020828143012 Fix a lexing bug: "\SOH" could mean "\SO" followed by "H" or "\SOH". The Report specifies the latter. MERGE TO STABLE ] [[project @ 2002-08-28 13:59:19 by simonmar] simonmar**20020828135919 - Move rawSystem from SystemExts to System.Cmd. - Move withArgv and withProgName from SystemExts to System.Environment These functions are still exported by SystemExts for compatibility. ] [[project @ 2002-08-27 14:44:31 by simonmar] simonmar**20020827144431 We really should export the representations of Ptr and FunPtr from here. ] [[project @ 2002-08-25 09:16:07 by panne] panne**20020825091607 Fixed bug in documentation introduced by "Mr. Haddock" himself. :-) ] [[project @ 2002-08-23 22:10:43 by sof] sof**20020823221043 ioeGetErrorString: don't "show" the string from a user error. Merge to STABLE. ] [[project @ 2002-08-21 10:43:22 by simonmar] simonmar**20020821104322 Oops, unpackCStringUtf8# had rotted at some point, and no-one noticed. Some parentheses are required because the relative precedences of uncheckIShiftL# and +# (the default precedences, AFAICT) give the wrong meaning to some expressions. MERGE TO STABLE ] [[project @ 2002-08-20 10:03:05 by simonmar] simonmar**20020820100305 The Typeable instances were missing in the __GLASGOW_HASKELL__ case; add them. ] [[project @ 2002-08-16 11:38:57 by simonmar] simonmar**20020816113857 Some extra docs for addFinalizer, describing why using addFinalizer on a ForeignPtr isn't the same as using addForeignPtrFinalizer. ] [[project @ 2002-08-16 11:38:04 by simonmar] simonmar**20020816113804 Data.Array.IArray should export Array too ] [[project @ 2002-08-08 22:29:28 by reid] reid**20020808222928 Hugs provides makeForeignPtr instead of newForeignPtr. It is hoped that these macros overcome the difference. + #ifdef __HUGS__ + #define MAKE_ARRAY(x) makeForeignPtr (x) free + #else + #define MAKE_ARRAY(x) newForeignPtr (x) (free (x)) + #endif I could probably get away with introducing a Haskell functions instead of a macro.. [Untested since Data.Array.Base requires the pattern guard extension so I can't load it. Still, I think this will be ready to go once we fix D.A.B] ] [[project @ 2002-08-08 06:25:05 by ross] ross**20020808062505 Add hTell to Hugs. ] [[project @ 2002-08-07 12:17:59 by ross] ross**20020807121759 Renamed HugsStorable -> Hugs.Storable (copy of lib/exts/HugsStorable.hs) ] [[project @ 2002-08-05 08:48:07 by simonmar] simonmar**20020805084808 Remove the literate bits from this file: I'm trying to keep .lhs out of the non-GHC parts of the libraries tree, we don't use it any more and it clutters up the code. ] [[project @ 2002-08-05 08:44:53 by simonmar] simonmar**20020805084453 Move the import of System.IO.Unsafe into the #else part of #ifdef __GLASGOW_HASKELL__, because it was causing an import loop. (Alastair: that #else should probably be #elif __HUGS__, right?) ] [[project @ 2002-08-05 08:29:17 by simonmar] simonmar**20020805082917 Add missing GHC imports ] [[project @ 2002-08-03 21:33:15 by reid] reid**20020803213315 Directives like this {-# OPTIONS -#include "HsBase.h" #-} aren't portable so I added this: foreign import ccall unsafe "HsBase.h ghcErrno" _errno :: Ptr CInt ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ] [[project @ 2002-08-03 21:01:26 by reid] reid**20020803210126 Final bout of changes to make things work with Hugs. - I'd forgotten to include MachDep.h to the SIZEOF_* and ALIGNMENT_* macros (breaking GHC as well) - I'd missed the use of one of GHC's type extensions. ] [[project @ 2002-08-03 20:14:23 by reid] reid**20020803201424 oops again ] [[project @ 2002-08-03 19:32:49 by reid] reid**20020803193249 Oops ] [[project @ 2002-08-03 19:32:16 by reid] reid**20020803193217 Changes to make libs work with Hugs/FFI. Highlights: Moved most of the body of base/GHC/Storable.lhs into base/Foreign/Storable.lhs since it is mostly portable. base/include/CTypes.h and base/Foreign/C/Types.hs both generated Typeable instances for CChar and friends until I fixed them. ] [[project @ 2002-08-02 12:26:36 by simonmar] simonmar**20020802122636 Don't need -monly-3-regs now ] [[project @ 2002-08-02 12:25:30 by simonmar] simonmar**20020802122530 Don't need -monly-3-regs now. ] [[project @ 2002-08-02 12:24:36 by simonmar] simonmar**20020802122436 I can get away without -monly-3-regs for this file, now that GHC is passing -fno-builtin to gcc. ] [[project @ 2002-08-01 12:50:31 by simonpj] simonpj**20020801125031 Add parens to make precence clear ] [[project @ 2002-07-29 09:57:17 by simonmar] simonmar**20020729095717 Remove non-existent and empty dirs from $(ALL_DIRS) ] [[project @ 2002-07-29 09:54:40 by ross] ross**20020729095441 Tweaked imports and includes for compatibility. ] [[project @ 2002-07-26 13:23:38 by malcolm] malcolm**20020726132338 Must start tweaking the libraries for NHC soon. ] [[project @ 2002-07-26 12:12:33 by stolz] stolz**20020726121233 Fix typo. ] [[project @ 2002-07-26 10:05:04 by stolz] stolz**20020726100505 Add some references. Requires upgrade to current haddock version (>2002-7-25)! ] [[project @ 2002-07-26 02:36:57 by sof] sof**20020726023657 gmtoff: according to the (POSIX / Single Unix and MSVC) documentation of tzset(), 'timezone' is > 0 west of the Prime Meridian, so extend prev. commit to apply to all platforms, not just Win32. ] [[project @ 2002-07-25 14:14:36 by simonmar] simonmar**20020725141436 Fix comment typos, from Reuben Thomas. ] [[project @ 2002-07-24 09:57:21 by simonmar] simonmar**20020724095721 tiny doc fixes ] [[project @ 2002-07-23 22:04:36 by sof] sof**20020723220436 inputReady(): using MsgWaitForMultipleObjects() instead of WaitForMultipleObjects() on file handles is nicer from within a message pump, but here it is less confusing to use the latter (and simply just block message delivery for its duration.) ] [[project @ 2002-07-23 18:50:54 by sof] sof**20020723185054 gmtoff: MS CRT implementation of _tzset() (and _timezone) assumes that >0 represent positions west of the Prime Meridian. This module assumes the opposite, so flip the sign of 'timezone' when compiling for mingw. ] [[project @ 2002-07-23 14:52:46 by simonpj] simonpj**20020723145247 Various precedence errors in the code for read and show. A couple (the show instances for Ratio and Array) were actually errors in the Library Report. A couple more were to do with whether the precedence of application is 9 (wrong) or 10 (right). ] [[project @ 2002-07-23 10:46:27 by ross] ross**20020723104627 Make Data.Unique work with Hugs. ] [[project @ 2002-07-22 13:30:43 by simonmar] simonmar**20020722133043 Make the new mergesort stable. ] [[project @ 2002-07-22 11:37:38 by ross] ross**20020722113739 Make Data.Array.{IArray,MArray,IO,ST} work with Hugs, splitting off the IOArray part of Hugs.IOExts into Hugs.IOArray and (sadly) adding Hugs.Array.Base, a cut-down version of Data.Array.Base. ] [[project @ 2002-07-18 22:01:50 by sof] sof**20020718220150 win32 console-based implementations of setCooked, {get,set}Echo ] [[project @ 2002-07-18 22:01:07 by sof] sof**20020718220107 helper functions for mucking about with Win32 consoles ] [[project @ 2002-07-17 10:47:01 by ross] ross**20020717104701 Make the libraries' Numeric module usable by Hugs. Also deleted a chunk of code inside #ifdef __HUGS__ -- this was unused, and the copy in Hugs (now Hugs.Numeric) has since been improved. (Since these functions are portable, ideally they would be merged with the versions in GHC.Float) ] [[project @ 2002-07-17 09:22:20 by simonmar] simonmar**20020717092220 Need to #include now that Stg.h doesn't. ] [[project @ 2002-07-16 22:42:28 by sof] sof**20020716224228 handleFinalizer: (also) use the handle's type/state to decide whether or not go ahead with close()ing. Little bit tidier than magic fd values. ] [[project @ 2002-07-16 16:08:58 by ross] ross**20020716160900 Add imports of Hugs.* modules (wrapped in #ifdef __HUGS__) to make these modules work with Hugs. ] [[project @ 2002-07-16 15:47:25 by ross] ross**20020716154726 First stage of making the new libraries work with Hugs: * wrap #ifndef __HUGS__ around stuff that Hugs defines in its monster prelude (because Hugs can't handle recursive imports). * remove non-Haskell 98 export of [](..) from Data.List * make the definitions of tuples in Data.Tuple GHC-only. * make the export of the new Read stuff in Text.Read GHC-only, like its definition is. ] [[project @ 2002-07-15 16:15:14 by simonmar] simonmar**20020715161543 extra comma in export list ] [[project @ 2002-07-15 16:02:11 by simonmar] simonmar**20020715160212 Remove for extra commas in export lists (GHC is a little too lenient). Patch from Ross Paterson. ] [[project @ 2002-07-15 12:25:24 by simonmar] simonmar**20020715122524 Remove duplication in the extra_libraries list for mingw32 ] [[project @ 2002-07-08 10:43:10 by simonmar] simonmar**20020708104310 Fix a bug in getDirectoryEntries where the directory stream wasn't always being closed. This one shows up on Solaris as a "too many open files" failure when trying to run the test suite. ] [[project @ 2002-07-04 16:22:02 by simonmar] simonmar**20020704162203 Flesh out the documentation a bit. ] [[project @ 2002-07-04 13:33:24 by simonmar] simonmar**20020704133325 Sigh, enabling _POSIX_PTHREAD_SEMANTICS causes the Solaris header files to drop several silly little C functions into the source code. We don't want these duplicated in every Haskell-compiled object. So plan B: just define _POSIX_PTHREAD_SEMANTICS in dirUtils.c where it is needed to make readdir_r work. I've checked, and readdir_r is the only function we use that is affected by _POSIX_PTHREAD_SEMANTICS. If we ever use any more of these functions, then we'll have to be careful to give them a C wrapper. ] [[project @ 2002-07-04 12:57:39 by simonmar] simonmar**20020704125739 We have to define _POSIX_PTHREAD_SEMANTICS on Solaris in order to get the right versions of the _r functions. Otherwise we get Solaris-specific versions of these, which puts a spanner in the works. Fixes problems with getDirectoryContents on Solaris in the HEAD. ] [[project @ 2002-07-04 10:42:32 by simonmar] simonmar**20020704104232 Explicitly import the Prelude, and add a few types signatures to make these modules produce better documentation. ] [[project @ 2002-07-03 13:05:28 by simonmar] simonmar**20020703130528 Export dynApply and dynApp ] [[project @ 2002-07-02 13:13:36 by simonmar] simonmar**20020702131337 Add descriptions to the top level of each package documentation ] [[project @ 2002-07-02 10:34:52 by simonmar] simonmar**20020702103452 Point the punters to the online report at haskell.org until the documentation for the Prelude is up to scratch. ] [[project @ 2002-07-02 10:33:23 by simonmar] simonmar**20020702103323 Documentation for getProgName. ] [[project @ 2002-07-02 10:31:35 by simonmar] simonmar**20020702103135 Documentation for system ] [[project @ 2002-07-02 10:28:54 by simonmar] simonmar**20020702102854 Documentation for hSetBinaryMode ] [[project @ 2002-07-01 18:50:54 by sof] sof**20020701185054 closesocket() is stdcall-based ] [[project @ 2002-07-01 11:37:35 by simonmar] simonmar**20020701113735 Replace divInt# with a version which doesn't suffer from overflow problems (thanks to Dylan Thurston for the code). ] [[project @ 2002-06-27 17:19:01 by sof] sof**20020627171901 theStdGen: initialise it via mkStdRNG (as was done in <= 5.02) ] [[project @ 2002-06-27 15:38:58 by simonmar] simonmar**20020627153858 Finally fix foreign export and foreign import "wrapper" so that exceptions raised during the call are handled properly rather than causing the RTS to bomb out. In particular, calling System.exitWith in a foreign export will cause the program to terminate cleanly with the desired exit code. All other exceptions are printed on stderr (and the program is terminated). Details: GHC.TopHandler.runMain is now called runIO, and has type IO a -> IO a (previously it had type IO a -> IO (), but that's not general enough for a foreign export). The stubs for foreign export and forein import "wrapper" now automatically wrap the computation in runIO or its dual, runNonIO. It turned out to be simpler to do it this way than to do the wrapping in Haskell land (plain foreign exports don't have wrappers in Haskell). ] [[project @ 2002-06-27 13:40:37 by stolz] stolz**20020627134037 - forkProcess[Prim] wrapper - document forkProcess[Prim] & labelThread ] [[project @ 2002-06-26 08:18:45 by stolz] stolz**20020626081845 - Make TSO "stable" again: The thread label was changing the size of the TSO if you were building a debugging-RTS, leading to binary incompatibility. Now we map TSOs to strings using Hash.c. - API change for labelThread: Label arbitrary threads. ] [[project @ 2002-06-24 14:40:02 by simonmar] simonmar**20020624144002 Makefile updates for generating docs with Haddock: - explicitly depend on package base - set SRC_HADDOCK_OPTS in some places ] [[project @ 2002-06-21 14:00:32 by simonmar] simonmar**20020621140032 Mention the package name in the Haddock title ] [[project @ 2002-06-21 09:12:37 by simonmar] simonmar**20020621091237 Andy Gill asked me to remove his license to keep things simple. ] [[project @ 2002-06-20 16:12:58 by simonmar] simonmar**20020620161258 Haddock stuff has moved to ../../mk/package.mk ] [[project @ 2002-06-20 16:11:45 by simonmar] simonmar**20020620161145 use $(includedir) and INSTALL_INCLUDES rather than overriding $(datadir) ] [[project @ 2002-06-20 14:56:11 by malcolm] malcolm**20020620145611 Remove spurious comma in export list. ] [[project @ 2002-06-20 13:54:40 by simonmar] simonmar**20020620135440 Add license from Andy Gill's HTML library ] [[project @ 2002-06-19 14:33:24 by simonmar] simonmar**20020619143324 Remove this hack. Happy 1.13 is now required to build GHC. ] [[project @ 2002-06-18 13:58:22 by simonpj] simonpj**20020618135823 --------------------------------------- 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 } ] [[project @ 2002-06-18 13:01:43 by simonmar] simonmar**20020618130143 Fix bug in the implementation of hGetLine: on finding the EOF when we have a partial line in our hands, we weren't resetting the state of the buffer to empty, so the same partial line would be returned for each subsequent call to hGetLine. ] [[project @ 2002-06-18 09:31:05 by simonpj] simonpj**20020618093106 -------------------------- Deal with NaN and Infinity -------------------------- This commit arranges that * GHC.Real exports infinity :: Rational = 1 :% 0 notANumber :: Rational = 0 :% 0 * GHC.Float.fromRat converts these Rational non-numbers into their Float/Double equivalents As a result, arith015/arith016 start to work again. We can read NaN and Infinity into Float/Double. ] [[project @ 2002-06-14 08:17:08 by simonpj] simonpj**20020614081708 Add comment ] [[project @ 2002-06-13 23:26:55 by sof] sof**20020613232656 Provide STRefs over both lazy and strict ST monads as, Data.STRef.Lazy Data.STRef.Strict Data.STRef <-- the strict version. i.e., mirror how the strict and lazy ST monads are organised over in Control.Monad.ST ] [[project @ 2002-06-13 10:41:31 by simonmar] simonmar**20020613104131 Some extra docs, from Jon Fairbairn ] [[project @ 2002-06-11 10:53:03 by simonmar] simonmar**20020611105303 typo in email address (noticed by Jón Fairbairn, thanks Jón). ] [[project @ 2002-06-09 14:20:06 by panne] panne**20020609142006 Use :%, not % for Inf/NaN, the latter would immediately lead to a runtime error. Note that isInfinite (read "Infinity" :: Float) or isInfinite (fromRational (1 :% 0)) still don't work, because fromRational is not OK for those cases. ] [[project @ 2002-06-08 14:14:08 by panne] panne**20020608141408 Minor doc formatting improvement ] [[project @ 2002-06-08 13:11:27 by panne] panne**20020608131127 Install HSbase3.o, too. NOTE: This is untested, but probably corrects the previous commit. ] [[project @ 2002-06-06 16:03:16 by simonpj] simonpj**20020606160317 Read instance for Array, plus some documentation ] [[project @ 2002-06-06 16:01:37 by simonpj] simonpj**20020606160137 Win32 comment ] [[project @ 2002-06-05 14:08:24 by simonpj] simonpj**20020605140825 ------------------------------------------------ Fix the (new) lexer, and make the derived read and show code work according to the new H98 report ------------------------------------------------ The new lexer, based on Koen's cunning parser (Text.ParserCombinators.ReadP) wasn't quite right. It's all very cool now. In particular: * The H98 "lex" function should return the exact string parsed, and it now does, aided by the new combinator ReadP.gather. * As a result the Text.Read.Lex Lexeme type is much simpler than before data Lexeme = Char Char -- Quotes removed, | String String -- escapes interpreted | Punc String -- Punctuation, eg "(", "::" | Ident String -- Haskell identifiers, e.g. foo, baz | Symbol String -- Haskell symbols, e.g. >>, % | Int Integer | Rat Rational | EOF deriving (Eq,Show) * Multi-character punctuation, like "::" was getting lexed as a Symbol, but it should be a Punc. * Parsing numbers wasn't quite right. "1..n" got it confused because it got committed to a decimal point and then found a second '.'. * The new H98 spec for Show is there, which ignores associativity. ] [[project @ 2002-06-05 11:30:38 by ross] ross**20020605113038 documentation adjustments. ] [[project @ 2002-06-04 19:13:31 by sof] sof**20020604191331 Adjust to three-way split of HSbase + accommodate cygwin. ] [[project @ 2002-06-04 19:12:53 by sof] sof**20020604191253 PEi(x86) backends: The addition of Parsec to libraries/ put us over the limit for splitting HSbase into two parts (at least I couldn't find a good paritioning), we now need three. Fun and games. ] [[project @ 2002-06-03 13:19:37 by simonmar] simonmar**20020603131937 IO.hGetContents ==> System.IO.hGetContents (in docs) ] [[project @ 2002-05-31 12:22:33 by panne] panne**20020531122235 Moved Parsec to its new home ] [[project @ 2002-05-31 09:43:04 by panne] panne**20020531094304 Added Show instance for FunPtr ] [[project @ 2002-05-29 13:28:36 by simonmar] simonmar**20020529132836 doc fixes ] [[project @ 2002-05-29 13:27:04 by simonmar] simonmar**20020529132704 fix case of markup inside bird tracks. ] [[project @ 2002-05-29 13:22:10 by simonmar] simonmar**20020529132404 Don't need to escape single quotes ] [[project @ 2002-05-28 19:22:04 by sof] sof**20020528192204 make it compile ] [[project @ 2002-05-28 16:33:46 by simonmar] simonmar**20020528163347 Documentation for the overloaded array interfaces (currently a bit flaky due to a couple of shortcomings in Haddock). ] [[project @ 2002-05-28 16:32:45 by simonmar] simonmar**20020528163302 Documentation ] [[project @ 2002-05-28 15:04:54 by simonmar] simonmar**20020528150454 Documentation ] [[project @ 2002-05-28 14:06:01 by simonmar] simonmar**20020528140601 Add (minimal) documentation ] [[project @ 2002-05-28 14:04:18 by simonmar] simonmar**20020528140418 Fix mistake in 'evaluate'. ] [[project @ 2002-05-28 12:03:06 by simonmar] simonmar**20020528120306 Document ] [[project @ 2002-05-28 12:00:17 by simonmar] simonmar**20020528120017 typo ] [[project @ 2002-05-28 11:43:59 by simonmar] simonmar**20020528114359 Export list tweak ] [[project @ 2002-05-28 11:41:29 by simonmar] simonmar**20020528114129 Documentation tweaks ] [[project @ 2002-05-28 11:21:56 by simonmar] simonmar**20020528112156 tweak documentationa ] [[project @ 2002-05-28 11:21:03 by simonmar] simonmar**20020528112103 Add documentation ] [[project @ 2002-05-28 10:38:50 by simonmar] simonmar**20020528103850 Document Text.Regex.Posix and Text.Regex ] [[project @ 2002-05-27 15:57:01 by simonmar] simonmar**20020527155701 Documentation, such as it is ] [[project @ 2002-05-27 15:43:44 by simonmar] simonmar**20020527154344 Documentation for System.Mem.Weak ] [[project @ 2002-05-27 14:54:27 by simonmar] simonmar**20020527145427 Add documentation ] [[project @ 2002-05-27 14:36:51 by simonmar] simonmar**20020527143651 Documentation ] [[project @ 2002-05-27 14:31:06 by simonmar] simonmar**20020527143108 Document Control.Exception and Data.Dynamic ] [[project @ 2002-05-27 14:30:49 by simonmar] simonmar**20020527143049 Define __HADDOCK__ for .hs files as well as .lhs files. ] [[project @ 2002-05-16 11:39:36 by simonmar] simonmar**20020516113936 Happy -g currently requires GlaExts, which means it can't be used inside fptools/libraries (GlaExts comes from lang, and lang isn't built yet). So, until I've fixed Happy and everyone has built & installed the vnew version... Add a dummy GlaExts module. This is a TEMPORARY HACK to keep Happy happy during the switchover period, and will go away before the release. ] [[project @ 2002-05-15 12:17:18 by simonmar] simonmar**20020515121718 Fix comment to avoid confusing Haddock ] [[project @ 2002-05-15 12:16:11 by simonmar] simonmar**20020515121611 Fix non-Haddockish comments ] [[project @ 2002-05-15 09:00:00 by chak] chak**20020515090000 * Added the options `-ffi' and `-fffi', which switch on FFI support (`-fglasgow-exts' implies `-fffi'). NB: Strictly speaking `-fffi' is the correct name; however, `-ffi' is supported as an alternative spelling. * `-fglasgow-exts' no longer enables the `with' keyword for implicit parameters. To use `with' as a keyword, the additional option `-fwith' has to be supplied. (Note that SimonM recently enabled the use of `let' instead of `with'.) NB: This might prompt some makefile tweaks in libraries or regression tests. * Renamed `Foreign.Marshal.Utils.withObject' to `Foreign.Marshal.Utils.with' as required by the FFI Addendum. (The old name is still available, but marked as deprecated.) * Added `realloc' to `Foreign.Marshal.Alloc' (tracking RC4 of the FFI Addendum). Docu ~~~~ * Added `-ffi', `-fffi', and `-fwith' to the flag reference and the section describing options for Glasgow extensions * Removed most of the FFI section in the User's Guide in favour of a reference to the Addendum plus a brief description of additional features supported by GHC. NB: The old material is still available at fptools/docs/, I merely removed the reference in the User's Guide. ] [[project @ 2002-05-14 21:08:59 by sof] sof**20020514210859 lexNumberBase: support negative exponents ] [[project @ 2002-05-14 13:22:37 by simonmar] simonmar**20020514132237 Replace qsort by mergesort, which is more reliable performance-wise. From: Ian Lynagh ] [[project @ 2002-05-11 08:59:08 by panne] panne**20020511085908 Now that Int is exported, it might be a good idea to import it first... ] [[project @ 2002-05-10 16:18:28 by simonmar] simonmar**20020510161829 More documentation ] [[project @ 2002-05-10 15:41:33 by simonmar] simonmar**20020510154134 More documentation ] [[project @ 2002-05-10 14:52:00 by simonmar] simonmar**20020510145200 give slurpFile, hGetBuf and hPutBuf reasonable behaviour for zero-sized files ] [[project @ 2002-05-10 14:51:14 by simonmar] simonmar**20020510145114 Add some documentation for IORef ] [[project @ 2002-05-10 13:42:07 by simonmar] simonmar**20020510134207 Add documentation ] [[project @ 2002-05-10 13:17:27 by simonmar] simonmar**20020510131729 - Add documentation to Control.Concurrent and friends - Other documentation tweaks ] [[project @ 2002-05-10 13:16:55 by simonmar] simonmar**20020510131655 Add GHC/PrimopWrappers to EXTRA_SRCS ] [[project @ 2002-05-10 08:58:34 by simonmar] simonmar**20020510085835 Convert these files from .lhs to .hs, and give them proper headers to match the style used in the rest of the libraries. ] [[project @ 2002-05-10 08:38:53 by simonmar] simonmar**20020510083853 import GHC.Ptr to get the representation of Ptr. This module should really be split into compiler-dep and indep. parts. ] [[project @ 2002-05-10 08:35:05 by simonmar] simonmar**20020510083505 import GHC.Ptr instead of Foreign.Ptr (I fixed the latter to export Ptr abstractly yesterday). ] [[project @ 2002-05-09 13:28:30 by simonmar] simonmar**20020509132830 Add a type signature for getClockTime ] [[project @ 2002-05-09 13:16:29 by simonmar] simonmar**20020509131633 Rename libraries/core to libraries/base in the module headers. ] [[project @ 2002-05-09 13:15:07 by simonmar] simonmar**20020509131508 Various tweaks needed to get the source processed cleanly with Haddock. ] [[project @ 2002-05-09 13:14:42 by simonmar] simonmar**20020509131442 tweak the module comment ] [[project @ 2002-05-09 13:13:28 by simonmar] simonmar**20020509131402 Add documentation Haddock-style ] [[project @ 2002-05-09 13:09:30 by simonmar] simonmar**20020509130930 singletonSet has been deprecated for a while; remove it now ] [[project @ 2002-05-09 13:05:46 by simonmar] simonmar**20020509130546 Fix comments that are misinterpreted by Haddock ] [[project @ 2002-05-09 10:43:42 by simonmar] simonmar**20020509104342 We can process GHC.Err with Haddock now ] [[project @ 2002-05-09 10:43:26 by simonmar] simonmar**20020509104326 Omit the imports in Haddock, to avoid module recursion ] [[project @ 2002-05-06 06:51:00 by sof] sof**20020506065100 timezone mingw fix, making this module resemble even more of a dog's dinner ] [[project @ 2002-05-03 08:39:17 by simonmar] simonmar**20020503083917 Fix the build on Sparc-Solaris, hopefully without breaking it on Windows. ] [[project @ 2002-05-02 15:20:02 by sof] sof**20020502152002 extra_libraries(mingw): The Return of MSVCRT ] [[project @ 2002-04-28 02:01:00 by sof] sof**20020428020100 \\begin{code} prefix missing ] [[project @ 2002-04-26 15:39:50 by lewie] lewie**20020426153950 Fix broken def of fixST. ] [[project @ 2002-04-26 13:34:05 by simonmar] simonmar**20020426133410 Remove \$Id\$ from all files: it isn't particularly useful (see previous discussion on cvs-ghc@haskell.org), and it confuses Haddock. ] [[project @ 2002-04-26 13:33:10 by simonmar] simonmar**20020426133310 - Remove \$Id\$ - Fix comments that confuse Haddock ] [[project @ 2002-04-26 13:26:39 by simonmar] simonmar**20020426132639 We can cope with Control.Monad.Reader & friends now (Haddock can parse fundeps). ] [[project @ 2002-04-26 12:58:45 by simonmar] simonmar**20020426125845 doc string wibble ] [[project @ 2002-04-26 12:48:16 by simonmar] simonmar**20020426124817 - Add proper module headers to these guys - Remove \$Id\$ - Update copyrights - Int.lhs and Word.lhs were just wrapped in \begin{code}..\end{code}, so make them .hs files instead. ] [[project @ 2002-04-26 12:31:06 by simonmar] simonmar**20020426123106 Add a LICENSE ] [[project @ 2002-04-24 17:57:55 by ross] ross**20020424175755 haddock food. ] [[project @ 2002-04-24 16:31:37 by simonmar] simonmar**20020424163147 Add the single character '|' to the header comment of each module so that Haddock will parse it as the module documentation. ] [[project @ 2002-04-24 16:13:26 by simonmar] simonmar**20020424161326 Makefile rules for building HTML documentation using Haddock. It's a bit rough around the edges so far, and I haven't added any actual documentation yet, but you can build Haddock (in fptools/haddock) and then say $ make haddock-docs in fptools/libraries/base to get bare-bones HTML docs for the entire contents (almost) of the base package. ] [[project @ 2002-04-24 16:10:21 by simonmar] simonmar**20020424161021 Omit the generic declarations when processing with Haddock, since the Haddock parser doesn't understand them (yet). ] [[project @ 2002-04-24 16:09:12 by simonmar] simonmar**20020424160935 Update foreign import syntax ] [[project @ 2002-04-24 16:01:51 by simonmar] simonmar**20020424160339 Update foreign import syntax ] [[project @ 2002-04-24 15:47:34 by simonmar] simonmar**20020424154734 Update foreign import syntax ] [[project @ 2002-04-24 15:47:10 by sof] sof**20020424154710 Directory.Permissions.searchable: True iff S_ISDIR() and X bit set (was : !S_ISREG() and X) -- falls into line with what nhc98 and Hugs does ] [[project @ 2002-04-24 11:17:53 by simonpj] simonpj**20020424111753 "\Oxxx" and "\Xyyy" are not octal or hexadecimal escapes in Haskell 98, and should not be lexed as such. ] [[project @ 2002-04-18 23:32:56 by sof] sof**20020418233256 re-added Show instance for ThreadId ] [[project @ 2002-04-13 14:59:06 by panne] panne**20020413145906 Ugly hack to make `lex' H98-compliant again: lex "" should return [("","")], not []. This should probably be fixed elsewhere... ] [[project @ 2002-04-13 05:08:55 by sof] sof**20020413050855 readIEEENumber: support reading IEEE-754 'special' values (NaN,Inf) ] [[project @ 2002-04-11 12:03:43 by simonpj] simonpj**20020411120345 ------------------- Mainly derived Read ------------------- This commit is a tangle of several things that somehow got wound up together, I'm afraid. The main course ~~~~~~~~~~~~~~~ Replace the derived-Read machinery with Koen's cunning new parser combinator library. The result should be * much smaller code sizes from derived Read * faster execution of derived Read WARNING: I have not thoroughly tested this stuff; I'd be glad if you did! All the hard work is done, but there may be a few nits. The Read class gets two new methods, not exposed in the H98 inteface of course: class Read a where readsPrec :: Int -> ReadS a readList :: ReadS [a] readPrec :: ReadPrec a -- NEW readListPrec :: ReadPrec [a] -- NEW There are the following new libraries: Text.ParserCombinators.ReadP Koens combinator parser Text.ParserCombinators.ReadPrec Ditto, but with precedences Text.Read.Lex An emasculated lexical analyser that provides the functionality of H98 'lex' TcGenDeriv is changed to generate code that uses the new libraries. The built-in instances of Read (List, Maybe, tuples, etc) use the new libraries. Other stuff ~~~~~~~~~~~ 1. Some fixes the the plumbing of external-core generation. Sigbjorn did most of the work earlier, but this commit completes the renaming and typechecking plumbing. 2. Runtime error-generation functions, such as GHC.Err.recSelErr, GHC.Err.recUpdErr, etc, now take an Addr#, pointing to a UTF8-encoded C string, instead of a Haskell string. This makes the *calls* to these functions easier to generate, and smaller too, which is a good thing. In particular, it means that MkId.mkRecordSelectorId doesn't need to be passed "unpackCStringId", which was GRUESOME; and that in turn means that tcTypeAndClassDecls doesn't need to be passed unf_env, which is a very worthwhile cleanup. Win/win situation. 3. GHC now faithfully translates do-notation using ">>" for statements with no binding, just as the report says. While I was there I tidied up HsDo to take a list of Ids instead of 3 (but now 4) separate Ids. Saves a bit of code here and there. Also introduced Inst.newMethodFromName to package a common idiom. ] [[project @ 2002-04-10 15:57:16 by simonmar] simonmar**20020410155716 Update to newer FFI definition style ] [[project @ 2002-04-10 11:43:49 by stolz] stolz**20020410114349 Two new scheduler-API primops: 1) GHC.Conc.forkProcess/forkProcess# :: IO Int This is a low-level call to fork() to replace Posix.forkProcess(). In a Concurrent Haskell setting, only the thread invoking forkProcess() is alive in the child process. Other threads will be GC'ed! This brings the RTS closer to pthreads, where a call to fork() doesn't clone any pthreads, either. The result is 0 for the child and the child's pid for the parent. The primop will barf() when used on mingw32, sorry. 2) GHC.Conc.labelThread/forkProcess# :: String -> IO () Useful for scheduler debugging: If the RTS is compiled with DEBUGging support, this primitive assigns a name to the current thread which will be used in debugging output (+RTS -D1). For larger applications, simply numbering threads is not sufficient. Notice: The Haskell side of this call is always available, but if you are not compiling with debugging support, the actual primop will turn into a no-op. ] [[project @ 2002-04-02 15:33:34 by sof] sof**20020402153334 don't bother defining __hscore_sigaddset() on mingw ] [[project @ 2002-04-02 10:19:21 by simonmar] simonmar**20020402101921 Add foldl', the strict version of foldl. ] [[project @ 2002-04-01 09:19:18 by simonpj] simonpj**20020401091918 Remove Ix context from STArray data type. Data type contexts are evil. H98 says they even apply for pattern matching, which GHC didn't implement till now --- and that forces Ix even on equality of STArrays. No, no, no. ] [[project @ 2002-03-27 17:55:26 by simonmar] simonmar**20020327175526 Fix cut-n-pasto (the testsuite actually showed up something useful!) ] [[project @ 2002-03-26 23:50:56 by sof] sof**20020326235056 To make cygwin/mingw interworking a little bit simpler, use the __MINGW32__ define rather than config.h's mingw32_TARGET_OS ] [[project @ 2002-03-26 21:07:06 by sof] sof**20020326210706 make it work with cygwin again ] [[project @ 2002-03-26 21:02:19 by sof] sof**20020326210219 cygwin: stick with system() ] [[project @ 2002-03-26 20:18:28 by sof] sof**20020326201828 mingw32: drop msvcrt from extra_libraries list ] [[project @ 2002-03-26 17:11:15 by simonmar] simonmar**20020326171115 Update to new FFI syntax ] [[project @ 2002-03-26 17:09:52 by simonmar] simonmar**20020326170952 Update foreign import declaration to new syntax ] [[project @ 2002-03-26 17:06:32 by simonmar] simonmar**20020326170632 Add some missing type signatures ] [[project @ 2002-03-26 17:03:08 by simonmar] simonmar**20020326170308 Add type signatures for isAlreadyExistsErrorType & friends ] [[project @ 2002-03-26 10:53:03 by simonmar] simonmar**20020326105303 sigaddset() can be a macro, so add an wrapper around it (inlined in via-C mode). I didn't bother with the #ifdef darwin_TARGET_OS around this change since it doesn't hurt on other architectures. ] [[project @ 2002-03-26 10:44:32 by simonmar] simonmar**20020326104432 sigaddset returns a CInt, not () From: Wolfgang Thaller ] [[project @ 2002-03-25 15:49:26 by sof] sof**20020325154926 make HSbase splitting a mingw-only affair (and a sorry one, at that.) ] [[project @ 2002-03-25 05:25:27 by sof] sof**20020325052527 make splitting of HSbase.o work (mingw only) ] [[project @ 2002-03-25 05:23:53 by sof] sof**20020325052353 provide isblank() for Win32 ] [[project @ 2002-03-22 10:20:24 by simonmar] simonmar**20020322102024 This module now lives above the Prelude in the dependency tree. ] [[project @ 2002-03-20 15:38:36 by simonmar] simonmar**20020320153836 convert to new-style FFI declarations ] [[project @ 2002-03-19 11:24:51 by simonmar] simonmar**20020319112452 Fix 64-bit shift operations. - Move the declarations of the 64-bit "primops" from PrimOps.h to HsBase.h where they more properly belong. - change the names of the 64-bit shift ops to include the "unchecked" prefix - add checked versions of these primops to GHC.Int and GHC.Word, and use them. - update the FFI declarations in GHC.Int and GHC.Word while I'm there. ] [[project @ 2002-03-19 10:59:01 by simonmar] simonmar**20020319105901 Use new form of FFI declarations ] [[project @ 2002-03-18 14:03:20 by simonmar] simonmar**20020318140320 Fix silly bug I noticed unpackAcc, which apparently is not triggered. ] [[project @ 2002-03-15 12:45:12 by simonmar] simonmar**20020315124512 This doesn't appear to be used ] [[project @ 2002-03-15 12:42:39 by simonmar] simonmar**20020315124307 Convert to new syntax ] [[project @ 2002-03-14 16:26:40 by simonmar] simonmar**20020314162640 Add class Splittable that accidentally got dropped on the floor when we moved over to the new libraries. ] [[project @ 2002-03-14 12:09:49 by simonmar] simonmar**20020314120952 Eliminate some orphan-instance modules to speed up compilation. I decided to just bite the bullet and give Data.Dynamic an .hi-boot file, so I could remove GHC.Dynamic altogether, move its data types into Data.Dynamic and hence prevent Data.Dynamic from being an orphan module. Furthermore, GHC.Dynamic wasn't GHC specific - its only purpose in life was to prevent module loops, so having it at all was artificial. ] [[project @ 2002-03-11 14:53:51 by simonmar] simonmar**20020311145351 Use updated FFI syntax ] [[project @ 2002-03-05 14:31:47 by simonmar] simonmar**20020305143147 The interface file for GHC.Prim is now built-in to the compiler, and mostly automatically generated. ] [[project @ 2002-03-04 17:25:36 by panne] panne**20020304172536 Export modifySTRef, too ] [[project @ 2002-03-04 17:02:43 by simonmar] simonmar**20020304170243 - generate GHC/Prim.hi from GHC/Prim.hi-boot using ghc --compile-iface - compile the whole lot with -funbox-strict-fields ] [[project @ 2002-02-27 14:33:09 by simonmar] simonmar**20020227143309 Move the Float/Double constant folding rules from GHC.Float to GHC.Base, thus returning GHC.Float to its non-orphan status. ] [[project @ 2002-02-27 14:32:23 by simonmar] simonmar**20020227143223 Define hTell in GHC.Handle, and export it from System.IO ] [[project @ 2002-02-27 14:31:44 by simonmar] simonmar**20020227143144 remove unnecessary import of GHC.Prim ] [[project @ 2002-02-26 18:19:17 by ross] ross**20020226181917 New Control.Arrow module, plus Arrow stub (in lang) for compatability. ] [[project @ 2002-02-17 20:08:56 by panne] panne**20020217200856 Add missing commas... >:-( ] [[project @ 2002-02-17 20:05:35 by panne] panne**20020217200535 Install GHC.Prim interface file, too... *sigh* ] [[project @ 2002-02-17 15:22:11 by panne] panne**20020217152211 Synch import_dirs with the result of "make install". It could have been fixed the other way round, but fixing the config files makes more sense to me. Furthermore, I've got a 50% chance of taking the correct route by pure accident... ;-) ] [[project @ 2002-02-16 18:04:28 by simonmar] simonmar**20020216180428 Must #include before regex.h ] [[project @ 2002-02-15 11:28:47 by simonpj] simonpj**20020215112847 Remove __P from prototypes ] [[project @ 2002-02-15 11:27:03 by simonpj] simonpj**20020215112703 - include rather than non-std - remove use of __P-style prototypes ] [[project @ 2002-02-15 11:26:02 by simonpj] simonpj**20020215112602 mingw32 doesn't define _POSIX2_RE_DUP_MAX, it seems ] [[project @ 2002-02-14 15:14:02 by simonmar] simonmar**20020214151402 Fixes to 'make install' in fptools/libraries. We have to maintain the directory structure when installing the .hi files, rather than just dumping them in a single directory as we do for packages in fptools/hslibs. ] [[project @ 2002-02-14 14:08:50 by simonmar] simonmar**20020214140850 Catch up with changes to the foreign import syntax. ] [[project @ 2002-02-14 14:08:25 by simonmar] simonmar**20020214140825 Use cbits/regex if the system doesn't have a POSIX-compatible regular expression library. ] [[project @ 2002-02-14 14:07:16 by simonmar] simonmar**20020214140716 Also import FreeBSD's regex.h ] [[project @ 2002-02-14 14:05:48 by simonmar] simonmar**20020214140548 Include regex stuff if $(HavePosixRegex) == "NO" ] [[project @ 2002-02-14 14:05:12 by simonmar] simonmar**20020214140512 FreeBSD regex library requires reallocf(), a FreeBSD-specific flavour of realloc(), so include it here. ] [[project @ 2002-02-14 14:03:25 by simonmar] simonmar**20020214140325 Remove support for "collate" which appears to be a locale-independent way of interpreting character ranges like [a-z]. Anyway it relies on stuff internal to FreeBSD's libc which doesn't appear to be easy to extract, so just disable it. ] [[project @ 2002-02-14 14:01:38 by simonmar] simonmar**20020214140138 ==> "regex.h" ] [[project @ 2002-02-14 13:59:21 by simonmar] simonmar**20020214135921 Initial revision ] [[project @ 2002-02-14 13:59:20 by simonmar] simonmar**20020214135921 Import FreeBSD's regex library ] [[project @ 2002-02-14 07:33:09 by sof] sof**20020214073309 move half a dozen non-mingw f-imports into approp. ifdef section ] [[project @ 2002-02-14 07:32:17 by sof] sof**20020214073217 mingw: support timezone and tzname (as before) ] [[project @ 2002-02-14 07:31:34 by sof] sof**20020214073134 hook in timeUtils.h ] [[project @ 2002-02-14 07:31:03 by sof] sof**20020214073103 Time stubs (for mingw) ] [[project @ 2002-02-13 14:26:01 by simonmar] simonmar**20020213142601 Move c_unlink foreign import outside #ifdef mingw32_TARGET_OS ] [[project @ 2002-02-13 12:21:21 by simonmar] simonmar**20020213122121 Merge inputReady.c from ghc/lib/std ] [[project @ 2002-02-13 12:17:14 by simonmar] simonmar**20020213121714 import Prelude ] [[project @ 2002-02-13 12:12:08 by simonmar] simonmar**20020213121208 Make this build on mingw32 (hopefully) ] [[project @ 2002-02-13 11:52:42 by simonmar] simonmar**20020213115242 Remove a ToDo ] [[project @ 2002-02-13 11:51:40 by simonmar] simonmar**20020213115140 - Detect presence of a POSIX-compatible regex interface in configure, and omit Text.Regex.Posix (and hence Text.Regex) if it is missing. ToDo: pull in a suitably-licensed implementation of POSIX regex to be used in the event that the system doesn't supply one. - Rename old HaveRegex to HaveGNURegex. ] [[project @ 2002-02-13 10:43:15 by simonpj] simonpj**20020213104315 Use C comments not Haskell comments; ghc-pkg doesnt understand the latter ] [[project @ 2002-02-13 10:17:29 by simonmar] simonmar**20020213101729 include to get PATH_MAX ] [[project @ 2002-02-12 15:51:26 by simonmar] simonmar**20020212155126 Remove fromInt/toInt ] [[project @ 2002-02-12 15:17:34 by simonmar] simonmar**20020212151734 Switch over to the new hierarchical libraries --------------------------------------------- This commit reorganises our libraries to use the new hierarchical module namespace extension. The basic story is this: - fptools/libraries contains the new hierarchical libraries. Everything in here is "clean", i.e. most deprecated stuff has been removed. - fptools/libraries/base is the new base package (replacing "std") and contains roughly what was previously in std, lang, and concurrent, minus deprecated stuff. Things that are *not allowed* in libraries/base include: Addr, ForeignObj, ByteArray, MutableByteArray, _casm_, _ccall_, ``'', PrimIO For ByteArrays and MutableByteArrays we use UArray and STUArray/IOUArray respectively now. Modules previously called PrelFoo are now under fptools/libraries/GHC. eg. PrelBase is now GHC.Base. - fptools/libraries/haskell98 provides the Haskell 98 std. libraries (Char, IO, Numeric etc.) as a package. This package is enabled by default. - fptools/libraries/network is a rearranged version of the existing net package (the old package net is still available; see below). - Other packages will migrate to fptools/libraries in due course. NB. you need to checkout fptools/libraries as well as fptools/hslibs now. The nightly build scripts will need to be tweaked. - fptools/hslibs still contains (almost) the same stuff as before. Where libraries have moved into the new hierarchy, the hslibs version contains a "stub" that just re-exports the new version. The idea is that code will gradually migrate from fptools/hslibs into fptools/libraries as it gets cleaned up, and in a version or two we can remove the old packages altogether. - I've taken the opportunity to make some changes to the build system, ripping out the old hslibs Makefile stuff from mk/target.mk; the new package building Makefile code is in mk/package.mk (auto-included from mk/target.mk). The main improvement is that packages now register themselves at make boot time using ghc-pkg, and the monolithic package.conf in ghc/driver is gone. I've updated the standard packages but haven't tested win32, graphics, xlib, object-io, or OpenGL yet. The Makefiles in these packages may need some further tweaks, and they'll need pkg.conf.in files added. - Unfortunately all this rearrangement meant I had to bump the interface-file version and create a bunch of .hi-boot-6 files :-( ] [[project @ 2002-02-12 10:52:47 by simonmar] simonmar**20020212105247 wibbles ] [[project @ 2002-02-12 10:52:18 by simonmar] simonmar**20020212105218 Place this below the Prelude in the dependency tree, so we can import it in Foreign.Ptr without creating a loop. ] [[project @ 2002-02-12 10:51:06 by simonmar] simonmar**20020212105106 Export h{Get,Set}Echo, and hIsTerminalDevice ] [[project @ 2002-02-12 10:50:37 by simonmar] simonmar**20020212105037 Make this build: OPTIONS -fparr and place it above the Prelude in the dependency tree. ] [[project @ 2002-02-12 10:50:03 by simonmar] simonmar**20020212105003 The new home for performGC. ] [[project @ 2002-02-12 09:39:19 by simonmar] simonmar**20020212093919 Merge rev. 1.61 of ghc/lib/std/PrelBase.lhs ] [[project @ 2002-02-11 17:30:57 by simonmar] simonmar**20020211173057 Add code to build/install the split version of this library on Windows (untested). It may be that the base library has grown sufficiently to warrant being split into 3 now, or we may need to orgnise the splitting criteria a little better. Feedback from someone with a Win32 build would be welcome (once I've checked the rest of the changes in). ] [[project @ 2002-02-11 17:11:12 by simonmar] simonmar**20020211171112 New module from ghc/lib/std. ] [[project @ 2002-02-11 17:10:56 by simonmar] simonmar**20020211171056 don't forget -funbox-strict-fields for GHC.IOBase ] [[project @ 2002-02-11 16:11:38 by simonmar] simonmar**20020211161138 Add missing Show instance for Ptr. ] [[project @ 2002-02-11 12:31:30 by simonmar] simonmar**20020211123130 - Don't forget System/Console - Add -fglasgow-exts and -cpp here rather than mk/target.mk ] [[project @ 2002-02-11 12:29:13 by simonmar] simonmar**20020211122927 HsCore ==> HsBase ] [[project @ 2002-02-11 12:28:57 by simonmar] simonmar**20020211122857 Export runMain (following ghc/lib/std/PrelTopHandler.lhs) ] [[project @ 2002-02-11 12:28:31 by simonmar] simonmar**20020211122831 Export the various memcpy functions (following ghc/lib/std/PrelIO.hs) ] [[project @ 2002-02-11 12:28:04 by simonmar] simonmar**20020211122804 Final part of QuickCheck from hslibs/utils. ] [[project @ 2002-02-11 12:27:34 by simonmar] simonmar**20020211122734 These files aren't necessary any more. ] [[project @ 2002-02-07 11:13:29 by simonmar] simonmar**20020207111330 Various updates after rearranging the directory structure in the repository (there wasn't any history worth keeping, and it's better to do this now before we go 'live'). Packages under 'compat' are backwards-compatibility packages which should provide an interface equivalent to the current hslibs setup. There are a few packages still missing. ] [[project @ 2002-02-06 11:51:12 by simonmar] simonmar**20020206115112 - change package name to "base" - make GHC/PrimopWrappers work. ] [[project @ 2002-02-06 11:50:31 by simonmar] simonmar**20020206115031 Back off: don't use UseGhcForCc as a magic way to get the right include paths, because we still need to tell mkdependC about them. ] [[project @ 2002-02-06 11:49:32 by simonmar] simonmar**20020206114932 #include ] [[project @ 2002-02-06 10:40:26 by simonmar] simonmar**20020206104026 Building the cbits library is simpler with UseGhcForCC=YES. ] [[project @ 2002-02-06 10:14:26 by simonmar] simonmar**20020206101426 There's no need for this to be a .hsc file. I'm moving towards libraries/core being .hsc-free, so eventually this can be used for bootstrapping. ] [[project @ 2002-02-05 17:32:24 by simonmar] simonmar**20020205173227 - Merging from ghc/lib/std - Add System.IO.Error - Now builds without --make, so we can do -split-objs ] [[project @ 2002-01-02 15:13:23 by simonmar] simonmar**20020102151323 We need GHC/Prim.hi for when the package is built, although we only use GHC/Prim.hi-boot during building. ] [[project @ 2002-01-02 15:01:44 by simonmar] simonmar**20020102150144 Fix the names of some foreign imports. ] [[project @ 2002-01-02 15:01:27 by simonmar] simonmar**20020102150127 import Prelude explicitly (this is necessary in libraries/core so that ghc --make can infer correct dependencies). ] [[project @ 2002-01-02 14:40:09 by simonmar] simonmar**20020102144011 Make this compile again, and update with latest changes from hslibs/lang. ] [[project @ 2001-12-21 15:07:20 by simonmar] simonmar**20011221150726 Merge up to the ghc/lib/std on the HEAD (tagged as new-libraries-last-merged). ] [[project @ 2001-10-18 11:14:17 by rrt] rrt**20011018111417 Remove comment that was for STGHUGS. ] [[project @ 2001-10-18 11:10:19 by rrt] rrt**20011018111019 Remove STGHUGSery. ] [[project @ 2001-09-14 11:25:57 by simonmar] simonmar**20010914112557 Remove inline functions from GHC.Handle and GHC.IO, and declare them as 'extern inline' in HsCore.h. ] [[project @ 2001-09-14 11:25:23 by simonmar] simonmar**20010914112524 - replace PackedString implementation with one based on UArray. It hasn't been tuned for performance yet, and it seems that not enough fusion is happening yet, but in theory it should be nearly as fast as the old implementation (modulo the fact that the new packed string representation used 32-bit chars vs. 8-bit chars in the old implementation). - remove hPutBufBA and hGetBufBA from GHC.IO. - add new functions hPutArray and hGetArray to Data.Array.IO, to directly read/write arrays of bytes. These are behind the implementations of hGetPS & hPutPS in the new PackedString. - finally, remove the last vestiges of ByteArray and MutableByteArray from the core libraries. Deprecated implementations will be available in the lang compatibility package. - move the inline functions from GHC.Handle into HsCore.h, and declare them as 'extern inline'. ] [[project @ 2001-09-13 15:34:17 by simonmar] simonmar**20010913153417 remove unused import ] [[project @ 2001-09-13 11:50:35 by simonmar] simonmar**20010913115035 Add Set (from package data) ] [[project @ 2001-09-13 11:40:28 by simonmar] simonmar**20010913114028 remove get_prog_arg{c,v} prototypes ] [[project @ 2001-09-13 11:39:58 by simonmar] simonmar**20010913113958 Use withForeignPtr rather than passing ForeignPtrs directly to foreign imported functions. ] [[project @ 2001-09-13 11:39:14 by simonmar] simonmar**20010913113914 Fix the module header ] [[project @ 2001-09-13 11:38:54 by simonmar] simonmar**20010913113854 cosmetic only: separate the IOErrorType declaration into Haskell 98 and non-Haskell 98 sections. ] [[project @ 2001-09-13 11:37:43 by simonmar] simonmar**20010913113743 remove a couple of unused imports ] [[project @ 2001-09-13 11:37:08 by simonmar] simonmar**20010913113708 add missing import; make it compile ] [[project @ 2001-09-13 11:36:52 by simonmar] simonmar**20010913113652 make this compile ] [[project @ 2001-09-13 11:35:09 by simonmar] simonmar**20010913113509 Add System.Mem directory ] [[project @ 2001-08-30 13:36:00 by simonmar] simonmar**20010830133600 fix a few typos and add some clarifications ] [[project @ 2001-08-17 12:50:34 by simonmar] simonmar**20010817125035 Track updates to ghc/lib/std and hslibs. ] [[project @ 2001-08-17 12:48:38 by simonmar] simonmar**20010817124838 Add QuickCheck from package util. ] [[project @ 2001-08-17 12:47:47 by simonmar] simonmar**20010817124747 Add a Makefile (for installing the includes) ] [[project @ 2001-08-17 12:47:10 by simonmar] simonmar**20010817124710 Copy from ghc/lib/std/cbits ] [[project @ 2001-08-17 12:46:40 by simonmar] simonmar**20010817124640 Add default pretty printing library. ] [[project @ 2001-08-17 12:46:16 by simonmar] simonmar**20010817124616 Add default pretty printing library (Text.PrettyPrint.HughesPJ). ] [[project @ 2001-08-17 12:45:27 by simonmar] simonmar**20010817124527 Move System.IO.Directory to System.Directory ] [[project @ 2001-08-17 12:44:54 by simonmar] simonmar**20010817124454 Add FiniteMap from package data. ] [[project @ 2001-08-07 15:25:04 by simonmar] simonmar**20010807152504 Remove 'fork' (unsafe, and not used), and don't export 'seq' and 'par'. ] [[project @ 2001-08-02 13:30:36 by simonmar] simonmar**20010802133036 Don't export non-H98 functions ] [[project @ 2001-08-02 11:20:50 by simonmar] simonmar**20010802112050 Add a POSIX regular expression binding as Text/Regex/Posix. POSIX regexps are provided virtually everywhere (except Windows, but there's always pcre), and this means we won't have to ship the a copy of GNU regex.c, which is GPL'ed. Compared to hslibs/text/Regex.lhs, this one is much shorter (150 lines vs. 350), more portable (uses the FFI libs and hsc2hs vs. casm), and easier to use (it returns the right number of subexpressions from the regex, rather than 32 all the time). Text.Regex is a re-implementation of the old hslibs/text/RegexString.lhs, written to use Text.Regex.Posix. The syntax of regexps is probably not identical, but it's certainly similar enough that the URI library works unchanged with the new implementation. ] [[project @ 2001-08-01 13:53:07 by simonmar] simonmar**20010801135307 Add Andy Gill's HTML combinator library. ] [[project @ 2001-07-31 16:41:32 by simonmar] simonmar**20010731164132 Add the template package config, and move some of the makefile code out into ../mk/target.mk. ] [[project @ 2001-07-31 16:35:29 by simonmar] simonmar**20010731163529 use the eqForeignPtr primop ] [[project @ 2001-07-31 14:36:19 by simonmar] simonmar**20010731143619 add missing #include ] [[project @ 2001-07-31 14:34:23 by simonmar] simonmar**20010731143423 add a couple of useful variants of catch & catchJust: handle :: (Exception -> IO a) -> IO a -> IO a handleJust :: (Exception -> Maybe b) -> (b -> IO a) -> IO a -> IO a ] [[project @ 2001-07-31 13:38:10 by simonmar] simonmar**20010731133810 merge hslibs/lang/ArrayBase.lhs rev. 1.19 ] [[project @ 2001-07-31 13:31:44 by simonmar] simonmar**20010731133144 merge hslibs/lang/ST.lhs rev. 1.14 ] [[project @ 2001-07-31 13:28:58 by simonmar] simonmar**20010731132858 merge hslibs/lang/ArrayBase.lhs rev. 1.17-1.18 ] [[project @ 2001-07-31 13:14:01 by simonmar] simonmar**20010731131401 merge ghc/lib/std/PrelList.lhs rev. 1.25 ] [[project @ 2001-07-31 13:11:40 by simonmar] simonmar**20010731131140 merge ghc/lib/std/PrelErr.lhs rev. 1.21 ] [[project @ 2001-07-31 13:11:07 by simonmar] simonmar**20010731131107 merge ghc/lib/std/PrelErr.lhs rev. 1.20 ] [[project @ 2001-07-31 13:10:01 by simonmar] simonmar**20010731131001 merge ghc/lib/std/PrelStorable.lhs rev. 1.8 ] [[project @ 2001-07-31 13:09:11 by simonmar] simonmar**20010731130911 merge ghc/lib/std/Num.lhs rev. 1.40 ] [[project @ 2001-07-31 13:06:51 by simonmar] simonmar**20010731130651 merge ghc/lib/std/PrelEnum.lhs rev. 1.14 ] [[project @ 2001-07-31 13:06:09 by simonmar] simonmar**20010731130609 merge ghc/lib/std/Time.hsc rev. 1.19 ] [[project @ 2001-07-31 13:05:33 by simonmar] simonmar**20010731130533 merge ghc/lib/std/Time.hsc rev. 1.18 ] [[project @ 2001-07-31 13:05:02 by simonmar] simonmar**20010731130502 merge ghc/lib/std/Time.hsc rev. 1.17 ] [[project @ 2001-07-31 13:03:28 by simonmar] simonmar**20010731130328 merge ghc/lib/std/PrelHandle.hsc rev. 1.15 ] [[project @ 2001-07-31 13:00:26 by simonmar] simonmar**20010731130026 merge ghc/lib/std/PrelGHC.hi-boot rev. 1.57 ] [[project @ 2001-07-31 12:59:30 by simonmar] simonmar**20010731125930 merge ghc/lib/std/PrelCError.lhs rev. 1.10 ] [[project @ 2001-07-31 12:58:00 by simonmar] simonmar**20010731125800 merge ghc/lib/std/PrelInt.lhs rev. 1.16-1.18 ] [[project @ 2001-07-31 12:52:37 by simonmar] simonmar**20010731125237 add file from main tree. ] [[project @ 2001-07-31 12:51:37 by simonmar] simonmar**20010731125137 merge ghc/lib/std/PrelTopHandler.lhs rev. 1.3 ] [[project @ 2001-07-31 12:50:18 by simonmar] simonmar**20010731125018 merge fptools/ghc/lib/std/CPUTime.hsc rev. 1.8 ] [[project @ 2001-07-31 12:48:55 by simonmar] simonmar**20010731124855 merge fptools/ghc/lib/std/PrelHandle.hsc rev. 1.13 ] [[project @ 2001-07-31 12:48:13 by simonmar] simonmar**20010731124813 merge fptools/ghc/lib/std/PrelPosix.hsc rev. 1.8 ] [[project @ 2001-07-31 12:47:13 by simonmar] simonmar**20010731124713 merge fptools/ghc/lib/std/PrelHandle.hsc rev. 1.12 ] [[project @ 2001-07-31 12:46:17 by simonmar] simonmar**20010731124617 merge fptools/ghc/lib/std/IO.hsc rev. 1.6 ] [[project @ 2001-07-31 11:59:08 by simonmar] simonmar**20010731115908 merge fptools/ghc/lib/std/PrelHandle.hsc rev. 1.11 ] [[project @ 2001-07-31 11:51:09 by simonmar] simonmar**20010731115109 Catch up with changes in the main tree. ] [[project @ 2001-07-05 13:52:49 by simonmar] simonmar**20010705135249 Latest revisions: - the language extension proposal is included, importing a slightly edited version of Malcolm's original proposal. The section on 'implicit as' is placed under a "possible extension" section heading, as we haven't come to a conclusion on this yet. - Note proposal to rename Org to Contrib - Add hierarchy design guidelines - Rename NHC to Nhc consistently - Elaborate on what we mean by "approved extensions" in the portability section. ] [[project @ 2001-07-05 10:38:33 by simonmar] simonmar**20010705103833 Makefile for the document. ] [[project @ 2001-07-04 12:07:27 by simonmar] simonmar**20010704120727 Add Numeric library here for the time being. This is a combination of the H98 Numeric library and a few functions from GHC's NumExts. ] [[project @ 2001-07-04 12:06:33 by simonmar] simonmar**20010704120633 Add showListWith :: (a -> ShowS) -> [a] -> ShowS from GHC's NumExts library. ] [[project @ 2001-07-04 11:30:52 by simonmar] simonmar**20010704113052 Add Prelude imports. ] [[project @ 2001-07-04 11:29:26 by simonmar] simonmar**20010704112926 need to import Data.Tuple explicitly to get dependencies right. ] [[project @ 2001-07-04 11:06:39 by simonmar] simonmar**20010704110639 Add Generics library ] [[project @ 2001-07-04 10:51:09 by simonmar] simonmar**20010704105109 oops, better import Prelude (we have to explicitly import Prelude in all modules that aren't compiled with -fno-implicit-prelude so that ghc --make gets the dependencies right. This should really be fixed in CompManager somehow). ] [[project @ 2001-07-04 10:48:39 by simonmar] simonmar**20010704104839 Add 4 new libraries ] [[project @ 2001-07-04 10:48:16 by simonmar] simonmar**20010704104816 bugfix in yesterday's changes. ] [[project @ 2001-07-03 14:17:23 by simonmar] simonmar**20010703141723 GHC.Maybe isn't used any more (contents moved to Data.Maybe and Data.Either). ] [[project @ 2001-07-03 14:13:32 by simonmar] simonmar**20010703141332 Move generic Maybe and Either definitions from GHC.Maybe to Data.Maybe and Data.Either, and remove GHC.Maybe. ] [[project @ 2001-07-03 11:38:07 by simonmar] simonmar**20010703113807 add new file ] [[project @ 2001-07-03 11:37:49 by simonmar] simonmar**20010703113751 Latest round of changes, incorporating: - some changes to the portability/stability requested by Malcolm - Control.Monad.Fix is portable, IO/ST instances moved to System.IO, Control.Monad.ST respectively. - GHC.Tup moved to Data.Tuple, the code in here is mostly portable (and the interface better be). ] [[project @ 2001-07-03 09:21:46 by simonmar] simonmar**20010703092146 Add a paragraph on when to pluralize(*) a module name (*) it's a word, I checked ] [[project @ 2001-07-03 09:02:05 by simonmar] simonmar**20010703090205 add paragraph about capitalisation of module names ] [[project @ 2001-06-29 09:44:03 by simonmar] simonmar**20010629094403 merge ghc/lib/std/CPUTime.hsc rev. 1.7 ] [[project @ 2001-06-29 09:41:37 by simonmar] simonmar**20010629094137 merge fptools/hslibs/lang/ST.lhs rev. 1.4 ] [[project @ 2001-06-28 14:15:04 by simonmar] simonmar**20010628141504 First cut of the Haskell Core Libraries ======================================= NOTE: it's not meant to be a working snapshot. The code is just here to look at and so the NHC/Hugs guys can start playing around with it. There is no build system. For GHC, the libraries tree is intended to be grafted onto an existing fptools/ tree, and the Makefile in libraries/core is a quick hack for that setup. This won't work at the moment without the other changes needed in fptools/ghc, which I haven't committed because they'll cause breakage. However, with the changes required these sources build a working Prelude and libraries. The layout mostly follows the one we agreed on, with one or two minor changes; in particular the Data/Array layout probably isn't final (there are several choices here). The document is in libraries/core/doc as promised. The cbits stuff is just a copy of ghc/lib/std/cbits and has GHC-specific stuff in it. We should really separate the compiler-specific C support from any compiler-independent C support there might be. Don't pay too much attention to the portability or stability status indicated in the header of each source file at the moment - I haven't gone through to make sure they're all consistent and make sense. I'm using non-literate source outside of GHC/. Hope that's ok with everyone. We need to discuss how the build system is going to work... ] Patch bundle hash: 1bb1c29538c9677d919681b8e080592dee0abc1b