Ticket #3324: docs_fmapDefault_foldMapDefault.patch

File docs_fmapDefault_foldMapDefault.patch, 50.1 KB (added by YitzGale, 7 years ago)

Fix documentation for fmapDefault and foldMapDefault

1Tue Jun 23 13:28:49 IDT 2009  Yitzchak Gale <gale@sefer.org>
2  * Fix documentation for fmapDefault and foldMapDefault
4New patches:
6[Fix documentation for fmapDefault and foldMapDefault
7Yitzchak Gale <gale@sefer.org>**20090623102849
8 Ignore-this: 693fa115c966367bf78792faaaaf4874
9] {
10hunk ./Data/Traversable.hs 172
11 mapAccumR :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
12 mapAccumR f s t = runStateR (traverse (StateR . flip f) t) s
14--- | This function may be used as a value for `fmap` in a `Functor` instance.
15+-- | This function should be equivalent to `fmap` in the `Functor`
16+-- superclass instance.
17 fmapDefault :: Traversable t => (a -> b) -> t a -> t b
18 fmapDefault f = getId . traverse (Id . f)
20hunk ./Data/Traversable.hs 177
21--- | This function may be used as a value for `Data.Foldable.foldMap`
22--- in a `Foldable` instance.
23+-- | This function should be equivalent to `foldMap`
24+-- in the `Foldable` superclass instance.
25 foldMapDefault :: (Traversable t, Monoid m) => (a -> m) -> t a -> m
26 foldMapDefault f = getConst . traverse (Const . f)
32[Unconditionally make a (Show Ptr) instance
33Ian Lynagh <igloo@earth.li>**20090620204809
34 It used to only exist if (WORD_SIZE_IN_BITS == 32 || WORD_SIZE_IN_BITS == 64)
36[Remove AC_C_CONST
37Ian Lynagh <igloo@earth.li>**20090615203240
38 It was breaking the build on Windows. The problem was that we included
39 stdio.h which gave a prototype for some functions (e.g. remove), then
40 the AC_C_CONST meant that we did
41     /* Define to empty if `const' does not conform to ANSI C. */
42     #define const /**/
43 and then we included io.h which gave prototypes that, due to const
44 being removed, conflicted with the earlier prototypes.
46[Remove old Integer prototypes
47Ian Lynagh <igloo@earth.li>**20090615202444]
48[Redefine gcdInt to use gcdInteger rather than gcdInt# primop
49Duncan Coutts <duncan@well-typed.com>**20090612142951
50 The gcdInt# primop uses gmp internally, even though the interface is
51 just Int#. Since we want to get gmp out of the rts we cannot keep
52 gcdInt#, however it's also a bit odd for the integer package to export
53 something that doesn't actually use Integer in its interface. Using
54 gcdInteger is still not terribly satisfactory aesthetically. However
55 in the short-term it works and it is no slower since gcdInteger calls
56 gcdInt# for the special case of two small Integers.
58[The IO type has moved to GHC.Types in ghc-prim
59Ian Lynagh <igloo@earth.li>**20090620155208]
60[Fix warnings in configure script
61Ian Lynagh <igloo@earth.li>**20090615214850]
62[Fix warnings in C programs generated by configure; fixes failures with -Werror
63Ian Lynagh <igloo@earth.li>**20090615201634]
64[Save and restore the codec state when re-decoding
65Simon Marlow <marlowsd@gmail.com>**20090614185332
66 Ignore-this: 62b247a51efc2eed65d933f982b06894
68 We previously had an ugly hack to check for a BOM when re-decoding
69 some binary data in flushCharBuffer.  The hack was there essentially
70 because codecs like UTF-16 have a state, and we had not restored it.
71 This patch gives codecs an explicit state, and implemented
72 saving/restoring of the state as necessary.  Hence, the hack in
73 flushCharBuffer is replaced by a more general mechanism that works for
74 any codec with state.
76 Unfortunately, iconv doesn't give us a way to save and restore the
77 state, so this is currently only implemented for the built-in codecs.
79[Fix #3128: file descriptor leak when hClose fails
80Simon Marlow <marlowsd@gmail.com>**20090616110755
81 Ignore-this: 5b6a51fed9239c61d16d0151cb5b59d3
83[Allow System.Posix.Internals to compile with nhc98 again.
85 Also affects GHC.IO.Device, which is not very GHC-specific at all.
87[Add iconv as an extra library on platform that need to link with it
88Ian Lynagh <igloo@earth.li>**20090612231307
89 For example, we need -liconv on OS X.
91[Rewrite of the IO library, including Unicode support
92Simon Marlow <marlowsd@gmail.com>**20090612135631
93 Ignore-this: fbd43ec854ac5df442e7bf647de8ca5a
95 Highlights:
97 * Unicode support for Handle I/O:
99   ** Automatic encoding and decoding using a per-Handle encoding.
101   ** The encoding defaults to the locale encoding (only on Unix
102      so far, perhaps Windows later).
104   ** Built-in UTF-8, UTF-16 (BE/LE), and UTF-32 (BE/LE) codecs.
106   ** iconv-based codec for other encodings on Unix
108 * Modularity: the low-level IO interface is exposed as a type class
109   (GHC.IO.IODevice) so you can build your own low-level IO providers and
110   make Handles from them.
112 * Newline translation: instead of being Windows-specific wired-in
113   magic, the translation from \r\n -> \n and back again is available
114   on all platforms and is configurable for reading/writing
115   independently.
118 Unicode-aware Handles
119 ~~~~~~~~~~~~~~~~~~~~~
121 This is a significant restructuring of the Handle implementation with
122 the primary goal of supporting Unicode character encodings.
124 The only change to the existing behaviour is that by default, text IO
125 is done in the prevailing locale encoding of the system (except on
126 Windows [1]). 
128 Handles created by openBinaryFile use the Latin-1 encoding, as do
129 Handles placed in binary mode using hSetBinaryMode.
131 We provide a way to change the encoding for an existing Handle:
133    GHC.IO.Handle.hSetEncoding :: Handle -> TextEncoding -> IO ()
135 and various encodings (from GHC.IO.Encoding):
137    latin1,
138    utf8,
139    utf16, utf16le, utf16be,
140    utf32, utf32le, utf32be,
141    localeEncoding,
143 and a way to lookup other encodings:
145    GHC.IO.Encoding.mkTextEncoding :: String -> IO TextEncoding
147 (it's system-dependent whether the requested encoding will be
148 available).
150 We may want to export these from somewhere more permanent; that's a
151 topic for a future library proposal.
153 Thanks to suggestions from Duncan Coutts, it's possible to call
154 hSetEncoding even on buffered read Handles, and the right thing
155 happens.  So we can read from text streams that include multiple
156 encodings, such as an HTTP response or email message, without having
157 to turn buffering off (though there is a penalty for switching
158 encodings on a buffered Handle, as the IO system has to do some
159 re-decoding to figure out where it should start reading from again).
161 If there is a decoding error, it is reported when an attempt is made
162 to read the offending character from the Handle, as you would expect.
164 Performance varies.  For "hGetContents >>= putStr" I found the new
165 library was faster on my x86_64 machine, but slower on an x86.  On the
166 whole I'd expect things to be a bit slower due to the extra
167 decoding/encoding, but probabaly not noticeably.  If performance is
168 critical for your app, then you should be using bytestring and text
169 anyway.
171 [1] Note: locale encoding is not currently implemented on Windows due
172 to the built-in Win32 APIs for encoding/decoding not being sufficient
173 for our purposes.  Ask me for details.  Offers of help gratefully
174 accepted.
177 Newline Translation
178 ~~~~~~~~~~~~~~~~~~~
180 In the old IO library, text-mode Handles on Windows had automatic
181 translation from \r\n -> \n on input, and the opposite on output.  It
182 was implemented using the underlying CRT functions, which meant that
183 there were certain odd restrictions, such as read/write text handles
184 needing to be unbuffered, and seeking not working at all on text
185 Handles.
187 In the rewrite, newline translation is now implemented in the upper
188 layers, as it needs to be since we have to perform Unicode decoding
189 before newline translation.  This means that it is now available on
190 all platforms, which can be quite handy for writing portable code.
192 For now, I have left the behaviour as it was, namely \r\n -> \n on
193 Windows, and no translation on Unix.  However, another reasonable
194 default (similar to what Python does) would be to do \r\n -> \n on
195 input, and convert to the platform-native representation (either \r\n
196 or \n) on output.  This is called universalNewlineMode (below).
198 The API is as follows.  (available from GHC.IO.Handle for now, again
199 this is something we will probably want to try to get into System.IO
200 at some point):
202 -- | The representation of a newline in the external file or stream.
203 data Newline = LF    -- ^ "\n"
204              | CRLF  -- ^ "\r\n"
205              deriving Eq
207 -- | Specifies the translation, if any, of newline characters between
208 -- internal Strings and the external file or stream.  Haskell Strings
209 -- are assumed to represent newlines with the '\n' character; the
210 -- newline mode specifies how to translate '\n' on output, and what to
211 -- translate into '\n' on input.
212 data NewlineMode
213   = NewlineMode { inputNL :: Newline,
214                     -- ^ the representation of newlines on input
215                   outputNL :: Newline
216                     -- ^ the representation of newlines on output
217                  }
218              deriving Eq
220 -- | The native newline representation for the current platform
221 nativeNewline :: Newline
223 -- | Map "\r\n" into "\n" on input, and "\n" to the native newline
224 -- represetnation on output.  This mode can be used on any platform, and
225 -- works with text files using any newline convention.  The downside is
226 -- that @readFile a >>= writeFile b@ might yield a different file.
227 universalNewlineMode :: NewlineMode
228 universalNewlineMode  = NewlineMode { inputNL  = CRLF,
229                                       outputNL = nativeNewline }
231 -- | Use the native newline representation on both input and output
232 nativeNewlineMode    :: NewlineMode
233 nativeNewlineMode     = NewlineMode { inputNL  = nativeNewline,
234                                       outputNL = nativeNewline }
236 -- | Do no newline translation at all.
237 noNewlineTranslation :: NewlineMode
238 noNewlineTranslation  = NewlineMode { inputNL  = LF, outputNL = LF }
241 -- | Change the newline translation mode on the Handle.
242 hSetNewlineMode :: Handle -> NewlineMode -> IO ()
246 IO Devices
247 ~~~~~~~~~~
249 The major change here is that the implementation of the Handle
250 operations is separated from the underlying IO device, using type
251 classes.  File descriptors are just one IO provider; I have also
252 implemented memory-mapped files (good for random-access read/write)
253 and a Handle that pipes output to a Chan (useful for testing code that
254 writes to a Handle).  New kinds of Handle can be implemented outside
255 the base package, for instance someone could write bytestringToHandle.
256 A Handle is made using mkFileHandle:
258 -- | makes a new 'Handle'
259 mkFileHandle :: (IODevice dev, BufferedIO dev, Typeable dev)
260               => dev -- ^ the underlying IO device, which must support
261                      -- 'IODevice', 'BufferedIO' and 'Typeable'
262               -> FilePath
263                      -- ^ a string describing the 'Handle', e.g. the file
264                      -- path for a file.  Used in error messages.
265               -> IOMode
266                      -- ^ The mode in which the 'Handle' is to be used
267               -> Maybe TextEncoding
268                      -- ^ text encoding to use, if any
269               -> NewlineMode
270                      -- ^ newline translation mode
271               -> IO Handle
273 This also means that someone can write a completely new IO
274 implementation on Windows based on native Win32 HANDLEs, and
275 distribute it as a separate package (I really hope somebody does
276 this!).
278 This restructuring isn't as radical as previous designs.  I haven't
279 made any attempt to make a separate binary I/O layer, for example
280 (although hGetBuf/hPutBuf do bypass the text encoding and newline
281 translation).  The main goal here was to get Unicode support in, and
282 to allow others to experiment with making new kinds of Handle.  We
283 could split up the layers further later.
286 API changes and Module structure
287 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
289 NB. GHC.IOBase and GHC.Handle are now DEPRECATED (they are still
290 present, but are just re-exporting things from other modules now).
291 For 6.12 we'll want to bump base to version 5 and add a base4-compat.
292 For now I'm using #if __GLASGOW_HASKEL__ >= 611 to avoid deprecated
293 warnings.
295 I split modules into smaller parts in many places.  For example, we
296 now have GHC.IORef, GHC.MVar and GHC.IOArray containing the
297 implementations of IORef, MVar and IOArray respectively.  This was
298 necessary for untangling dependencies, but it also makes things easier
299 to follow.
301 The new module structurue for the IO-relatied parts of the base
302 package is:
304 GHC.IO
305    Implementation of the IO monad; unsafe*; throw/catch
307 GHC.IO.IOMode
308    The IOMode type
310 GHC.IO.Buffer
311    Buffers and operations on them
313 GHC.IO.Device
314    The IODevice and RawIO classes.
316 GHC.IO.BufferedIO
317    The BufferedIO class.
320    The FD type, with instances of IODevice, RawIO and BufferedIO.
322 GHC.IO.Exception
323    IO-related Exceptions
325 GHC.IO.Encoding
326    The TextEncoding type; built-in TextEncodings; mkTextEncoding
328 GHC.IO.Encoding.Types
329 GHC.IO.Encoding.Iconv
330 GHC.IO.Encoding.Latin1
331 GHC.IO.Encoding.UTF8
332 GHC.IO.Encoding.UTF16
333 GHC.IO.Encoding.UTF32
334    Implementation internals for GHC.IO.Encoding
336 GHC.IO.Handle
337    The main API for GHC's Handle implementation, provides all the Handle
338    operations + mkFileHandle + hSetEncoding.
340 GHC.IO.Handle.Types
341 GHC.IO.Handle.Internals
342 GHC.IO.Handle.Text
343    Implementation of Handles and operations.
345 GHC.IO.Handle.FD
346    Parts of the Handle API implemented by file-descriptors: openFile,
347    stdin, stdout, stderr, fdToHandle etc.
350[Remove unused foreign imports of __encodeFloat/Double
351Duncan Coutts <duncan@well-typed.com>**20090611160100]
352[nhc98 must build dirUtils.c as well.
354 Fixes this bootstrapping error:
355   Undefined symbols:
356   "___hscore_readdir", referenced from:
357       _FR_System_46Posix_46Internals_46readdir_35 in libHSbase.a(Internals.o)
359[Remove unnecessary parens
360Ian Lynagh <igloo@earth.li>**20090602183608]
361[Fix validate (on Windows)
362Simon Marlow <marlowsd@gmail.com>**20090529130214
363 Ignore-this: ea31ee9b26cd69b81bb24ecf040dc196
365[Make two type defaults explicit
367 Ignore-this: 398a10db1612dbef1723b449bff26782
369 Now that -Werror rejects programs that use silent type-class defaulting,
370 we must commit in the source code.
372 I've used Double in CPUTime, which is the same as was picked automatically
373 before, but I expect Float would be ok.
375    realToInteger :: Real a => a -> Integer
376    realToInteger ct = round (realToFrac ct :: Double)
378 In GHC.Float I used Float (rather that than the auto-picked Double)
379 because I'm pretty certain it has enough precision.
381        -- f :: Integer, log :: Float -> Float,
382         --               ceiling :: Float -> Int
383         ceiling ((log (fromInteger (f+1) :: Float) +
386[Fix #3257: document that exitWith in a forkIO'd thread does not exit the process
387Simon Marlow <marlowsd@gmail.com>**20090528123738
388 Ignore-this: cc5aff45a149acd1627bd7ee31aea4e9
390[Increase the version number to that in the 6.10 branch
391Ian Lynagh <igloo@earth.li>**20090524155610]
392[Fix warnings
393Ian Lynagh <igloo@earth.li>**20090523224508]
394[Document that the initial quantity for QSem and QSemN must be >= 0
395Ian Lynagh <igloo@earth.li>**20090523200238]
396[add _O_NOINHERIT when opening files on Windows (see #2650)
397Simon Marlow <marlowsd@gmail.com>**20090520130926
398 Ignore-this: 6dfbdfe13e739cc339e627294e077ba6
400[remove msvcrt and kernel32 from extra-libraries
401Simon Marlow <marlowsd@gmail.com>**20090520111626
402 Ignore-this: cd2e24a5144c6ca0efe03ceaea8f577b
404[Add wrappers around fcntl
405Ian Lynagh <igloo@earth.li>**20090520175358
406 We need to do this as it has a (, ...) type, which we aren't allowed to
407 directly call with the FFI.
409[Add more bang patterns, needed to fix the 32bit build
410Ian Lynagh <igloo@earth.li>**20090424160701]
411[Use a bang pattern when we where/let-bind values with unlifted types
412Ian Lynagh <igloo@earth.li>**20090424125320]
413[FIX #3171: make sure we have only one table of signal handlers
414Simon Marlow <marlowsd@gmail.com>**20090423112837
415 Ignore-this: 3d8039b47efac2629e73a7d7e7d58983
417[Fix QSem and QSemN: Initial amount must be non-negative
418Ian Lynagh <igloo@earth.li>**20090410164013]
419[Don't inline enumDeltaToInteger until its rules have had a chance to fire
421 Ignore-this: ab602bac65610e720065b097d46a6f52
423[Import GHC.Err so we see bottoming functions properly
425 Ignore-this: 913e3a4584e73e67ddf9bc3b6f11d11
427 Before this patch, GHC/Err.lhs-boot exported divZeroError and overflowError,
428 as well as plain 'error'.  The latter has a wired-in defn in GHC (MkId.lhs),
429 but the former two do not.  As a result GHC doesn't see that overflowError
430 is a bottoming function at a crucial moment when compiling GHC.Real, and
431 that means that divMod wasn't getting the CPR property.
433 The fix is easy:
434   - GHC/Err.lhs-boot should export only 'error'
436   - GHC.Real, GHC.Int, and GHC.Word should import GHC.Err
437     directly.  They can do this nowadays without creating
438     a module loop, thanks to the new exception story
441[Don't inline unpackCString
443 Ignore-this: 78f9660ffff55ae8bc4c41866d1ad80c
445 There's no point in inlining unpackCString, so this patch adds a
446 NOINLINE pragma.  (Otherwise, it's just on the threshold.)
449[be sure to install Nhc98BaseConfig.h
451[Avoid unnecessarily using Integer when decoding Floats
452Ian Lynagh <igloo@earth.li>**20090330225241]
453[Add another Data.List.intersect example from Christian Maeder
454Ian Lynagh <igloo@earth.li>**20090327232118]
455[Remove some redundant fromInteger's
456Ian Lynagh <igloo@earth.li>**20090324145325]
457[Add an import needed in the new build system
458Ian Lynagh <igloo@earth.li>**20090322162241]
459[ghcconfig.h is __GLASGOW_HASKELL__ only
461[Fix layout to comply with H'98.
463 Also, configure correctly for nhc98, to avoid win32 code.
465[FIX #2189: re-enabled cooked mode for Console-connected Handles on Windows
466Simon Marlow <marlowsd@gmail.com>*-20090305113323
467 Patch from Sigbjorn Finne <sof@galois.com>
469[avoid a space leak building up in the "prodding" IORef (part of #2992)
470Simon Marlow <marlowsd@gmail.com>**20090311093938]
471[Partial fix for #2917
472Simon Marlow <marlowsd@gmail.com>**20090305154153
473 Ignore-this: 3a06cd3ea09f1d6454d52031802a93fd
475  - add newAlignedPinnedByteArray# for allocating pinned BAs with
476    arbitrary alignment
478  - the old newPinnedByteArray# now aligns to 16 bytes
480 Foreign.alloca will use newAlignedPinnedByteArray#, and so might end
481 up wasting less space than before (we used to align to 8 by default).
482 Foreign.allocaBytes and Foreign.mallocForeignPtrBytes will get 16-byte
483 aligned memory, which is enough to avoid problems with SSE
484 instructions on x86, for example.
486 There was a bug in the old newPinnedByteArray#: it aligned to 8 bytes,
487 but would have failed if the header was not a multiple of 8
488 (fortunately it always was, even with profiling).  Also we
489 occasionally wasted some space unnecessarily due to alignment in
490 allocatePinned().
492 I haven't done anything about Foreign.malloc/mallocBytes, which will
493 give you the same alignment guarantees as malloc() (8 bytes on
494 Linux/x86 here).
496[Add config.guess, config.sub and install-sh
497Ian Lynagh <igloo@earth.li>**20090307153831]
498[add final newline; fix build (on Windows?)
499Simon Marlow <marlowsd@gmail.com>**20090305120426]
500[FIX #2189: re-enabled cooked mode for Console-connected Handles on Windows
501Simon Marlow <marlowsd@gmail.com>**20090305113323
502 Patch from Sigbjorn Finne <sof@galois.com>
504[Rules to make genericLength strict for Int/Integer lengths, see #2962
506[#2759: Amend previous patch
507Jose Pedro Magalhaes <jpm@cs.uu.nl>**20090212132327]
508[ifdef out the definition of setCloseOnExec on Windows; fixes the build
509Ian Lynagh <igloo@earth.li>**20090220173041]
510[Fix warnings: put imports inside ifdefs
511Ian Lynagh <igloo@earth.li>**20090220173941]
512[ifdef out the syncIOManager export on Windows; fixes the build
513Ian Lynagh <igloo@earth.li>**20090220173414]
514[Set the IO manager pipe descriptors to FD_CLOEXEC
515Simon Marlow <marlowsd@gmail.com>**20090219114217
516 Ignore-this: ac670a45f8a4d06dd7831a2674d6c119
517 This pipe is an internal implementation detail, we don't really want
518 it to be exposed.
520[Rewrite of signal-handling (base patch; see also ghc and unix patches)
521Simon Marlow <marlowsd@gmail.com>**20090219102203
522 Ignore-this: 2122e05eaaab184b9ef0f269ce4c9282
524 The API is the same (for now).  The new implementation has the
525 capability to define signal handlers that have access to the siginfo
526 of the signal (#592), but this functionality is not exposed in this
527 patch.
529 #2451 is the ticket for the new API.
531 The main purpose of bringing this in now is to fix race conditions in
532 the old signal handling code (#2858).  Later we can enable the new
533 API in the HEAD.
535 Implementation differences:
537  - More of the signal-handling is moved into Haskell.  We store the
538    table of signal handlers in an MVar, rather than having a table of
539    StablePtrs in the RTS.
541  - In the threaded RTS, the siginfo of the signal is passed down the
542    pipe to the IO manager thread, which manages the business of
543    starting up new signal handler threads.  In the non-threaded RTS,
544    the siginfo of caught signals is stored in the RTS, and the
545    scheduler starts new signal handler threads.
547[Fix #2971: we had lost the non-blocking flag on Handles created by openFile
548Simon Marlow <marlowsd@gmail.com>**20090206165912
549 Ignore-this: 546f1a799b6e80f7b25c73ef642d8f9d
550 This code is a mess, fortunately the new IO library cleans it up.
552[add some rules of thumb for catching exceptions, restructure the docs a bit
553Simon Marlow <marlowsd@gmail.com>**20090205150642
554 Ignore-this: 8294e58f247b2cc3f193991434d336de
556[implement System.IO.Error more fully for nhc98
558[Make System.Posix.Internals buildable by nhc98.
560[Fix #2903: ensure CWStringLen contains the length of the array rather than the String
561Ross Paterson <ross@soi.city.ac.uk>**20090203011026]
562[OldException catches unknown exceptions as DynException
563Ian Lynagh <igloo@earth.li>**20090202151856
564 It's important that we put all exceptions into the old Exception
565 type somehow, or throwing a new exception wouldn't cause the
566 cleanup code for bracket, finally etc to happen.
568[Update the Exception docs
569Ian Lynagh <igloo@earth.li>**20090131204845]
570[Require Cabal version >= 1.6
571Ian Lynagh <igloo@earth.li>**20090122011251]
572[Add "bug-reports" and "source-repository" info to the Cabal file
573Ian Lynagh <igloo@earth.li>**20090121182010]
574[Proposal #2875: remove StringRep and StringConstr
575Jose Pedro Magalhaes <jpm@cs.uu.nl>**20090116142617]
576[Fix #2759: add mkRealConstr and mkIntegralConstr, deprecate mkFloatConstr and mkIntConstr
577Jose Pedro Magalhaes <jpm@cs.uu.nl>**20090116140655]
578[Correct SYB's representation of Char
579Jose Pedro Magalhaes <jpm@cs.uu.nl>**20081211144716]
580[avoid `mappend` in monoid laws, because it doesn't work with haddock
581Ross Paterson <ross@soi.city.ac.uk>**20090118011508]
582[Make Data.Typeable imports and exports more explicit
583Ian Lynagh <igloo@earth.li>**20090114234512]
584[add Monoid laws
585Ross Paterson <ross@soi.city.ac.uk>**20090116151624]
586[Unbreak an import cycle caused by moving 'catch' definitions around.
588 The new cycle was introduced for nhc98 only.
590[make the Monoid docs more self-contained
591Ross Paterson <ross@soi.city.ac.uk>**20090115222441]
592[Move some catch definitions around to avoid an import loop
593Ian Lynagh <igloo@earth.li>**20090114211033
594 As suggested by simonpj in trac #2822.
596[Add NoImplicitPrelude to the extensions used when building with GHC
597Ian Lynagh <igloo@earth.li>**20090114202810]
598[#2699: exit silently for EPIPE on stdout
599Simon Marlow <marlowsd@gmail.com>**20090114134612
600 Ignore-this: 4236560e8e9c1135129e9526355f11b4
602[Fix build when we have HTYPE_TCFLAG_T
603Ian Lynagh <igloo@earth.li>**20090105102020]
604[Fix the build on Windows
605Ian Lynagh <igloo@earth.li>**20090105014625]
606[Add errno to the IOError type
607Ian Lynagh <igloo@earth.li>**20090104173018]
608[Fix typo (reqwests -> requests); trac #2908, spotted by bancroft
609Ian Lynagh <igloo@earth.li>**20090104154405]
610[More compact error messages for record selectors
613 Make recSelError generate the standard part of the record selector
614 error message (i.e. "No match in record selector") rather than have
615 that string duplicated for every record selector.
618[extra dependencies for the new build system
619Simon Marlow <marlowsd@gmail.com>**20081217104655]
620[warning fix: don't use -XPatternSignatures in GHC >= 6.10
621Simon Marlow <marlowsd@gmail.com>**20081217104637]
622[Rollback INLINE patches
623Simon Marlow <marlowsd@gmail.com>**20081216104143
625 rolling back:
627 Fri Dec  5 17:00:15 GMT 2008  simonpj@microsoft.com
628   * Update INLINE pragmas for new INLINE story
630   - (.) and foldr should inline when applied to only two arguments
631   - Make unpackCString# NOINLINE; it inlines too much (with little gain)
634     M ./GHC/Base.lhs -10 +31
636[FIX #1364: added support for C finalizers that run as soon as the value is no longer reachable.
637Ivan Tomac <tomac@pacific.net.au>**20081210150510
639 Patch amended by Simon Marlow:
640   - mkWeakFinalizer# commoned up with mkWeakFinalizerEnv#
642[Fix #2760: deprecate mkNorepType, add mkNoRepType
643Jose Pedro Magalhaes <jpm@cs.uu.nl>**20081121141905]
644[Update INLINE pragmas for new INLINE story
647 - (.) and foldr should inline when applied to only two arguments
648 - Make unpackCString# NOINLINE; it inlines too much (with little gain)
651[Fix #2750: change Prelude.(,) to Prelude.(,,)
652Jose Pedro Magalhaes <jpm@cs.uu.nl>**20081201113411]
653[Fix typo (or out of date reference) in throwTo documentation.
654shelarcy <shelarcy@gmail.com>**20081129024639]
655[Add more description of what "round" does, from the H98 report
656Ian Lynagh <igloo@earth.li>**20081119143131]
657[re-instate the gcd/Integer and lcm/Integer RULES
658Simon Marlow <marlowsd@gmail.com>**20081120101826
659 Fixes a performance regression between 6.8.3 and 6.10.1
661[Change an "undefined" into a more informative error; trac #2782
662Ian Lynagh <igloo@earth.li>**20081116160228]
663[updating Haddock documentation
666 Fixed the broken link from Data.Generics to Data.Data.
668[add GHC.Conc.runSparks (required by GHC patch "Run sparks in batches")
669Simon Marlow <marlowsd@gmail.com>**20081106095419]
670[FIX #2722: update RULES for the Category/Arrow split
671Ross Paterson <ross@soi.city.ac.uk>**20081104144515
673 The rule
675        arr id = id
677 interacts unpleasantly with the advice to define
679        id = arr id
681 in instances of Category that are also instances of Arrow (#2722).
683 Also changed a couple of >>>'s to .'s in later rules.
685[Add AnnotationWrapper type so GHC can capture annotation dictionaries during compilation
686Max Bolingbroke <batterseapower@hotmail.com>**20081016122608]
687[docs about how exceptions are handled by forkIO'd threads (#2651)
688Simon Marlow <marlowsd@gmail.com>**20081016100410]
689[Import n_capabilities via import symbol when linking dynamically
690Clemens Fruhwirth <clemens@endorphin.org>**20081013161220]
691[add link to the new syb wiki
693[changing haddock links
695[add readTVarIO :: TVar a -> IO a
696Simon Marlow <marlowsd@gmail.com>**20081010113835]
697[removed (->) instance from Data.Data
699[non-GHC: delete unnecessary imports
700Ross Paterson <ross@soi.city.ac.uk>**20081007134809]
701[added new module Data.Data
702'Jose Pedro Magalhaes <jpm@cs.uu.nl>'**20081002140535
704 The new Data.Data module contains all of Data.Generics.Basics
705 and most of Data.Generics.Instances. The missing instances were
706 deemed dubious and moved to the syb package.
708[add new Data.Data module
709'Jose Pedro Magalhaes <jpm@cs.uu.nl>'**20081002082735]
710[restore Complex's derived Data instance
711'Jose Pedro Magalhaes <jpm@cs.uu.nl>'**20081002082655]
712[update Data.Generics import
713'Jose Pedro Magalhaes <jpm@cs.uu.nl>'**20081002082604]
714[Don't use ^(2::Int) in Data.Complex.magnitude; partially fixes trac #2450
715Ian Lynagh <igloo@earth.li>**20081004142651
716 We still might want to make a RULE for this, so the bug is not fully fixed.
718[Restore the Haskell 98 behaviour of Show Ratio (#1920)
719Simon Marlow <simonmarhaskell@gmail.com>**20080923134949]
720[Pad version number to
721Ian Lynagh <igloo@earth.li>**20080920155801]
722[TAG 6.10 branch has been forked
723Ian Lynagh <igloo@earth.li>**20080919123437]
724[In nhc98, Word is a type synonym, so class instance is not possible.
726[Fix bugs in Text.Printf (#1548)
727Simon Marlow <marlowsd@gmail.com>**20080916133505]
728[We should be including Rts.h here, not Stg.h
729Simon Marlow <marlowsd@gmail.com>**20080912134901
730 Stg.h is for .hc files only, and it sets up various global register
731 variables.
733[Generic functions that take integral arguments should work the same way as their prelude counterparts
736 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.
739[Don't define __hscore_s_issock on Windows
740Ian Lynagh <igloo@earth.li>**20080904202845]
741[Unbreak the GHC build with older versions of gcc
742Ian Lynagh <igloo@earth.li>**20080904185122
743 Patch from kili@outback.escape.de, who says:
744   Stg.h must be included before HsBase.h, because the latter contains
745   function definitions causing older versions of gcc (3.3.5 in my
746   case) to bail out with "error: global register variable follows a
747   function definition" on Regs.h, which is included by Stg.h.
749[Don't make S_ISSOCK use conditional
750Ian Lynagh <igloo@earth.li>**20080904164234
751 We were conditionally defining the C wrapper, but unconditionally using
752 it. So if it didn't exist then things would have broken anyway.
754[Add missing files
755Ian Lynagh <igloo@earth.li>**20080904100951]
756[Remerge concurrent,unique,timeout,st,getopt into base
757Ian Lynagh <igloo@earth.li>**20080903201908]
758[remove 'pure' method from Arrow class (#2517)
759Ross Paterson <ross@soi.city.ac.uk>**20080903144436]
760[make Typeable instances for larger tuples available to non-GHC
761Ross Paterson <ross@soi.city.ac.uk>**20080903113543]
762[Don't look for actual OldException.Exception exceptions
763Ian Lynagh <igloo@earth.li>**20080902224730
764 We don't actually throw them (we throw the new Exception equivalents
765 instead), and looking for them was causing an infinite loop
767[add include/CTypes.h to extra-source-files
768Ross Paterson <ross@soi.city.ac.uk>**20080902153029]
769[avoid relying on the implementation of SomeException
770Ross Paterson <ross@soi.city.ac.uk>**20080902080113
772 This is because Hugs uses a different implementation.
773 No semantic change.
775[non-GHC: leave out Belch functions
776Ross Paterson <ross@soi.city.ac.uk>**20080831180227]
777[non-GHC: add Typeable instance for ForeignPtr
778Ross Paterson <ross@soi.city.ac.uk>**20080831180048]
779[docs: mention that killThread on a completed thread is a no-op
780Simon Marlow <marlowsd@gmail.com>**20080902093126]
781[#2528: reverse the order of args to (==) in nubBy to match nub
782Simon Marlow <marlowsd@gmail.com>**20080902092950
783 This only makes a difference when the (==) definition is not
784 reflexive, but strictly speaking it does violate the report definition
785 of nubBy, so we should fix it.
787[System.Timeout is no longer part of base
789[getopt is no longer part of base
791[Split syb off into its own package
792Ian Lynagh <igloo@earth.li>**20080825214144
793 I've also moved the Data (Complex a) instance into it, and made it
794 portable rather than GHC-only in the process.
796[add extra-source-files field
797Ross Paterson <ross@soi.city.ac.uk>**20080825231317]
798[Fix warnings in PrelIOUtils.c
799Ian Lynagh <igloo@earth.li>**20080825141841]
800[Windows-only fixes for moving concurrent out of base
801Ian Lynagh <igloo@earth.li>**20080824164146]
802[Split off the concurrent hierarchy (concurrent, unique, timeout)
803Ian Lynagh <igloo@earth.li>**20080824123956]
804[Split getopt off into its own package
805Ian Lynagh <igloo@earth.li>**20080824020213]
806[Remove ST stuff that is now in the new st package
807Ian Lynagh <igloo@earth.li>**20080823223014]
808[Fix Windows-only warnings
809Ian Lynagh <igloo@earth.li>**20080823002249]
810[Fix Windows-only warnings in GHC.Conc
811Ian Lynagh <igloo@earth.li>**20080822234837]
812[Suppress some warnings that are hard to fix because of ifdefs
813Ian Lynagh <igloo@earth.li>**20080822233951]
814[Provide blockedOnDeadMVar, blockedIndefinitely for the RTS
815Ian Lynagh <igloo@earth.li>**20080821110723]
816[Fix more warnings
817Ian Lynagh <igloo@earth.li>**20080820233958]
818[Suppress a couple of warnings in GHC.PArr
819Ian Lynagh <igloo@earth.li>**20080820232018
820 The fix isn't immediately obvious to me
822[Fix more warnings
823Ian Lynagh <igloo@earth.li>**20080820231937]
824[Fix warnings in Data.Generics.*
825Ian Lynagh <igloo@earth.li>**20080820230437]
826[Fix some more warnings
827Ian Lynagh <igloo@earth.li>**20080820223252]
828[Ignore some orphan warnings
829Ian Lynagh <igloo@earth.li>**20080820211901]
830[remove some functions that aren't used in base
831Simon Marlow <marlowsd@gmail.com>**20080821142339]
832[remove __hscore_renameFile, it is no longer uesd
833Simon Marlow <marlowsd@gmail.com>**20080818155950
834 System.Directory implements renameFile using unix/Win32 now.
836[Rewrite the documentation for forkOS again
837Simon Marlow <marlowsd@gmail.com>**20080818132856
838 Try to make it clearer that forkOS is only necessary when calling
839 foreing libraries that use thread-local state, and it has nothing to
840 do with scheduling behaviour between Haskell threads.  I also added
841 something about the performance impact of forkOS, and mentioned that
842 the main thread is a bound thread.
844[nhc only: expose Foldable and Traversable instances of Array
845Ross Paterson <ross@soi.city.ac.uk>**20080817002719
847 These were turned off as a side-effect of a previous nhc-only fix for
848 #2176 that is no longer needed.  They should be fine for nhc now.
850[Fix hReady (trac #1063)
851Ian Lynagh <igloo@earth.li>**20080816182715
852 We now throw an EOF exception when appropriate
854[Fix oversight in Control.OldException
855Bertram Felgenhauer <int-e@gmx.de>**20080816132631
856 The NonTermination constructor slipped through in the Exception instance.
858[Eliminate orphan rules and instances in the array package
859Ian Lynagh <igloo@earth.li>**20080816122253]
860[Control.OldException: Map exceptions to old exceptions and back properly.
861Ian Lynagh <igloo@earth.li>**20080814210219
862   * Control.OldException: Map exceptions to old exceptions and back properly.
864 It's really necessary to map them back as well, or the RTS and base library
865 will not recognize exceptions that got caught and rethrown. (See #2508)
867 Patch from Bertram Felgenhauer <int-e@gmx.de>
869[add Traversable generalizations of mapAccumL and mapAccumR (#2461)
870Ross Paterson <ross@soi.city.ac.uk>**20080814162617]
871[simplify definition of Prelude.catch
872Ross Paterson <ross@soi.city.ac.uk>**20080814143650]
873[remove returns from void functions
874Ross Paterson <ross@soi.city.ac.uk>**20080814110841]
875[No reason for Handler and catches to exclude nhc98.
877[Must import ExitCode for its instance to be re-exported.
879 The Cabal library depends on "instance Exception ExitCode", and expects
880 to import it from Control.Exception, not Control.Exception.Base.
882[use New.catch instead of catchException in OldException
883Ross Paterson <ross@soi.city.ac.uk>**20080813071307]
884[use the Haskell 98 module Control.Exception.Base in the Concurrent modules
885Ross Paterson <ross@soi.city.ac.uk>**20080813000219]
886[export Control.Exception.Base
887Ross Paterson <ross@soi.city.ac.uk>**20080812233640]
888[use dummy implementation of timeout for all non-GHCs
889Ross Paterson <ross@soi.city.ac.uk>**20080812151602]
890[Hugs only: fix imports
891Ross Paterson <ross@soi.city.ac.uk>**20080812145654]
892[non-GHC: hide Prelude.catch
893Ross Paterson <ross@soi.city.ac.uk>**20080812145622]
894[add Control.Exception.Base to nhc98 build
896[bump to version 4.0
897Simon Marlow <marlowsd@gmail.com>**20080805153354]
898[Hugs only: don't import exception types -- their instances are now in Control.Exception.Base
899Ross Paterson <ross@soi.city.ac.uk>**20080812140433]
900[split most of Control.Exception into new Control.Exception.Base
901Ross Paterson <ross@soi.city.ac.uk>**20080812124912
903 Move everything but catches/Handler into a new internal module.
904 This was needed to get the new exceptions working with Hugs, because Hugs
905 has the constraint that all Haskell 98 library modules, and everything
906 they include, must be Haskell 98.  This also involves a different
907 representation of SomeException for Hugs, so that type is exported
908 opaquely for Hugs.  Then Control.Exception.Base is Haskell 98 as far as
909 Hugs is concerned, but Control.Exception needs the extensions turned on.
911 Control.Exception re-exports everything from Control.Exception.Base
912 except the functions used by the GHC runtime.
914[remove kludges, now that Control.Exception is imported
915Ross Paterson <ross@soi.city.ac.uk>**20080811180328]
916[threadDelay and friends are GHC-only
917Ross Paterson <ross@soi.city.ac.uk>**20080811175039]
918[fix imports for non-GHC
920[Eq and Ord have moved into GHC.Classes
921Ian Lynagh <igloo@earth.li>**20080807095352]
922[Use the proper CInt type in GHC.Unicode
923Ian Lynagh <igloo@earth.li>**20080806232948]
924[Import wibbles
925Ian Lynagh <igloo@earth.li>**20080806232055]
926[Remove unnecessary Data/Dynamic.hs-boot
927Ian Lynagh <igloo@earth.li>**20080806230623]
928[Remove more redundant GHC.Float imports
929Ian Lynagh <igloo@earth.li>**20080806225411]
930[Remove an unnecessary import
931Ian Lynagh <igloo@earth.li>**20080806224742]
932[Move Int, Float and Double into ghc-prim:GHC.Types
933Ian Lynagh <igloo@earth.li>**20080806191554]
934[Put some explicit import lists in Data.Typeable
935Ian Lynagh <igloo@earth.li>**20080806190353]
936[Fix a couple of imports
937Ian Lynagh <igloo@earth.li>**20080806165549]
938[Remove unused conditional import
939Ian Lynagh <igloo@earth.li>**20080806124930]
940[Swap imports around to get GHC.ForeignPtr out of the base knot
941Ian Lynagh <igloo@earth.li>**20080806121313]
942[Move some bits around to stop Data.Either being in the base import knot
943Ian Lynagh <igloo@earth.li>**20080806120504]
944[Tweak an import
945Ian Lynagh <igloo@earth.li>**20080806000440]
946[Remove the DynIOError constructor of IOErrorType
947Ian Lynagh <igloo@earth.li>**20080805234720
948 As far as I can see it is never used or exported
950[Move some internals around to simplify the import graph a bit
951Ian Lynagh <igloo@earth.li>**20080805221341]
952[Move the Char datatype into ghc-prim
953Ian Lynagh <igloo@earth.li>**20080805204009]
954[Remove an unnecessary import
955Ian Lynagh <igloo@earth.li>**20080805182336]
956[The [] definition has moved to ghc-prim
957Ian Lynagh <igloo@earth.li>**20080805182332]
958[Fix warnings
959Ian Lynagh <igloo@earth.li>**20080805150250]
960[Add a missing case to Show AsyncException
961Ian Lynagh <igloo@earth.li>**20080805142811]
962[Remove GHC.Dotnet
963Ian Lynagh <igloo@earth.li>**20080804215840]
964[Hide standalone deriving clauses from haddock
965Ian Lynagh <igloo@earth.li>**20080804211617]
966[Control.Exception doesn't need to export assertError
967Ian Lynagh <igloo@earth.li>**20080804161838]
968[Generalise the type of mapException; pointed out by Isaac Dupree
969Ian Lynagh <igloo@earth.li>**20080804160941]
970[Remove some unnecessary Data.Tuple imports
971Ian Lynagh <igloo@earth.li>**20080804155956]
972[The tuple datatype definitions have moved to ghc-prim
973Ian Lynagh <igloo@earth.li>**20080804155420]
974[make ExitCode an instance of Exception for nhc98
976[poke and peek come from Foreign.Storable
978[zipWithM_ comes from Control.Monad
980[Fix nhc98 code variations to use the extensible exception API.
982 There is still only one real exception type in nhc98, so it is not truly
983 extensible.  But this is enough to get the base package building again.
985[nhc98 needs the Prelude for this module
987[Change some imports and derive Show (Either a b)
988Ian Lynagh <igloo@earth.li>**20080804004147
989 rather than writing it by hand in GHC.Show
991[Windows fixes
992Ian Lynagh <igloo@earth.li>**20080803180345]
993[Remove the duplicate definition of throwTo in Control.Exception
994Ian Lynagh <igloo@earth.li>**20080803141703
995 It now imports GHC.Conc, so it is no longer necessary
997[Remove the only import of GHC.Exts
998Ian Lynagh <igloo@earth.li>**20080803141944]
999[Move assertError into GHC.IOBase
1000Ian Lynagh <igloo@earth.li>**20080803141040]
1001[Use onException rather than catchAny
1002Ian Lynagh <igloo@earth.li>**20080803114104]
1003[Generalise the type of onException
1004Ian Lynagh <igloo@earth.li>**20080803003001
1005 The type of the thing to do on an exception is now
1006     IO b
1007 rather than
1008     IO ()
1009 which better matches functions like bracket.
1011[Remove the dangerous Exception functions
1012Ian Lynagh <igloo@earth.li>**20080802231358
1013 Removed: catchAny, handleAny, ignoreExceptions
1014 These make it easy to eat /any/ exception, which is rarely what you want.
1015 Normally you either want to:
1016 * only catch exceptions in a certain part of the hierarchy, e.g.
1017   "file not found", in which case you should only catch exceptions
1018   of the appropriate type,
1019 or
1020 * you want to do some cleanup when an exception happens, and then rethrow
1021   the exception, in which case you should use onException, or one of the
1022   bracketing functions.
1024[Remove an unused import
1025Ian Lynagh <igloo@earth.li>**20080801230343]
1026[Remove unused imports
1027Ian Lynagh <igloo@earth.li>**20080801230059]
1028[Remove unused imports in Control.Exception
1029Ian Lynagh <igloo@earth.li>**20080801225847]
1030[Get rid of some duplicate imports
1031Ian Lynagh <igloo@earth.li>**20080801214933]
1032[Remove the now-unused GHC/Conc.lhs-boot
1033Ian Lynagh <igloo@earth.li>**20080801214707]
1034[Make some more imports non-recursive
1035Ian Lynagh <igloo@earth.li>**20080801214546]
1036[Rejig some code so Control.Exception and GHC.Conc don't need recursive imports
1037Ian Lynagh <igloo@earth.li>**20080801214208]
1038[Remove the now-unused GHC/TopHandler.lhs-boot
1039Ian Lynagh <igloo@earth.li>**20080801212105]
1040[Reshuffle GHC.Conc/GHC.TopHandler a bit to remove a recursive import
1041Ian Lynagh <igloo@earth.li>**20080801211801]
1042[Don't import Control.Concurrent.MVar in GHC.TopHandler
1043Ian Lynagh <igloo@earth.li>**20080801200123]
1044[Export assertError from Control.Exception to make GHC happy
1045Ian Lynagh <igloo@earth.li>**20080801111716
1046 It's a wired-in name in GHC. We should possibly move it to another module.
1048[TopHandler now uses the new extensible exceptions
1049Ian Lynagh <igloo@earth.li>**20080731153553]
1050[Comment wibble
1051Ian Lynagh <igloo@earth.li>**20080730202127]
1052[Make numericEnumFrom more efficient
1053Ian Lynagh <igloo@earth.li>**20080730202049]
1054[Put in some parens to clarify how things parse
1055Ian Lynagh <igloo@earth.li>**20080730201934]
1056[applied patches to make enumFrom and friends strict in arguments as per the Report; closes ticket #1997
1057Bart Massey <bart@cs.pdx.edu>**20080726080444]
1058[Don't use "deriving Typeable" (for portability reasons)
1059Ian Lynagh <igloo@earth.li>**20080730194434]
1060[Add onException
1061Ian Lynagh <igloo@earth.li>**20080730172014]
1062[Fix whitespace
1063Ian Lynagh <igloo@earth.li>**20080730171951
1064 The space after "\begin{code}" was confusing haddock
1066[Re-add blocked; it got lost in the extensible exceptions patches
1067Ian Lynagh <igloo@earth.li>**20080730145614]
1068[Start to actually use extensible exceptions
1069Ian Lynagh <igloo@earth.li>**20080730145115]
1070[Rejig the extensible exceptions so there is less circular importing
1071Ian Lynagh <igloo@earth.li>**20080730122539]
1072[Define nonTermination for the RTS to use
1073Ian Lynagh <igloo@earth.li>**20080621144420
1074 We'll probably need to do the same for some other exceptions too
1076[Use extensible exceptions at the lowest level
1077Ian Lynagh <igloo@earth.li>**20080621121501
1078 Everything above is largely unchanged; just the type of catch and throw.
1080[add comment
1081Simon Marlow <marlowsd@gmail.com>**20080730114559]
1082[add some big warnings to the docs for unsafeIOToSTM (#2401)
1083Simon Marlow <marlowsd@gmail.com>**20080730114554]
1084[FIX #2376: inline shiftR
1085Simon Marlow <marlowsd@gmail.com>**20080730103539
1086 Duplicating the default definition for shiftR doesn't seem quite right
1087 to me, but it gets the right results when compiling the example
1088 program, and I couldn't find a better way to do it.
1090[Add instance Show Control.Exception.Exception for nhc98.
1092[Extend nhc98's Exception type to resemble ghc's more closely
1094[fix dummy async implementations for non-GHC
1095Ross Paterson <ross@soi.city.ac.uk>**20080715125521]
1096[Fix haddocking with older haddocks
1097Ian Lynagh <igloo@earth.li>**20080710190855]
1098[Add threadStatus :: ThreadId -> IO ThreadStatus
1099Simon Marlow <marlowsd@gmail.com>**20080710151711
1101 -- | The current status of a thread
1102 data ThreadStatus
1103   = ThreadRunning
1104         -- ^the thread is currently runnable or running
1105   | ThreadFinished
1106         -- ^the thread has finished
1107   | ThreadBlocked  BlockReason
1108         -- ^the thread is blocked on some resource
1109   | ThreadDied
1110         -- ^the thread received an uncaught exception
1111   deriving (Eq,Ord,Show)
1113 data BlockReason
1114   = BlockedOnMVar
1115         -- ^blocked on on 'MVar'
1116   | BlockedOnBlackHole
1117         -- ^blocked on a computation in progress by another thread
1118   | BlockedOnException
1119         -- ^blocked in 'throwTo'
1120   | BlockedOnSTM
1121         -- ^blocked in 'retry' in an STM transaction
1122   | BlockedOnForeignCall
1123         -- ^currently in a foreign call
1124   | BlockedOnOther
1125         -- ^blocked on some other resource.  Without @-threaded@,
1126         -- I/O and 'threadDelay' show up as 'BlockedOnOther', with @-threaded@
1127         -- they show up as 'BlockedOnMVar'.
1128   deriving (Eq,Ord,Show)
1130 This is useful for concurrency debugging.  I've left threadStatus in
1131 GHC.Conc for now, since the ThreadStatus type is somewhat GHC-specific.
1133[forkOS: start the new thread in blocked mode iff the parent was (#1048)
1134Simon Marlow <marlowsd@gmail.com>**20080709135558
1135 This matches the behaviour of forkIO
1137[Add Control.Exception.blocked :: IO Bool
1138Simon Marlow <marlowsd@gmail.com>**20080709133139
1139 Tells you whether async exceptions are currently blocked or not.
1141[FIX BUILD (on Windows)
1142Simon Marlow <marlowsd@gmail.com>**20080709123110]
1143[check CONST_SIGINT
1144Simon Marlow <marlowsd@gmail.com>**20080709122527]
1145[Make threadWaitRead/threadWaitWrite partially useable on Windows
1146Simon Marlow <marlowsd@gmail.com>**20080709111008
1148 They work with -threaded by calling fdReady() in a separate thread.
1150 "threadWaitRead 0" also works without -threaded (because we happen to
1151 know it's virtually equivalent to "hWaitForInput stdin (-1)").
1153[FIX #1198: hWaitForInput on Windows
1154Simon Marlow <marlowsd@gmail.com>**20080708134254
1155 Now we do the appropriate magic in fdReady() to detect when there is
1156 real input available, as opposed to uninteresting console events.
1158[FIX part of #2301
1159Simon Marlow <marlowsd@gmail.com>**20080709094437
1161 Control-C now causes the new exception (AsyncException UserInterrupt)
1162 to be raised in the main thread.  The signal handler is set up by
1163 GHC.TopHandler.runMainIO, and can be overriden in the usual way by
1164 installing a new signal handler.  The advantage is that now all
1165 programs will get a chance to clean up on ^C.
1167 When UserInterrupt is caught by the topmost handler, we now exit the
1168 program via kill(getpid(),SIGINT), which tells the parent process that
1169 we exited as a result of ^C, so the parent can take appropriate action
1170 (it might want to exit too, for example).
1172 One subtlety is that we have to use a weak reference to the ThreadId
1173 for the main thread, so that the signal handler doesn't prevent the
1174 main thread from being subject to deadlock detection.
1176[() has moved to ghc-prim:GHC.Unit, and the Eq and Ord instances to Data.Tuple
1177Ian Lynagh <igloo@earth.li>**20080624144932]
1178[Add GHC.Exts.maxTupleSize :: Int, the size of the largest tuple supported
1179Ian Lynagh <igloo@earth.li>**20080622141559]
1180[Remove code for older GHC versions
1181Ian Lynagh <igloo@earth.li>**20080620194521]
1182[Make the macros in Typeable.h add type signatures
1183Ian Lynagh <igloo@earth.li>**20080619235808]
1184[Fix #2363: getChar cannot be interrupted with -threaded
1185Simon Marlow <marlowsd@gmail.com>**20080619141911
1186 Now in -threaded mode, instead of just making a blocking call to
1187 read(), we call select() first to make sure the read() won't block,
1188 and if it would block, then we use threadWaitRead.
1190 The idea is that the current thread must be interruptible while it
1191 blocks.  This is a little slower than before, but the overhead only
1192 applies to blocking Handles (stdin/stdout/stderr, and those created by
1193 System.Process).
1195[Remove -fglasgow-exts from pragmas and comments
1196Ian Lynagh <igloo@earth.li>**20080616230727]
1197[Avoid using deprecated flags
1198Ian Lynagh <igloo@earth.li>**20080616145207]
1199[delete __hscore_{mkstemp,getrlimit,setrlimit} (moved to unix)
1200Ross Paterson <ross@soi.city.ac.uk>**20080615224413]
1201[Update WCsubst.c for Unicode 5.1.0, and add a README.Unicode
1202Ian Lynagh <igloo@earth.li>**20080613201754
1203 README.Unicode describes how to do updates in the future.
1205[Fix ubconfc
1206Ian Lynagh <igloo@earth.li>**20080613201456
1207 The current code doesn't seem to be what was used to generate WCsubst.c,
1208 so I'm not sure if it never worked, or if my tools work slightly
1209 differently to those of the previous user.
1211['permutations' is now more lazy and also faster
1212Twan van Laarhoven <twanvl@gmail.com>**20080102231712]
1213['subsequences' is now more lazy and also faster
1214Twan van Laarhoven <twanvl@gmail.com>**20080102231629]
1215[Add 'subsequences' and 'permutations' to Data.List
1216Twan van Laarhoven <twanvl@gmail.com>**20071218154950]
1217[Tweak the definition of (^) again
1218Ian Lynagh <igloo@earth.li>**20080601120759
1219 This fixes trac #2306 (do the minimum number of (*)s), and also means
1220 that we don't use the value of (1 :: a) which causes problems if the
1221 Num a definition isn't complete.
1223[note about evaluation affecting StableNames
1224Simon Marlow <marlowsd@gmail.com>**20080527110549]
1225[TAG 2008-05-28
1226Ian Lynagh <igloo@earth.li>**20080528003830]
1227Patch bundle hash: