Ian Lynagh [Sun, 3 Apr 2011 16:08:46 +0000 (17:08 +0100)]
Less strict inits and tails
Converted from darcs patches from Bas van Dijk <v.dijk.bas@gmail.com>
Previously: tails _|_ = _|_
Now: tails _|_ = _|_ : _|_
Previously: inits _|_ = _|_
Now: inits _|_ = [] : _|_
Ian Lynagh [Sun, 3 Apr 2011 15:27:56 +0000 (16:27 +0100)]
Tweak alloca docs
Based on a patch from Jason Dagit
Ian Lynagh [Sun, 3 Apr 2011 13:55:50 +0000 (14:55 +0100)]
Generalize the type of Foreign.Marshal.Utils.maybeNew; fixes trac #5044
git conversion of:
Tue Mar 8 22:31:07 CET 2011 Bas van Dijk <v.dijk.bas@gmail.com>
* Generalize the type of Foreign.Marshal.Utils.maybeNew
This makes it consistent with maybeWith
Ian Lynagh [Thu, 31 Mar 2011 01:18:08 +0000 (01:18 +0000)]
Rewrite FPTOOLS_CHECK_HTYPE to be cross-compilation-friendly
Inspired by a patch from Mark Lentczner
Ian Lynagh [Wed, 30 Mar 2011 20:27:56 +0000 (20:27 +0000)]
No need to include the OpenGL / OpenAL headers in aclocal.m4
Simon Marlow [Wed, 30 Mar 2011 10:05:04 +0000 (10:05 +0000)]
Export the affinity API from Control.Concurrent: forkOn and friends.
forkOn :: Int -> IO () -> IO ThreadId
forkOnWithUnmask :: Int -> ((forall a . IO a -> IO a) -> IO ()) -> IO ThreadId
getNumCapabilities :: IO Int
threadCapability :: ThreadId -> IO (Int, Bool)
Following discussion on the libraries list, I renamed forkOnIO to
forkOn. In due course we might want to also rename forkIO to fork.
I left the Int argument as it is, it's quite useful to be able to
specify a number to be interpreted modulo the actual number of
processors.
I also used the term "capability" consistently. It might not be the
best choice, but we have to pick something.
Bas van Dijk [Thu, 3 Mar 2011 00:42:58 +0000 (00:42 +0000)]
Deprecate Control.Exception.blocked in favour of getMaskingState
Simon Marlow [Tue, 29 Mar 2011 15:03:48 +0000 (15:03 +0000)]
fix Haddock error
Simon Marlow [Tue, 29 Mar 2011 13:56:39 +0000 (13:56 +0000)]
add forkIOWithUnmask, forkOnIOWithUnmask; deprecate forkIOUnmasked
With forkIOUnmasked it wasn't possible to reliably set up an exception
handler in the child thread, because exceptions were immediately
unmasked.
forkIOWithUnmask :: ((forall a . IO a -> IO a) -> IO ()) -> IO ThreadId
forkOnIOWithUnmask :: Int -> ((forall a . IO a -> IO a) -> IO ()) -> IO ThreadId
Simon Marlow [Tue, 29 Mar 2011 13:09:28 +0000 (13:09 +0000)]
Add GHC.IO.Handle.FD.openFileBlocking (#4248)
like openFile, but opens the file without O_NONBLOCK
Simon Marlow [Wed, 22 Dec 2010 10:01:49 +0000 (10:01 +0000)]
Add allowInterrupt :: IO () (#4810)
docs:
-- | When invoked inside 'mask', this function allows a blocked
-- asynchronous exception to be raised, if one exists. It is
-- equivalent to performing an interruptible operation (see
-- #interruptible#), but does not involve any actual blocking.
--
-- When called outside 'mask', or inside 'uninterruptibleMask', this
-- function has no effect.
Dmitry Astapov [Wed, 19 Jan 2011 10:14:45 +0000 (10:14 +0000)]
Fix documentation for mkWeakIORef: argument is finalizer, not key or value
Ian Lynagh [Wed, 23 Mar 2011 23:49:06 +0000 (23:49 +0000)]
Work around a limitation in the hsc2hs cross-compilation mode
Ian Lynagh [Mon, 21 Mar 2011 23:43:46 +0000 (23:43 +0000)]
Rename System.Event to GHC.Event
It's just an internal GHC library, for now at least
Ian Lynagh [Sat, 12 Mar 2011 21:14:26 +0000 (21:14 +0000)]
Never use epoll_create1; fixes trac #5005
There is little benefit to using epoll_create1 (especially if we still
have the epoll_create code too), and it cuases problems if people build
a GHC binary on one machine and try to use it on another.
Ian Lynagh [Wed, 9 Mar 2011 20:06:09 +0000 (20:06 +0000)]
Fix warning
Daniel Fischer [Mon, 18 Oct 2010 21:03:37 +0000 (21:03 +0000)]
FIX #2271
Faster rounding functions for Double and float with Int or Integer results.
Fixes #2271.
Since some glibc's have buggy rintf or rint functions and the behaviour of
these functions depends on the setting of the rounding mode, we provide our
own implementations which always round ties to even.
Also added rewrite rules and removed trailing whitespace.
Simon Marlow [Tue, 1 Mar 2011 10:32:46 +0000 (10:32 +0000)]
add threadCapability :: ThreadId -> IO (Int,Bool)
-- | returns the number of the capability on which the thread is currently
-- running, and a boolean indicating whether the thread is locked to
-- that capability or not. A thread is locked to a capability if it
-- was created with @forkOnIO@.
Simon Marlow [Wed, 22 Dec 2010 13:00:24 +0000 (13:00 +0000)]
follow changes to threadStatus#, and update stat values
Bas van Dijk [Tue, 15 Feb 2011 21:24:57 +0000 (21:24 +0000)]
Make the Timeout exception a newtype instead of a datatype
Ross Paterson [Mon, 28 Feb 2011 23:32:32 +0000 (23:32 +0000)]
improve discussion of the laws (doc comments only)
following a suggestion of Russell O'Connor on the libraries list.
Ian Lynagh [Sat, 26 Feb 2011 00:51:44 +0000 (00:51 +0000)]
Add some more explanation to the skip channel example in the MVar docs
Ian Lynagh [Fri, 25 Feb 2011 21:46:14 +0000 (21:46 +0000)]
Grammar fix
Edward Z. Yang [Sun, 16 Jan 2011 19:23:34 +0000 (19:23 +0000)]
Expand and clarify MVar documentation.
Manuel M T Chakravarty [Fri, 18 Feb 2011 01:29:52 +0000 (01:29 +0000)]
Remove most of GHC.PArr
- First step of migrating this code into the dph package
Ian Lynagh [Sat, 19 Feb 2011 13:31:42 +0000 (13:31 +0000)]
Roll back generics changes in the HEAD repos
jpm@cs.uu.nl [Thu, 14 Oct 2010 12:42:40 +0000 (12:42 +0000)]
Do not export GHC.Generics from GHC.Base
Malcolm.Wallace@me.com [Fri, 11 Feb 2011 11:17:28 +0000 (11:17 +0000)]
Fix incorrect #ifdef for nhc98
Malcolm.Wallace@me.com [Fri, 11 Feb 2011 11:16:34 +0000 (11:16 +0000)]
Add Data.String to the nhc98 build
Bas van Dijk [Mon, 7 Feb 2011 19:31:49 +0000 (19:31 +0000)]
Regenerated cbits/WCsubst.c based on Unicode 6.0.0
Ian Lynagh [Sat, 5 Feb 2011 15:53:54 +0000 (15:53 +0000)]
Deprecate System.IO.Error.{catch,try} and Prelude.catch; fixes trac #4865
Simon Marlow [Wed, 22 Dec 2010 12:59:53 +0000 (12:59 +0000)]
add getNumCapabilities :: IO Int
If we ever get around to implementing #3729 and #3210, then the number
of capabilities will vary at runtime, so we need to move
numCapabilities into the IO monad.
Simon Marlow [Mon, 31 Jan 2011 14:32:58 +0000 (14:32 +0000)]
add missing extensions for Windows
Simon Marlow [Mon, 31 Jan 2011 13:52:09 +0000 (13:52 +0000)]
add NoImplicitPrelude (fix Windows build failure)
simonpj@microsoft.com [Fri, 28 Jan 2011 12:07:19 +0000 (12:07 +0000)]
Use explicit language extensions & remove extension fields from base.cabal
Add explicit {-# LANGUAGE xxx #-} pragmas to each module, that say
what extensions that module uses. This makes it clearer where
different extensions are used in the (large, variagated) base package.
Now base.cabal doesn't need any extensions field
Thanks to Bas van Dijk for doing all the work.
Simon Marlow [Fri, 21 Jan 2011 14:35:55 +0000 (14:35 +0000)]
fix silly mistake in hGetBufSome (#4895)
Dmitry Astapov [Wed, 19 Jan 2011 10:33:00 +0000 (10:33 +0000)]
Clean up remnants of the Event Manager after forkProcess. Closes #4449
Johan Tibell [Wed, 12 Jan 2011 12:54:30 +0000 (12:54 +0000)]
Document System.Event
Ian Lynagh [Mon, 17 Jan 2011 18:48:20 +0000 (18:48 +0000)]
Add NondecreasingIndentation to the extensions needed
Ian Lynagh [Mon, 17 Jan 2011 18:47:15 +0000 (18:47 +0000)]
Remove extensions required for GHC < 6.10
Bas van Dijk [Sat, 27 Nov 2010 09:11:51 +0000 (09:11 +0000)]
Added a Typeable instance for SampleVar
Bas van Dijk [Wed, 1 Dec 2010 08:03:07 +0000 (08:03 +0000)]
Derived Eq instance for QSem and QSemN
Bas van Dijk [Thu, 25 Nov 2010 21:02:40 +0000 (21:02 +0000)]
Derived Eq instance for Chan
Simon Marlow [Thu, 6 Jan 2011 15:46:54 +0000 (15:46 +0000)]
fix #4876
Malcolm.Wallace@me.com [Tue, 4 Jan 2011 12:51:42 +0000 (12:51 +0000)]
Instances for ST not available in nhc98.
Ross Paterson [Mon, 3 Jan 2011 19:52:01 +0000 (19:52 +0000)]
indentation tweaks (whitespace only)
Ross Paterson [Mon, 3 Jan 2011 19:42:06 +0000 (19:42 +0000)]
indentation tweaks, re-order exports
Ross Paterson [Mon, 3 Jan 2011 18:57:22 +0000 (18:57 +0000)]
Add Applicative instances for ST monads (proposal #4455)
patch from Bas van Dijk
Simon Marlow [Tue, 21 Dec 2010 15:51:54 +0000 (15:51 +0000)]
Always use 8k buffers instead of BUFSIZ
This makes a huge difference to I/O performance for me on Windows,
where BUFSIZ is 512. It might help on Mac too.
Ian Lynagh [Sat, 18 Dec 2010 21:35:53 +0000 (21:35 +0000)]
Replace uses of the old catch function with the new one
Ian Lynagh [Mon, 13 Dec 2010 23:58:37 +0000 (23:58 +0000)]
Fix build on Windows
Ian Lynagh [Mon, 13 Dec 2010 13:24:46 +0000 (13:24 +0000)]
Fix warnings
Bryan O'Sullivan [Mon, 6 Dec 2010 00:52:22 +0000 (00:52 +0000)]
Use onException for exception cleanup, and mask async exceptions
Bryan O'Sullivan [Mon, 6 Dec 2010 00:41:24 +0000 (00:41 +0000)]
Drop closeFd from Control.Concurrent, rename to closeFdWith
Bryan O'Sullivan [Sat, 27 Nov 2010 18:18:26 +0000 (18:18 +0000)]
Fix #4533 - unregister callbacks on exception, fixing a memory leak
Our problem here was that if a thread blocked in threadWait or
threadDelay and was killed by an exception thrown from another thread,
its registration with the IO manager would not be cleared.
The fix is simply to install exception handlers that do the cleanup and
propagate the exception.
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)