Bryan O'Sullivan [Sat, 27 Nov 2010 06:04:25 +0000 (06:04 +0000)]
Drop System.Mem.Weak's dependency on Prelude
Bryan O'Sullivan [Fri, 26 Nov 2010 23:28:10 +0000 (23:28 +0000)]
Fix #4514 - IO manager deadlock
* The public APIs for threadWaitRead and threadWaitWrite remain unchanged,
and now throw an IOError if a file descriptor is closed behind their
backs. This behaviour is documented.
* The GHC.Conc API is extended to add a closeFd function, the behaviour
of which is documented.
* Behind the scenes, we add a new evtClose event, which is used only when
one thread closes a file descriptor that other threads are blocking on.
* Both base's IO code and network use the new closeFd function.
Bryan O'Sullivan [Fri, 26 Nov 2010 23:27:56 +0000 (23:27 +0000)]
Bump the version of base
Daniel Fischer [Sun, 24 Oct 2010 19:07:07 +0000 (19:07 +0000)]
Cache for powers of 10
Add a cache for commonly needed powers of 10 to speed up floatToDigits.
Daniel Fischer [Sun, 24 Oct 2010 18:50:41 +0000 (18:50 +0000)]
Fix typo in floatToDigits
The mDn value for powers of 2 >= floatDigits x - 1 was typo'ed, leading to longer than necessary show results in a few cases (e.g. 2.0^852).
Corrected in accordance with Burger and Dybvig's paper.
Daniel Fischer [Sun, 24 Oct 2010 18:59:14 +0000 (18:59 +0000)]
Performance enchancement for floatToDigits
Use quot and quotRem instead of div and divMod for dividing positive Integers since that is a bit faster.
Daniel Fischer [Sun, 24 Oct 2010 18:29:42 +0000 (18:29 +0000)]
FIX #4383
Use a better approximation to logBase 10 2 to prevent leading zeros in floatToDigits.
Ian Lynagh [Tue, 16 Nov 2010 21:19:10 +0000 (21:19 +0000)]
Add a Read instance for Data.Fixed.Fixed
Bas van Dijk [Mon, 18 Oct 2010 21:03:17 +0000 (21:03 +0000)]
Also export lines, words, unlines and unwords from Data.String
Bas van Dijk [Mon, 18 Oct 2010 20:56:32 +0000 (20:56 +0000)]
Do not export String from Data.Char
Bas van Dijk [Mon, 18 Oct 2010 20:49:39 +0000 (20:49 +0000)]
Export String from Data.String
Simon Marlow [Wed, 1 Dec 2010 13:19:17 +0000 (13:19 +0000)]
extend the documentation about interruptible operations
Simon Marlow [Wed, 1 Dec 2010 13:08:47 +0000 (13:08 +0000)]
fix a discarded exception in hClose
Ben Lippmeier [Tue, 30 Nov 2010 08:59:31 +0000 (08:59 +0000)]
-XPArr is now -XParallelArrays
Simon Marlow [Wed, 1 Dec 2010 10:51:14 +0000 (10:51 +0000)]
check for ClosedHandle in read/write operations on DuplexHandles (#4808)
Bryan O'Sullivan [Fri, 26 Nov 2010 20:08:41 +0000 (20:08 +0000)]
Fix typo
Simon Marlow [Thu, 25 Nov 2010 12:18:31 +0000 (12:18 +0000)]
fix hTell behaviour with Unicode Handles
Simon Marlow [Thu, 25 Nov 2010 10:25:20 +0000 (10:25 +0000)]
Encode immediately in hPutStr and hPutChar
This means that decoding errors will be detected accurately, and can
be caught and handled. Overall the implementation is simpler this way
too.
It does impose a performance hit on small hPutStrs, although larger
hPutStrs seem to be unaffected. To compensate somewhat, I optimised
hPutStrLn.
Simon Marlow [Wed, 24 Nov 2010 16:42:21 +0000 (16:42 +0000)]
Don't throw an error if the output buffer had no room
This is consistent with the other codecs, and will be relied on by
some upcoming changes in the IO library.
Simon Marlow [Wed, 24 Nov 2010 16:25:30 +0000 (16:25 +0000)]
use LANGUAGE instead of OPTIONS_GHC
Simon Marlow [Mon, 8 Nov 2010 13:32:12 +0000 (13:32 +0000)]
doc fix: don't refer to unblock.
Ian Lynagh [Sat, 20 Nov 2010 19:14:32 +0000 (19:14 +0000)]
Remove unused import on Windows
Ian Lynagh [Sat, 20 Nov 2010 19:10:52 +0000 (19:10 +0000)]
Remove an unnecessary fromIntegral
Ian Lynagh [Sat, 20 Nov 2010 18:58:37 +0000 (18:58 +0000)]
Remove a redundant fromIntegral
simonpj@microsoft.com [Wed, 17 Nov 2010 10:05:10 +0000 (10:05 +0000)]
Make (^) and (^^) INLINABLE
This makes them perform well robustly
(e.g. in test perf/should_run/MethSharing)
rather than relying on a rather delicate
let-floating. See Note [Inlining (^) in Real.lhs
Ian Lynagh [Thu, 18 Nov 2010 01:16:15 +0000 (01:16 +0000)]
TAG 2010-11-18
simonpj@microsoft.com [Wed, 17 Nov 2010 22:57:16 +0000 (22:57 +0000)]
Remove redundant fromIntegral
dimitris@microsoft.com [Wed, 17 Nov 2010 18:33:51 +0000 (18:33 +0000)]
Fixing uses of fromIntegral for Windows
Bas van Dijk [Thu, 14 Oct 2010 21:27:23 +0000 (21:27 +0000)]
Catch exceptions in current thread and throw them to the forked thread in runInUnboundThread
Bas van Dijk [Thu, 14 Oct 2010 21:23:25 +0000 (21:23 +0000)]
There's no need to explicitly check for blocked status in runInUnboundThread when we have mask
Bas van Dijk [Thu, 14 Oct 2010 21:05:46 +0000 (21:05 +0000)]
Use throwIO instead of throw in runInBoundThread and runInUnboundThread
simonpj@microsoft.com [Tue, 16 Nov 2010 17:24:51 +0000 (17:24 +0000)]
Remove unnecessary fromIntegral calls
Ian Lynagh [Sat, 13 Nov 2010 12:34:30 +0000 (12:34 +0000)]
Add some comments to the generated Table.hs
Ian Lynagh [Sat, 13 Nov 2010 11:48:25 +0000 (11:48 +0000)]
System.Event.KQueue conditionally uses BangPatterns
simonpj@microsoft.com [Fri, 12 Nov 2010 17:05:43 +0000 (17:05 +0000)]
Add LANGUAGE BangPatterns to modules that use bang patterns
Johan Tibell [Wed, 3 Nov 2010 09:46:30 +0000 (09:46 +0000)]
Reimplement firstPowerOf2
Ian Lynagh [Sun, 31 Oct 2010 16:25:20 +0000 (16:25 +0000)]
Remove redundant import
Ian Lynagh [Sun, 31 Oct 2010 16:20:34 +0000 (16:20 +0000)]
Re-gen GHC/IO/Encoding/CodePage/Table.hs
Ian Lynagh [Sun, 31 Oct 2010 16:17:32 +0000 (16:17 +0000)]
Add a Makefile for MakeTable, and remove GHC.Num generated import
Ian Lynagh [Sun, 31 Oct 2010 15:49:53 +0000 (15:49 +0000)]
Fix whitespace in codepages/MakeTable.hs
simonpj@microsoft.com [Wed, 27 Oct 2010 19:39:31 +0000 (19:39 +0000)]
Add an INLINE pragma on fromInteger on Int
simonpj@microsoft.com [Wed, 27 Oct 2010 19:38:59 +0000 (19:38 +0000)]
Add an INLINE pragme for fmapDefault
Simon Marlow [Wed, 27 Oct 2010 14:43:24 +0000 (14:43 +0000)]
hGetBuf: fix a case of a short read being returned (#4427)
Bas van Dijk [Sat, 16 Oct 2010 18:53:12 +0000 (18:53 +0000)]
Refer to 'mask' instead of 'block' in documentation of Control.Exception
simonpj@microsoft.com [Mon, 25 Oct 2010 15:16:55 +0000 (15:16 +0000)]
Add showMultiLineString to GHC.Show
This is part of the fix for #4436
showMultiLineString :: String -> [String]
-- | Like 'showLitString' (expand escape characters using Haskell
-- escape conventions), but
-- * break the string into multiple lines
-- * wrap the entire thing in double quotes
-- Example: @breakMultiLineString "hello\ngoodbye\nblah"@
-- returns @["\"hello\\", "\\goodbye\\", "\\blah\"" ]@
-- where those "\\" are really just a single backslash
-- (but I'm writing them here as Haskell literals)
Malcolm.Wallace@me.com [Mon, 25 Oct 2010 10:26:44 +0000 (10:26 +0000)]
CIntPtr, CUIntPtr, CIntMax, CUIntMax are new to nhc98.
Ian Lynagh [Sat, 23 Oct 2010 15:15:10 +0000 (15:15 +0000)]
Follow GHC.Bool/GHC.Types merge
simonpj@microsoft.com [Fri, 22 Oct 2010 14:31:57 +0000 (14:31 +0000)]
Remove redundant imports, now that NoImplicitPrelude does not imply RebindableSyntax
Daniel Fischer [Tue, 19 Oct 2010 01:01:09 +0000 (01:01 +0000)]
FIX #4335
fromRational :: Rational -> Ratio a produced invalid results for fixed-width
types a. Reduce the fraction to avoid that.
Daniel Fischer [Tue, 19 Oct 2010 00:30:30 +0000 (00:30 +0000)]
FIX #4337
Special versions for the power functions with a Rational base and rewrite rules.
Simon Marlow [Thu, 21 Oct 2010 09:33:37 +0000 (09:33 +0000)]
remove trailing whitespace
Daniel Fischer [Thu, 21 Oct 2010 09:32:46 +0000 (09:32 +0000)]
FIX #4336
Avoid superfluous gcd calculation in recip for Ratio a because numerator
and denominator are known to be coprime.
Bas van Dijk [Sun, 26 Sep 2010 19:21:44 +0000 (19:21 +0000)]
Add throwSTM :: Exception e => e -> STM a
Bas van Dijk [Sun, 26 Sep 2010 19:21:06 +0000 (19:21 +0000)]
Generalize catchSTM
Daniel Fischer [Wed, 20 Oct 2010 09:11:11 +0000 (09:11 +0000)]
FIX #4334
Make selector thunks visible to GHC to fix a space leak in lines.
Daniel Fischer [Wed, 20 Oct 2010 09:10:14 +0000 (09:10 +0000)]
FIX #1434
Rewrite rules for RealFrac methods with sized Int and Word targets.
For all types whose range is contained in Int's range, there are now
rewrite rules for properFraction, truncate, floor, ceiling and round
from Double and Float, going through the specialised methods for Int.
Unfortunately, we can't have a rewrite rule for Word.
simonpj@microsoft.com [Mon, 18 Oct 2010 13:58:57 +0000 (13:58 +0000)]
Define SpecConstrAnnotation in GHC.Exts, and import it from there
Reason: avoid having to link the entire ghc package in modules
that use compile-time annotations:
import GHC.Exts( SpecConstrAnnotation )
{-# ANN type T ForceSpecConstr #-}
It's a kind of bug that the package exporting SpecConstrAnnotation
is linked even though it is only needed at compile time, but putting
the data type declaration in GHC.Exts is a simple way to sidestep
the problem
See See Note [SpecConstrAnnotation] in SpecConstr
Simon Marlow [Thu, 14 Oct 2010 08:42:20 +0000 (08:42 +0000)]
throwTo: mention interruptible foreign calls
Simon Marlow [Wed, 13 Oct 2010 10:19:06 +0000 (10:19 +0000)]
remove trailing whitespace
Simon Marlow [Wed, 13 Oct 2010 10:18:49 +0000 (10:18 +0000)]
FIX #4381
Fix scaleFloat by clamping the scaling parameter so that
exponent + scale doesn't overflow.
Patch by: Daniel Fischer <daniel.is.fischer@web.de>
Bas van Dijk [Fri, 24 Sep 2010 22:13:40 +0000 (22:13 +0000)]
Replaced some throws to throwIOs where the type is IO
Bas van Dijk [Tue, 5 Oct 2010 07:27:01 +0000 (07:27 +0000)]
Added initial .authorspellings
Daniel Fischer [Sat, 2 Oct 2010 23:12:01 +0000 (23:12 +0000)]
Lazier intersperse
A lazier implementation of intersperse, and consequentially intercalate, to
avoid space leaks.
ghc@cainnorris.net [Mon, 16 Aug 2010 21:36:54 +0000 (21:36 +0000)]
FIX #4228 (atanh (-1) returns NaN instead of -Infinity)
Daniel Fischer [Thu, 30 Sep 2010 19:17:31 +0000 (19:17 +0000)]
Make intersectBy lazier
Add shortcuts to intersectBy for empty list arguments.
In addition to being faster in that case, more inputs yield defined results.
Treats ticket #4323
Simon Marlow [Wed, 22 Sep 2010 11:38:11 +0000 (11:38 +0000)]
doc tweak for Directory file type: file names are '\0'-separated
Simon Marlow [Wed, 15 Sep 2010 13:13:41 +0000 (13:13 +0000)]
documentation for IODeviceType (#4317, edited by me)
<unknown> [Thu, 22 Jul 2010 21:07:26 +0000 (21:07 +0000)]
Allow Data.HashTable construction with user-supplied size
This avoids some resizing for users who know they will be inserting a
lot of data.
http://hackage.haskell.org/trac/ghc/ticket/4193
Simon Marlow [Thu, 16 Sep 2010 11:37:32 +0000 (11:37 +0000)]
some fixes for hGetBufSome
- fix one case where it was blocking when it shouldn't
- a couple of error-message tweaks
Simon Marlow [Wed, 15 Sep 2010 14:26:18 +0000 (14:26 +0000)]
Windows: map ERROR_NO_DATA to EPIPE, rather than EINVAL
WriteFile() returns ERROR_NO_DATA when writing to a pipe that is
"closing", however by default the write() wrapper in the CRT maps this
to EINVAL so we get confusing things like
hPutChar: invalid argument (Invalid Argumnet)
when piping the output of a Haskell program into something that closes
the pipe early. This was happening in the testsuite in a few place.
The solution is to map ERROR_NO_DATA to EPIPE correctly, as we
explicitly check for EPIPE on stdout (in GHC.TopHandler) so we can
exit without an error in this case.
Simon Marlow [Mon, 13 Sep 2010 21:47:33 +0000 (21:47 +0000)]
tighten up parsing of numbers (#1579)
simonpj@microsoft.com [Tue, 14 Sep 2010 13:46:39 +0000 (13:46 +0000)]
Add absentError.
This patch accompanies the HEAD patch:
Tue Sep 14 12:38:27 BST 2010 simonpj@microsoft.com
* Make absent-arg wrappers work for unlifted types (fix Trac #4306)
Previously we were simply passing arguments of unlifted
type to a wrapper, even if they were absent, which was
stupid.
See Note [Absent error Id] in WwLib.
simonpj@microsoft.com [Tue, 14 Sep 2010 12:27:50 +0000 (12:27 +0000)]
Add missing import, fixes build on windows
Simon Marlow [Mon, 13 Sep 2010 15:44:59 +0000 (15:44 +0000)]
Add a suitable Show instance for TextEncoding (#4273)
Simon Marlow [Mon, 13 Sep 2010 15:33:50 +0000 (15:33 +0000)]
don't fill a finalized handle with an error (see comment)
Simon Marlow [Mon, 13 Sep 2010 15:30:31 +0000 (15:30 +0000)]
deriving (Eq, Ord, Read, Show) for Newline and NewlineMode
Simon Marlow [Mon, 13 Sep 2010 11:15:36 +0000 (11:15 +0000)]
fix warning on Windows
simonpj@microsoft.com [Mon, 13 Sep 2010 10:18:32 +0000 (10:18 +0000)]
Put the state-token argument on fill, done, adjust on the RHS
This is so that the functions will inline when
applied to their normal (non-state-token) aguments.
I forget why I did this, but it seems like the right thing anyway.
Ross Paterson [Thu, 9 Sep 2010 12:55:21 +0000 (12:55 +0000)]
avoid Foreign.unsafePerformIO
Simon Marlow [Thu, 9 Sep 2010 11:33:31 +0000 (11:33 +0000)]
Remove debugging code accidentally left in
Ian Lynagh [Wed, 8 Sep 2010 12:30:37 +0000 (12:30 +0000)]
Fix Windows build; patches frmo ezyang
Edward Z. Yang [Tue, 7 Sep 2010 15:41:44 +0000 (15:41 +0000)]
More accurate isatty test for MinGW.
Ian Lynagh [Sat, 4 Sep 2010 22:37:03 +0000 (22:37 +0000)]
Fix the build when HAVE_KQUEUE but not HAVE_KEVENT64
benl@ouroborus.net [Mon, 30 Aug 2010 04:47:41 +0000 (04:47 +0000)]
Fix warnings
Ross Paterson [Thu, 19 Aug 2010 20:48:58 +0000 (20:48 +0000)]
fix cache variable name used by FP_SEARCH_LIBS_PROTO
simonpj@microsoft.com [Sun, 15 Aug 2010 14:51:27 +0000 (14:51 +0000)]
Add a missing castPtr (only shows up in -DDEBUG)
Johan Tibell [Fri, 13 Aug 2010 12:40:43 +0000 (12:40 +0000)]
Fixed a rounding error in threadDelay
Simon Marlow [Thu, 12 Aug 2010 10:55:24 +0000 (10:55 +0000)]
export allocaBytesAligned; make allocaArray use the correct alignment (#2917)
Simon Marlow [Mon, 5 Jul 2010 12:59:52 +0000 (12:59 +0000)]
deprecate unGetChan and isEmptyChan (see #4154)
simonpj@microsoft.com [Wed, 28 Jul 2010 12:48:47 +0000 (12:48 +0000)]
Add type signatures to cope with lack of local generalisation
simonpj@microsoft.com [Tue, 27 Jul 2010 15:15:32 +0000 (15:15 +0000)]
Add type signature in local where
Simon Marlow [Tue, 10 Aug 2010 08:22:48 +0000 (08:22 +0000)]
Integrated new I/O manager
(patch originally by Johan Tibell <johan.tibell@gmail.com>, minor merging by me)
jon.fairbairn@cl.cam.ac.uk [Thu, 17 Sep 2009 14:56:16 +0000 (14:56 +0000)]
Add mfilter to Control.Monad
Straightforward MonadPlus version of List.filter. I would
prefer to call it filter, but the current naming scheme for
Control.Monad implies mfilter.
Ross Paterson [Thu, 29 Jul 2010 12:24:49 +0000 (12:24 +0000)]
move Monad and MonadFix instances for Either from mtl (proposal #4159)
The Monad and MonadFix instances for Either (formerly in the mtl
package) are moved to Control.Monad.Instances and Control.Monad.Fix
respectively. The Monad instance is still an orphan, to retain Haskell
98 compatibility, but the MonadFix instance is together with its class.
The Error constraint is removed from both instances, and the default
definition of fail is used.
Malcolm.Wallace@me.com [Thu, 22 Jul 2010 07:54:49 +0000 (07:54 +0000)]
Remove egregious ghc-ish from Foreign.Marshal
Simon Marlow [Tue, 20 Jul 2010 15:38:58 +0000 (15:38 +0000)]
add numSparks :: IO Int (#4167)
Simon Marlow [Tue, 20 Jul 2010 08:28:19 +0000 (08:28 +0000)]
add unsafeLocalState from Haskell 2010, and docs
Simon Marlow [Tue, 20 Jul 2010 08:28:04 +0000 (08:28 +0000)]
docs: mention that Foreign.unsafePerformIO is deprecated
We can't actually deprecate it without introducing a name clash
between Foreign.unsafePerformIO and System.IO.Unsafe.unsafePerformIO
Simon Marlow [Wed, 14 Jul 2010 15:13:47 +0000 (15:13 +0000)]
doc formatting fix
Simon Marlow [Wed, 14 Jul 2010 11:58:53 +0000 (11:58 +0000)]
add module intro from Haskell 2010