Simon Marlow [Tue, 15 Jun 2010 10:54:01 +0000 (10:54 +0000)]
Don't depend on Prelude (#4123)
Simon Marlow [Tue, 1 Jun 2010 14:48:31 +0000 (14:48 +0000)]
bump version to 4.3.0.0, added instance MonadPlus STM
Bas van Dijk [Sun, 16 May 2010 16:06:51 +0000 (16:06 +0000)]
Moved MonadPlus instance for STM from Control.Monad.STM to GHC.Conc to avoid an orphaned instance
Bas van Dijk [Sun, 16 May 2010 17:17:56 +0000 (17:17 +0000)]
Added Applicative and Alternative instances for STM
Ross Paterson [Wed, 2 Jun 2010 21:21:54 +0000 (21:21 +0000)]
expand Foldable instance for Array
Ross Paterson [Thu, 27 May 2010 15:08:33 +0000 (15:08 +0000)]
doc comment illustrating Foldable(foldr)
Ross Paterson [Thu, 27 May 2010 15:07:57 +0000 (15:07 +0000)]
fix syntax in doc comments
Simon Marlow [Thu, 20 May 2010 09:35:38 +0000 (09:35 +0000)]
export hGetBufSome (#4046)
Simon Marlow [Mon, 17 May 2010 13:37:41 +0000 (13:37 +0000)]
hWaitForInput: don't try to read from the device (#4078)
readTextDeviceNonBlocking is not non-blocking on Windows
Simon Marlow [Fri, 14 May 2010 12:46:28 +0000 (12:46 +0000)]
hSetEncoding: change the encoding on both read and write sides (#4066)
Adam Vogt [Fri, 23 Apr 2010 02:21:03 +0000 (02:21 +0000)]
Correct haddock formatting.
Simon Marlow [Wed, 5 May 2010 13:56:37 +0000 (13:56 +0000)]
Fix for hGetBufSome
Simon Marlow [Wed, 5 May 2010 13:56:00 +0000 (13:56 +0000)]
improve the documentation for throwTo and killThread (#3884)
Simon Marlow [Wed, 5 May 2010 10:12:49 +0000 (10:12 +0000)]
elaborate the docs for unsafePerformIO a bit
Simon Marlow [Tue, 4 May 2010 15:28:15 +0000 (15:28 +0000)]
add Typeable instance
Simon Marlow [Tue, 4 May 2010 15:27:59 +0000 (15:27 +0000)]
Add hGetBufSome, like hGetBuf but can return short reads
Simon Marlow [Tue, 4 May 2010 09:53:39 +0000 (09:53 +0000)]
Add swap (#3298)
Simon Marlow [Fri, 23 Apr 2010 12:47:29 +0000 (12:47 +0000)]
inline allocaArray0, to fix withCString benchmark
Simon Marlow [Wed, 21 Apr 2010 09:49:32 +0000 (09:49 +0000)]
raise asynchronous exceptions asynchronously (#3997)
Simon Marlow [Wed, 21 Apr 2010 08:20:41 +0000 (08:20 +0000)]
add NOINLINE pragmas for stdin/stdout/stderr
Simon Marlow [Mon, 19 Apr 2010 13:53:33 +0000 (13:53 +0000)]
INLINE alloca and malloc
See discussion on glasgow-haskell-users:
http://www.haskell.org/pipermail/glasgow-haskell-users/2010-April/018740.html
Matthias Kilian [Mon, 19 Apr 2010 15:54:21 +0000 (15:54 +0000)]
Move comment closer to the offending line
Matthias Kilian [Thu, 15 Apr 2010 14:04:52 +0000 (14:04 +0000)]
Ignore the return code of c_fcntl_write again
The return code has been ignored in the past on purpose, because
O_NONBLOCK will fail on BSDs for some special files. This fixes the
problem mentioned in
http://www.haskell.org/pipermail/glasgow-haskell-users/2010-April/018698.html
Ian Lynagh [Tue, 13 Apr 2010 13:43:39 +0000 (13:43 +0000)]
Fix bitrot in IO debugging code
Also switched to using Haskell Bools (rather than CPP) to en/disable it,
so it shouldn't break again in the future.
Ian Lynagh [Tue, 13 Apr 2010 01:11:47 +0000 (01:11 +0000)]
Tiny code tidy-up
Simon Marlow [Thu, 25 Mar 2010 16:14:03 +0000 (16:14 +0000)]
remove old/wrong comment
Bas van Dijk [Mon, 29 Mar 2010 13:16:24 +0000 (13:16 +0000)]
withThread: block asynchronous exceptions before installing exception handler.
Note that I don't unblock the given io computation. Because AFAICS
withThread is only called with 'waitFd' which only performs an FFI
call which can't receive asynchronous exceptions anyway.
Bas van Dijk [Mon, 29 Mar 2010 13:15:49 +0000 (13:15 +0000)]
runInUnboundThread: block asynchronous exceptions before installing exception handler
Simon Marlow [Tue, 30 Mar 2010 12:11:37 +0000 (12:11 +0000)]
fix the deprecation message (GHC.IO.Handle.Base -> GHC.IO.Handle)
Bas van Dijk [Thu, 18 Mar 2010 20:03:49 +0000 (20:03 +0000)]
Make SampleVar an abstract newtype
Bas van Dijk [Thu, 18 Mar 2010 20:01:04 +0000 (20:01 +0000)]
Fix bugs regarding asynchronous exceptions and laziness in Control.Concurrent.SampleVar
- Block asynchronous exceptions at the right places
- Force thunks before putting them in a MVar
Bas van Dijk [Fri, 19 Mar 2010 12:59:51 +0000 (12:59 +0000)]
Write the thunk 'next' to the MVar
Simon Marlow [Thu, 18 Mar 2010 10:44:36 +0000 (10:44 +0000)]
change to use STM, fixing 4 things
1. there was no async exception protection
2. there was a space leak (now new value is strict)
3. using atomicModifyIORef would be slightly quicker, but can
suffer from adverse scheduling issues (see #3838)
4. also, the STM version is faster.
Ian Lynagh [Fri, 12 Mar 2010 21:41:29 +0000 (21:41 +0000)]
Tweak docs
Bas van Dijk [Mon, 8 Mar 2010 22:24:15 +0000 (22:24 +0000)]
Fixed dead links in documentation of forkIO
Bas van Dijk [Mon, 1 Mar 2010 22:04:42 +0000 (22:04 +0000)]
Documentation fixes in Control.Exception
Simon Marlow [Thu, 25 Feb 2010 12:02:55 +0000 (12:02 +0000)]
Plug two race conditions that could lead to deadlocks in the IO manager
jpm@cs.uu.nl [Wed, 24 Feb 2010 12:55:06 +0000 (12:55 +0000)]
FIX #3866: improve documentation of Data.Data.Constr
Simon Marlow [Tue, 23 Feb 2010 10:16:03 +0000 (10:16 +0000)]
UNDO: Handle NaN, -Infinity and Infinity in the toRational for Float/Double (#3676)
Ian Lynagh [Sun, 21 Feb 2010 19:14:25 +0000 (19:14 +0000)]
Put the complexity in the length docs. Fixes trac #3680
Malcolm.Wallace@cs.york.ac.uk [Sun, 21 Feb 2010 16:32:18 +0000 (16:32 +0000)]
nhc98 should build Data.Functor.
Ian Lynagh [Sat, 13 Feb 2010 14:00:04 +0000 (14:00 +0000)]
Update the exitWith docs
Error pointed out by Volker Wysk <vw@volker-wysk.de>
Simon Marlow [Thu, 11 Feb 2010 10:19:55 +0000 (10:19 +0000)]
Handle NaN, -Infinity and Infinity in the toRational for Float/Double (#3676)
Malcolm.Wallace@cs.york.ac.uk [Thu, 4 Feb 2010 17:10:21 +0000 (17:10 +0000)]
For nhc98, import unsafeInterleaveIO rather than defining it here.
benl@cse.unsw.edu.au [Wed, 3 Feb 2010 02:55:37 +0000 (02:55 +0000)]
Stifle warning about unused return value
Simon Marlow [Wed, 20 Jan 2010 21:18:30 +0000 (21:18 +0000)]
fix #3832: use the locale encoding in openTempFile
Also while I was here fix an XXX: the Handle contained an
uninformative string like <fd: 4> for error messages rather than the
real file path.
Ian Lynagh [Sat, 16 Jan 2010 17:44:51 +0000 (17:44 +0000)]
Fix the build: export void, so it doesn't give an unused binding warning
Simon Marlow [Tue, 12 Jan 2010 23:03:17 +0000 (23:03 +0000)]
hIsEOF: don't do any decoding (#3808)
gwern0@gmail.com [Fri, 8 Jan 2010 21:44:55 +0000 (21:44 +0000)]
Control.Monad: +void :: f a -> f ()
See http://hackage.haskell.org/trac/ghc/ticket/3292
Turns m a -> m (). Lets one call functions for their side-effects without
having to get rid of their return values with '>> return ()'. Very useful
in many contexts (parsing, IO etc.); particularly good for 'forkIO' and 'forM_',
as they demand return types of 'IO ()' though most interesting IO functions
return non-().
Malcolm.Wallace@cs.york.ac.uk [Thu, 24 Dec 2009 15:20:14 +0000 (15:20 +0000)]
Replace the implementation of mergesort with a 2x faster one.
See ticket http://hackage.haskell.org/trac/ghc/ticket/2143.
Malcolm.Wallace@cs.york.ac.uk [Wed, 23 Dec 2009 14:26:25 +0000 (14:26 +0000)]
Restore previous Data.Typeable.typeOf*Default implementations for non-ghc.
Not all compilers have ScopedTypeVariables.
simonpj@microsoft.com [Fri, 18 Dec 2009 16:56:55 +0000 (16:56 +0000)]
Add comments about double bounds-checking, and fast paths for rectangular arrays
See Note [Double bounds-checking of index values] for the details.
The fast paths omit the doubled checks for cases we know about
simonpj@microsoft.com [Fri, 18 Dec 2009 15:51:17 +0000 (15:51 +0000)]
Fix Trac #3245: memoising typeOf
The performance bug in #3245 was caused by computing the typeRep
once for each call of typeOf, rather than once for each dictionary
contruction. (Computing TypeReps is reasonably expensive, because
of the hash-consing machinery.)
This is readily fixed by putting the TypeRep construction outside
the lambda. (Arguably GHC might have worked that out itself,
but it involves floating something between a type lambda and a
value lambda, which GHC doesn't currently do. If it happens a lot
we could fix that.)
simonpj@microsoft.com [Wed, 16 Dec 2009 17:04:41 +0000 (17:04 +0000)]
Mark 'index' as INLINE in GHC.Arr
This makes indexing much faster. See Trac #1216
Ian Lynagh [Sun, 6 Dec 2009 12:50:21 +0000 (12:50 +0000)]
Comment the remaining orphan instance modules
Ian Lynagh [Sat, 5 Dec 2009 18:12:38 +0000 (18:12 +0000)]
De-orphan Eq/Ord Float/Double
Ian Lynagh [Sat, 5 Dec 2009 16:58:54 +0000 (16:58 +0000)]
Add comments to "OPTIONS_GHC -fno-warn-orphans" pragmas
Malcolm.Wallace@cs.york.ac.uk [Wed, 2 Dec 2009 03:28:07 +0000 (03:28 +0000)]
Data.Either.partitionEithers was insufficiently lazy.
Spotted by Daniel Fischer.
Simon Marlow [Mon, 30 Nov 2009 14:44:09 +0000 (14:44 +0000)]
fix the docs regarding finalizer guarantees
Malcolm.Wallace@cs.york.ac.uk [Tue, 1 Dec 2009 03:37:45 +0000 (03:37 +0000)]
x86_64 requires more stack
Simon Marlow [Wed, 25 Nov 2009 14:38:22 +0000 (14:38 +0000)]
check for size < 0 in mallocForeignPtrBytes and friends (#3514)
Simon Marlow [Wed, 25 Nov 2009 12:34:35 +0000 (12:34 +0000)]
hGetContents: close the handle properly on error
When hGetContents caught an error it was closing the handle and then
throwing the exception, without updating the handle with the new
closed state. This lead to a double-closed, which was the cause of
*** glibc detected *** ./Setup: double free or corruption
when iconv_close was called twice on the decoder.
See http://hackage.haskell.org/trac/hackage/ticket/609
Roman Leshchinskiy [Thu, 26 Nov 2009 23:22:19 +0000 (23:22 +0000)]
Fix arities of mapFB and zipFB
Ian Lynagh [Thu, 26 Nov 2009 12:34:04 +0000 (12:34 +0000)]
Remove an unnecessary -fno-warn-orphans flag
Ian Lynagh [Wed, 25 Nov 2009 23:23:49 +0000 (23:23 +0000)]
Tweak layout to work with alternative layout rule
Ian Lynagh [Wed, 25 Nov 2009 19:41:47 +0000 (19:41 +0000)]
Tweak layout to be accepted by the alternative layout rul
Roman Leshchinskiy [Wed, 25 Nov 2009 01:00:03 +0000 (01:00 +0000)]
Make sure zipWithFB has arity 2
It gets 2 arguments in the "zipWith" rule but its arity was higher and the new
inliner didn't inline it sometimes, for instance here:
mpp :: [Double] -> [Double] -> [Double] -> [Double] -> [Double]
mpp as bs cs ds = zipWith (*) (zipWith (+) as bs) (zipWith (+) cs ds)
This was a regression vs. 6.10.
Ian Lynagh [Tue, 24 Nov 2009 13:46:47 +0000 (13:46 +0000)]
Remove an old comment
Ian Lynagh [Tue, 24 Nov 2009 13:36:39 +0000 (13:36 +0000)]
De-orphan the Eq/Ord Integer instances
Ian Lynagh [Tue, 24 Nov 2009 13:34:21 +0000 (13:34 +0000)]
Whitespace only
Ian Lynagh [Tue, 24 Nov 2009 01:17:47 +0000 (01:17 +0000)]
Derive some more instances, rather than writing them by hand
Ian Lynagh [Tue, 24 Nov 2009 01:14:16 +0000 (01:14 +0000)]
We can now derive Ord ()
Ian Lynagh [Mon, 23 Nov 2009 23:33:43 +0000 (23:33 +0000)]
De-orphan tuple Eq/Ord instances
Ian Lynagh [Mon, 23 Nov 2009 22:49:05 +0000 (22:49 +0000)]
Control.Exception.Base no longer has any orphans
Ian Lynagh [Mon, 23 Nov 2009 22:35:44 +0000 (22:35 +0000)]
De-orphan the MonadFix ST instance for GHC
Ian Lynagh [Mon, 23 Nov 2009 22:27:02 +0000 (22:27 +0000)]
Rearrange the contents of Control.Monad.ST; no functionality changes
Ian Lynagh [Mon, 23 Nov 2009 21:56:35 +0000 (21:56 +0000)]
De-orphan the Eq/Ord [a] instances
Ian Lynagh [Mon, 23 Nov 2009 20:22:53 +0000 (20:22 +0000)]
De-orphan the Eq/Ord Char instances
Ian Lynagh [Mon, 23 Nov 2009 20:18:17 +0000 (20:18 +0000)]
De-orphan the Eq/Ord Bool instances
Ian Lynagh [Mon, 23 Nov 2009 19:43:10 +0000 (19:43 +0000)]
Move Eq/Ord Ordering instances to de-orphan them
Malcolm.Wallace@cs.york.ac.uk [Mon, 23 Nov 2009 06:37:43 +0000 (06:37 +0000)]
Remove ffi warnings for nhc98.
Simon Marlow [Wed, 11 Nov 2009 15:19:15 +0000 (15:19 +0000)]
Second attempt to fix #1185 (forkProcess and -threaded)
Patch 2/2: first patch is to ghc
This time without dynamic linker hacks, instead I've expanded the
existing rts/Globals.c to cache more CAFs, specifically those in
GHC.Conc. We were already using this trick for signal handlers, I
should have realised before.
It's still quite unsavoury, but we can do away with rts/Globals.c in
the future when we switch to a dynamically-linked GHCi.
Simon Marlow [Fri, 6 Nov 2009 14:06:29 +0000 (14:06 +0000)]
Rollback #1185 fix
rolling back:
Tue Nov 3 16:05:40 GMT 2009 Simon Marlow <marlowsd@gmail.com>
* Fix #1185: restart the IO manager after fork()
This is the libraries/base part of the patch; there is a corresponding
patch to GHC itself.
The main change is that we now keep track of the IO manager's ThreadId
in a top-level MVar, and ensureIOManagerIsRunning checks whether a
previous IO manager thread is alive before starting one. In the child
of fork(), we can hence call ensureIOManagerIsRunning to restart the
IO manager.
M ./GHC/Conc.lhs -46 +44
Wed Nov 4 17:49:45 GMT 2009 Ian Lynagh <igloo@earth.li>
* Fix the build on Windows
M ./GHC/Conc.lhs -6 +4
Ian Lynagh [Wed, 4 Nov 2009 17:49:45 +0000 (17:49 +0000)]
Fix the build on Windows
Simon Marlow [Tue, 3 Nov 2009 16:05:40 +0000 (16:05 +0000)]
Fix #1185: restart the IO manager after fork()
This is the libraries/base part of the patch; there is a corresponding
patch to GHC itself.
The main change is that we now keep track of the IO manager's ThreadId
in a top-level MVar, and ensureIOManagerIsRunning checks whether a
previous IO manager thread is alive before starting one. In the child
of fork(), we can hence call ensureIOManagerIsRunning to restart the
IO manager.
Simon Marlow [Fri, 16 Oct 2009 11:24:04 +0000 (11:24 +0000)]
improve the documentation for throwErrnoIfRetry
simonpj@microsoft.com [Thu, 29 Oct 2009 13:53:50 +0000 (13:53 +0000)]
Don't inline unpackFoldrCString ever
simonpj@microsoft.com [Thu, 29 Oct 2009 13:53:30 +0000 (13:53 +0000)]
Inline more default methods
Namely Monad: (>>)
Eq: (==), (/=)
Num: (-), negate
Real: quot, rem, div, mod, recip, (/), truncate
Float: (**), logBase, sqrt, tan, tanh
simonpj@microsoft.com [Thu, 29 Oct 2009 13:51:18 +0000 (13:51 +0000)]
Move error messages out of INLINEd default methods
No need to duplicate the error generation!
simonpj@microsoft.com [Thu, 29 Oct 2009 13:50:41 +0000 (13:50 +0000)]
Exploit now-working default-method INLINE pragmas for Data.Bits
* Add INLINE pragmas to default methods for class Bits
* Remove redundant instance methods elsewhere, now that
the default method will do the job
simonpj@microsoft.com [Thu, 29 Oct 2009 13:44:14 +0000 (13:44 +0000)]
Tidy up and comment imports
simonpj@microsoft.com [Thu, 29 Oct 2009 13:43:35 +0000 (13:43 +0000)]
Inline foldr and (.) when applied to two arguments not three
The new INLINE story is (by design) arity-sensitive, so we must
put fewer argument on the LHS for foldr and (.)
Malcolm.Wallace@cs.york.ac.uk [Tue, 13 Oct 2009 09:38:33 +0000 (09:38 +0000)]
dirUtils.c no longer available
Simon Marlow [Mon, 12 Oct 2009 15:29:55 +0000 (15:29 +0000)]
Make hGetContents throw an exception if an error is encountered
Strictly speaking this breaks Haskell 98 compatibility, which requires
hGetContents to just end the lazy stream silently if an error is
encountered. However, for a few reasons we think it will make
everyone's life a bit easier if we make this change
1. Errors will be a lot more common in GHC 6.12.1, in the form
of Unicode decoding errors.
2. When Haskell 98 was designed, we didn't know how to throw
exceptions from inside lazy I/O, but now we do.
3. If anyone is actually relying on the previous behaviour, their
code is arguably broken.
Malcolm.Wallace@cs.york.ac.uk [Tue, 13 Oct 2009 09:28:43 +0000 (09:28 +0000)]
Re-instate System.Console.Getopt for nhc98 builds.
Although it was split out of base a while back, that change was
reverted for ghc soon afterwards, but nhc98 never noticed.
Ian Lynagh [Fri, 9 Oct 2009 18:56:18 +0000 (18:56 +0000)]
Roll back "Another instance of nhc98's strange import semantics."
Fri Oct 9 14:50:51 BST 2009 Malcolm.Wallace@cs.york.ac.uk
GHC (correctly) warns about the unused import, which breaks the validate
build.
Ian Lynagh [Fri, 9 Oct 2009 18:47:04 +0000 (18:47 +0000)]
Roll back "Cope with nhc98's (occasionally-strange) import semantics"
Fri Oct 9 14:43:51 BST 2009 Malcolm.Wallace@cs.york.ac.uk
GHC (correctly) warns about the unused import, which breaks the validate
build.
Malcolm.Wallace@cs.york.ac.uk [Fri, 9 Oct 2009 13:52:42 +0000 (13:52 +0000)]
It seems that nhc98 needs defaulting in Data.Fixed.
Malcolm.Wallace@cs.york.ac.uk [Fri, 9 Oct 2009 13:50:51 +0000 (13:50 +0000)]
Another instance of nhc98's strange import semantics.
Malcolm.Wallace@cs.york.ac.uk [Fri, 9 Oct 2009 13:48:21 +0000 (13:48 +0000)]
Make Data.Functor compatible with non-GHC compilers.