Ticket #4400: exceptions_in_runInUnboundThread.dpatch

File exceptions_in_runInUnboundThread.dpatch, 53.0 KB (added by basvandijk, 4 years ago)
Line 
13 patches for repository http://darcs.haskell.org/packages/base:
2
3Thu Oct 14 23:05:46 CEST 2010  Bas van Dijk <v.dijk.bas@gmail.com>
4  * Use throwIO instead of throw in runInBoundThread and runInUnboundThread
5
6Thu Oct 14 23:23:25 CEST 2010  Bas van Dijk <v.dijk.bas@gmail.com>
7  * There's no need to explicitly check for blocked status in runInUnboundThread when we have mask
8
9Thu Oct 14 23:27:23 CEST 2010  Bas van Dijk <v.dijk.bas@gmail.com>
10  * Catch exceptions in current thread and throw them to the forked thread in runInUnboundThread
11
12New patches:
13
14[Use throwIO instead of throw in runInBoundThread and runInUnboundThread
15Bas van Dijk <v.dijk.bas@gmail.com>**20101014210546
16 Ignore-this: 8f8716fc3b565bdb11c68856663793c5
17] {
18hunk ./Control/Concurrent.hs 409
19             else do
20                 ref <- newIORef undefined
21                 let action_plus = Exception.try action >>= writeIORef ref
22-                resultOrException <-
23-                    bracket (newStablePtr action_plus)
24-                            freeStablePtr
25-                            (\cEntry -> forkOS_entry_reimported cEntry >> readIORef ref)
26-                case resultOrException of
27-                    Left exception -> Exception.throw (exception :: SomeException)
28-                    Right result -> return result
29+                bracket (newStablePtr action_plus)
30+                        freeStablePtr
31+                        (\cEntry -> forkOS_entry_reimported cEntry >> readIORef ref) >>=
32+                  unsafeResult
33     | otherwise = failNonThreaded
34 
35 {- |
36hunk ./Control/Concurrent.hs 437
37             _ <- mask $ \restore -> forkIO $
38               Exception.try (if b then action else restore action) >>=
39               putMVar mv
40-            takeMVar mv >>= \ei -> case ei of
41-                Left exception -> Exception.throw (exception :: SomeException)
42-                Right result -> return result
43+            takeMVar mv >>= unsafeResult
44         else action
45 
46hunk ./Control/Concurrent.hs 440
47+unsafeResult :: Either SomeException a -> IO a
48+unsafeResult = either Exception.throwIO return
49 #endif /* __GLASGOW_HASKELL__ */
50 
51 #ifdef __GLASGOW_HASKELL__
52}
53[There's no need to explicitly check for blocked status in runInUnboundThread when we have mask
54Bas van Dijk <v.dijk.bas@gmail.com>**20101014212325
55 Ignore-this: 22ca4c9eb3a476b6f83e612cccbac8ab
56] {
57hunk ./Control/Concurrent.hs 433
58     if bound
59         then do
60             mv <- newEmptyMVar
61-            b <- blocked
62             _ <- mask $ \restore -> forkIO $
63hunk ./Control/Concurrent.hs 434
64-              Exception.try (if b then action else restore action) >>=
65-              putMVar mv
66+              Exception.try (restore action) >>= putMVar mv
67             takeMVar mv >>= unsafeResult
68         else action
69 
70}
71[Catch exceptions in current thread and throw them to the forked thread in runInUnboundThread
72Bas van Dijk <v.dijk.bas@gmail.com>**20101014212723
73 Ignore-this: 6ed2952a3fa00d11055b61ed60f55ea8
74] {
75hunk ./Control/Concurrent.hs 425
76 doesn't need it's main thread to be bound and makes /heavy/ use of concurrency
77 (e.g. a web server), might want to wrap it's @main@ action in
78 @runInUnboundThread@.
79+
80+Note that exceptions which are thrown to the current thread are thrown in turn
81+to the thread that is executing the given computation. This ensures there's
82+always a way of killing the forked thread.
83 -}
84 runInUnboundThread :: IO a -> IO a
85 
86hunk ./Control/Concurrent.hs 433
87 runInUnboundThread action = do
88-    bound <- isCurrentThreadBound
89-    if bound
90-        then do
91-            mv <- newEmptyMVar
92-            _ <- mask $ \restore -> forkIO $
93-              Exception.try (restore action) >>= putMVar mv
94-            takeMVar mv >>= unsafeResult
95-        else action
96+  bound <- isCurrentThreadBound
97+  if bound
98+    then do
99+      mv <- newEmptyMVar
100+      mask $ \restore -> do
101+        tid <- forkIO $ Exception.try (restore action) >>= putMVar mv
102+        let wait = takeMVar mv `Exception.catch` \(e :: SomeException) ->
103+                     Exception.throwTo tid e >> wait
104+        wait >>= unsafeResult
105+    else action
106 
107 unsafeResult :: Either SomeException a -> IO a
108 unsafeResult = either Exception.throwIO return
109}
110
111Context:
112
113[throwTo: mention interruptible foreign calls
114Simon Marlow <marlowsd@gmail.com>**20101014084220
115 Ignore-this: dbc53d85f870cf649f87186c7185465a
116]
117[remove trailing whitespace
118Simon Marlow <marlowsd@gmail.com>**20101013101906
119 Ignore-this: b8b424540cacbbb3c6d934242e3af795
120]
121[FIX #4381
122Simon Marlow <marlowsd@gmail.com>**20101013101849
123 Ignore-this: f0daa4845eeb444231451b975b71d055
124 Fix scaleFloat by clamping the scaling parameter so that
125 exponent + scale doesn't overflow.
126 
127 Patch by: Daniel Fischer <daniel.is.fischer@web.de>
128]
129[Replaced some throws to throwIOs where the type is IO
130Bas van Dijk <v.dijk.bas@gmail.com>**20100924221340
131 Ignore-this: e74191e4527ae6f7551c95fd41063335
132]
133[Added initial .authorspellings
134Bas van Dijk <v.dijk.bas@gmail.com>**20101005072701
135 Ignore-this: 63628bcabfdd0b7beda4cd37daeccd89
136]
137[Lazier intersperse
138Daniel Fischer <daniel.is.fischer@web.de>**20101002231201
139 Ignore-this: a0fed65930cf19e68b4363381a5ab576
140 A lazier implementation of intersperse, and consequentially intercalate, to
141 avoid space leaks.
142]
143[FIX #4228 (atanh (-1) returns NaN instead of -Infinity)
144ghc@cainnorris.net**20100816213654
145 Ignore-this: dee89c24493e84a02bea711a1c83a73f
146]
147[Make intersectBy lazier
148Daniel Fischer <daniel.is.fischer@web.de>**20100930191731
149 Ignore-this: ef687bc75923434e85c14b57171576aa
150 Add shortcuts to intersectBy for empty list arguments.
151 In addition to being faster in that case, more inputs yield defined results.
152 Treats ticket #4323
153]
154[doc tweak for Directory file type: file names are '\0'-separated
155Simon Marlow <marlowsd@gmail.com>**20100922113811
156 Ignore-this: 96b7b004bd6e5bc3e958ad55bf238ba1
157]
158[documentation for IODeviceType (#4317, edited by me)
159Simon Marlow <marlowsd@gmail.com>**20100915131341
160 Ignore-this: 21c50ca7a189eebcf299523b6e942bae
161]
162[Allow Data.HashTable construction with user-supplied size
163**20100722210726
164 Ignore-this: bd54880bb16a106a992f03b040dc4164
165 
166 This avoids some resizing for users who know they will be inserting a
167 lot of data.
168 
169 http://hackage.haskell.org/trac/ghc/ticket/4193
170]
171[some fixes for hGetBufSome
172Simon Marlow <marlowsd@gmail.com>**20100916113732
173 Ignore-this: 3e596a606c180dc4859ea8f4c9132ca1
174  - fix one case where it was blocking when it shouldn't
175  - a couple of error-message tweaks
176]
177[Windows: map ERROR_NO_DATA to EPIPE, rather than EINVAL
178Simon Marlow <marlowsd@gmail.com>**20100915142618
179 Ignore-this: 9023e5f0542419f225aef26cb6b1d88d
180 WriteFile() returns ERROR_NO_DATA when writing to a pipe that is
181 "closing", however by default the write() wrapper in the CRT maps this
182 to EINVAL so we get confusing things like
183 
184   hPutChar: invalid argument (Invalid Argumnet)
185 
186 when piping the output of a Haskell program into something that closes
187 the pipe early.  This was happening in the testsuite in a few place.
188 
189 The solution is to map ERROR_NO_DATA to EPIPE correctly, as we
190 explicitly check for EPIPE on stdout (in GHC.TopHandler) so we can
191 exit without an error in this case.
192]
193[tighten up parsing of numbers (#1579)
194Simon Marlow <marlowsd@gmail.com>**20100913214733
195 Ignore-this: 3411bf3d2e98cfacb9e0afd11d79e722
196]
197[Add absentError. 
198simonpj@microsoft.com**20100914134639
199 Ignore-this: d0eef5a87e1def4cdbde92a55241c8c4
200 
201 This patch accompanies the HEAD patch:
202 
203   Tue Sep 14 12:38:27 BST 2010  simonpj@microsoft.com
204     * Make absent-arg wrappers work for unlifted types (fix Trac #4306)
205     
206     Previously we were simply passing arguments of unlifted
207     type to a wrapper, even if they were absent, which was
208     stupid.
209     
210     See Note [Absent error Id] in WwLib.
211]
212[Add missing import, fixes build on windows
213simonpj@microsoft.com**20100914122750
214 Ignore-this: 12ece15ef94982ddfbf5f9f7900619da
215]
216[Add a suitable Show instance for TextEncoding (#4273)
217Simon Marlow <marlowsd@gmail.com>**20100913154459
218 Ignore-this: 77f2235460895debd2827f34c42c3435
219]
220[don't fill a finalized handle with an error (see comment)
221Simon Marlow <marlowsd@gmail.com>**20100913153350
222 Ignore-this: c72cdb6898dffa88eca1d781171b2943
223]
224[deriving (Eq, Ord, Read, Show) for Newline and NewlineMode
225Simon Marlow <marlowsd@gmail.com>**20100913153031
226 Ignore-this: 9b9b29bfb7abf5550cfbfa7788f81bf
227]
228[fix warning on Windows
229Simon Marlow <marlowsd@gmail.com>**20100913111536
230 Ignore-this: dacc5448c452daad60ed37a1a5ed096e
231]
232[Put the state-token argument on fill, done, adjust on the RHS
233simonpj@microsoft.com**20100913101832
234 Ignore-this: d228b492de7d4635c026ed24cbc17e34
235 
236 This is so that the functions will inline when
237 applied to their normal (non-state-token) aguments.
238 
239 I forget why I did this, but it seems like the right thing anyway.
240]
241[avoid Foreign.unsafePerformIO
242Ross Paterson <ross@soi.city.ac.uk>**20100909125521
243 Ignore-this: b698101119ffd1bc6311cce0736f745d
244]
245[Remove debugging code accidentally left in
246Simon Marlow <marlowsd@gmail.com>**20100909113331
247 Ignore-this: 906a14176dd37030b8203782a687936b
248]
249[Fix Windows build; patches frmo ezyang
250Ian Lynagh <igloo@earth.li>**20100908123037
251 Ignore-this: 2f02986087edd7da8382221012c27cd0
252]
253[More accurate isatty test for MinGW.
254Edward Z. Yang <ezyang@mit.edu>**20100907154144
255 Ignore-this: 93bdc2b2a8e65a7c4c7d3906bdda01db
256]
257[Fix the build when HAVE_KQUEUE but not HAVE_KEVENT64
258Ian Lynagh <igloo@earth.li>**20100904223703]
259[Fix warnings
260benl@ouroborus.net**20100830044741
261 Ignore-this: 8397aaec7c36046c9ace403e65f32d32
262]
263[fix cache variable name used by FP_SEARCH_LIBS_PROTO
264Ross Paterson <ross@soi.city.ac.uk>**20100819204858
265 Ignore-this: b8113cb3c6f0e03c507297c99d3d82b7
266]
267[Add a missing castPtr (only shows up in -DDEBUG)
268simonpj@microsoft.com**20100815145127
269 Ignore-this: 30b9c42cd3ce7837bdabd254fe66078d
270]
271[Fixed a rounding error in threadDelay
272Johan Tibell <johan.tibell@gmail.com>**20100813124043
273 Ignore-this: 1cb77d0852233ffffb144b134064ee3c
274]
275[export allocaBytesAligned; make allocaArray use the correct alignment (#2917)
276Simon Marlow <marlowsd@gmail.com>**20100812105524
277 Ignore-this: deb6495f7b7b84deaf02b88927a5ba8c
278]
279[deprecate unGetChan and isEmptyChan (see #4154)
280Simon Marlow <marlowsd@gmail.com>**20100705125952
281 Ignore-this: b4e769959f131b2d0001eb7202bc1b92
282]
283[Add type signatures to cope with lack of local generalisation
284simonpj@microsoft.com**20100728124847
285 Ignore-this: d3af9a47c2821c6081bde05a135a92fb
286]
287[Add type signature in local where
288simonpj@microsoft.com**20100727151532
289 Ignore-this: 1c57063ad32d13e0d1ec8daf968bf055
290]
291[Integrated new I/O manager
292Simon Marlow <marlowsd@gmail.com>**20100810082248
293 Ignore-this: ed70a9066ac9b676a446fe99978fef7a
294 (patch originally by Johan Tibell <johan.tibell@gmail.com>, minor merging by me)
295]
296[Add mfilter to Control.Monad
297jon.fairbairn@cl.cam.ac.uk**20090917145616
298 Ignore-this: de4240b60684f3065b29378df3ea98f2
299 
300 Straightforward MonadPlus version of List.filter. I would
301 prefer to call it filter, but the current naming scheme for
302 Control.Monad implies mfilter.
303 
304]
305[move Monad and MonadFix instances for Either from mtl (proposal #4159)
306Ross Paterson <ross@soi.city.ac.uk>**20100729122449
307 Ignore-this: b0f8cd8643679948d1da43bd7c08c5aa
308 
309 The Monad and MonadFix instances for Either (formerly in the mtl
310 package) are moved to Control.Monad.Instances and Control.Monad.Fix
311 respectively.  The Monad instance is still an orphan, to retain Haskell
312 98 compatibility, but the MonadFix instance is together with its class.
313 The Error constraint is removed from both instances, and the default
314 definition of fail is used.
315]
316[Remove egregious ghc-ish from Foreign.Marshal
317Malcolm.Wallace@me.com**20100722075449]
318[add numSparks :: IO Int (#4167)
319Simon Marlow <marlowsd@gmail.com>**20100720153858
320 Ignore-this: 4543f57a7f137f8cae1c3efc5c023a9b
321]
322[add unsafeLocalState from Haskell 2010, and docs
323Simon Marlow <marlowsd@gmail.com>**20100720082819
324 Ignore-this: dcd79fb546ebe29ddff4df279ec2f38
325]
326[docs: mention that Foreign.unsafePerformIO is deprecated
327Simon Marlow <marlowsd@gmail.com>**20100720082804
328 Ignore-this: 4cfebb8f2a1cddc7d15e94e31b2befa4
329 We can't actually deprecate it without introducing a name clash
330 between Foreign.unsafePerformIO and System.IO.Unsafe.unsafePerformIO
331]
332[doc formatting fix
333Simon Marlow <marlowsd@gmail.com>**20100714151347
334 Ignore-this: 255edef607dcd290e198015240b5d125
335]
336[add module intro from Haskell 2010
337Simon Marlow <marlowsd@gmail.com>**20100714115853
338 Ignore-this: 59b5a07507a059ccccdff2dfb6490a27
339]
340[document exception-overriding behaviour in withFile
341Simon Marlow <marlowsd@gmail.com>**20100714104107
342 Ignore-this: f99e641ea2f46d872cb7420a62fa50dc
343]
344[doc: use "finalizer" consistently
345Simon Marlow <marlowsd@gmail.com>**20100714103649
346 Ignore-this: bdfea40f31dc5045fdbc6e12266dda93
347]
348[clarify meaning of bit
349Simon Marlow <marlowsd@gmail.com>**20100714103310
350 Ignore-this: 521b031f1e83ef34ca03d9aa9273df8a
351]
352[note shortcutting behaviour of any/all/elem
353Simon Marlow <marlowsd@gmail.com>**20100714103304
354 Ignore-this: 1605f362ba0712ad1cea1309636f3ea1
355]
356[add cast{C,U}CharToChar and castCharTo{C,U}Char, from Haskell 2010
357Simon Marlow <marlowsd@gmail.com>**20100713132515
358 Ignore-this: 9b1da827016c7b08668078b45964e9de
359]
360[mention that IntPtr and WordPtr can be marshalled to/from intptr_t and uintptr_t
361Simon Marlow <marlowsd@gmail.com>**20100713132403
362 Ignore-this: dcc112a72746ba117a84fa29e71b6800
363]
364[Partial fix for Trac #4136
365simonpj@microsoft.com**20100707135725
366 Ignore-this: 9548eeb3187d9779d4e5c858a0f35354
367 
368 In 'choose' (which is a library function designed specifically
369 to support derived instances of Read), we must match Symbol
370 as well as Ident, for nullary constructors that (wierdly) are
371 symbols.
372]
373[Fix typo in documentation
374Simon Hengel <simon.hengel@wiktory.org>**20100711141648
375 Ignore-this: c052dd8a681832ef598a323ad55eae3a
376]
377[Remove duplicated word in documentation
378Simon Hengel <simon.hengel@wiktory.org>**20100711072703
379 Ignore-this: fb3732dc57be55f14168792f923433
380]
381[Allow nhc98 to cope with recent changes to Control.Exception.
382Malcolm.Wallace@me.com**20100710170940]
383[ New asynchronous exception control API (base parts)
384Simon Marlow <marlowsd@gmail.com>**20100708152735
385 Ignore-this: 71a4811804f04259f1fe739f8863beaf
386   
387 As discussed on the libraries/haskell-cafe mailing lists
388   http://www.haskell.org/pipermail/libraries/2010-April/013420.html
389 
390 This is a replacement for block/unblock in the asychronous exceptions
391 API to fix a problem whereby a function could unblock asynchronous
392 exceptions even if called within a blocked context.
393 
394 The new terminology is "mask" rather than "block" (to avoid confusion
395 due to overloaded meanings of the latter).
396 
397 The following is the new API; the old API is deprecated but still
398 available for the time being.
399 
400 Control.Exception
401 -----------------
402 
403 mask  :: ((forall a. IO a -> IO a) -> IO b) -> IO b
404 mask_ :: IO a -> IO a
405 
406 uninterruptibleMask :: ((forall a. IO a -> IO a) -> IO b) -> IO b
407 uninterruptibleMask_ :: IO a -> IO
408 
409 getMaskingState :: IO MaskingState
410 
411 data MaskingState
412   = Unmasked
413   | MaskedInterruptible
414   | MaskedUninterruptible
415 
416 
417 Control.Concurrent
418 ------------------
419 
420 forkIOUnmasked :: IO () -> IO ThreadId
421]
422[Async-exception safety, and avoid space leaks
423Simon Marlow <marlowsd@gmail.com>**20100708145819
424 Ignore-this: dbfd0e61551e9e7b4fc1c6fe9b9a83de
425 Patch submitted by: Bas van Dijk <v.dijk.bas@gmail.com>
426 Modified slightly by me to remove non-functional changes.
427]
428[Async-exception safety, and avoid space leaks
429Simon Marlow <marlowsd@gmail.com>**20100708103154
430 Ignore-this: 190c3ac8f6633231624da8cf1316588
431 Patch submitted by: Bas van Dijk <v.dijk.bas@gmail.com>
432 Modified slightly by me to remove non-functional changes.
433]
434[Fix a few places where we forgot to close the text codecs (#4029)
435Simon Marlow <marlowsd@gmail.com>**20100702130210
436 Ignore-this: 2e81a4b4cb343181cef34b0f9e2ded47
437 Each time you invoke :load in GHCi it resets the CAFs, including
438 stdin/stdout/stderr, and each of these was allocating a new iconv_t.
439]
440[remove docs from Monad that belonged on the instance for MonadPlus IO
441Simon Marlow <marlowsd@gmail.com>**20100701154203
442 Ignore-this: 59df02542a7ac9421552a2155d848d27
443]
444[docs: unqualify Prelude.IO
445Simon Marlow <marlowsd@gmail.com>**20100701153817
446 Ignore-this: 73b0202876c827e7a5b4a5ce74e724c4
447]
448[unqualify Float and Double
449Simon Marlow <marlowsd@gmail.com>**20100701142727
450 Ignore-this: cbe89d31a00bf49996a33933324fca17
451]
452[extract information about Data.Time from docs for CTime
453Simon Marlow <marlowsd@gmail.com>**20100701142415
454 Ignore-this: c48c9609b8d36e43e033a7bea81d6f17
455]
456[doc typo
457Simon Marlow <marlowsd@gmail.com>**20100701142354
458 Ignore-this: 17a1fd703831c888975ff63fbfa3a9b2
459]
460[peekArray docs: remove mentions of "this version" and "previous version"
461Simon Marlow <marlowsd@gmail.com>**20100701125333
462 Ignore-this: 39a744874258670bd935ba9e38390939
463]
464[doc typo
465Simon Marlow <marlowsd@gmail.com>**20100701124154
466 Ignore-this: 98f5c286e38c2c34c96b05d5e8bc5ad9
467]
468[doc typo
469Simon Marlow <marlowsd@gmail.com>**20100701124128
470 Ignore-this: 10a4314ec7aed336701fc616fb574ebc
471]
472[doc typo
473Simon Marlow <marlowsd@gmail.com>**20100701123715
474 Ignore-this: c4909a7bf7163460ee5d32f58812041e
475]
476[doc wibble: Haskell 98 I/O Error -> 'IOError'
477Simon Marlow <marlowsd@gmail.com>**20100701123612
478 Ignore-this: bf373df781acbc575e4ffe3b7e6059ae
479]
480[doc typo
481Simon Marlow <marlowsd@gmail.com>**20100701123014
482 Ignore-this: 16aaccae48ef3101adf78ea5b0d5a8fd
483]
484[Haddock hacks to fix whitespace consistency
485Simon Marlow <marlowsd@gmail.com>**20100701121631
486 Ignore-this: 61c58dec52a31fd2d3f331a87d2f903f
487]
488[use '==' consistently rather than '->' in examples
489Simon Marlow <marlowsd@gmail.com>**20100701121616
490 Ignore-this: 472b0a05a85d34d9712186040e1636d9
491]
492[doc wibble: remove confusing mention of "Prelude"
493Simon Marlow <marlowsd@gmail.com>**20100701113308
494 Ignore-this: 232283d0096d01cd45e9b3c5c1e63a6d
495]
496[doc wibble: nonstrict -> non-strict
497Simon Marlow <marlowsd@gmail.com>**20100701113253
498 Ignore-this: 4264f0ab23a0835fc13c6e8601d6b743
499]
500[doc whitespace
501Simon Marlow <marlowsd@gmail.com>**20100701112242
502 Ignore-this: 777a95b1d1140c61d3ab95d5eb5809e7
503]
504[move the doc for 'Char' to its new home in ghc-prim:GHC.Types
505Simon Marlow <marlowsd@gmail.com>**20100629134150
506 Ignore-this: 7687db0077a29498349bfb4b44983985
507]
508[doc wibble
509Simon Marlow <marlowsd@gmail.com>**20100629122608
510 Ignore-this: 9a909e5d015332dc445bd9592e6e386d
511]
512[doc updates in System.IO
513Simon Marlow <marlowsd@gmail.com>**20100629122118
514 Ignore-this: 2257ec1cc4cdb8b7804cfa1f3cf32753
515]
516[doc wibble
517Simon Marlow <marlowsd@gmail.com>**20100625134858
518 Ignore-this: 64c50f29df6c389273b818918fe7033a
519]
520[doc wibbles
521Simon Marlow <marlowsd@gmail.com>**20100624154614
522 Ignore-this: b364aad53beea6e741fee2824459b6e8
523]
524[Fix haddock formatting
525Ian Lynagh <igloo@earth.li>**20100625222623]
526[Give nub's complexity in the haddock docs; fixes #4086
527Ian Lynagh <igloo@earth.li>**20100625222059]
528[correct docs for exitWith: only stdout/stderr are flushed, not all Handles
529Simon Marlow <marlowsd@gmail.com>**20100624130506
530 Ignore-this: 33a938dad8f0bc061572e2ec571cacc7
531]
532[fix docs for isSpace
533Simon Marlow <marlowsd@gmail.com>**20100624130444
534 Ignore-this: b35ff080dbb9833176f08e39dbd9ff6d
535]
536[make the hGetBuf/hPutBuf family work with non-FD Handles (#4144)
537Simon Marlow <marlowsd@gmail.com>**20100624130425
538 Ignore-this: 8200f0208a9b1b1cf4824f343d75819a
539]
540[nit in docs for accumArray
541Simon Marlow <marlowsd@gmail.com>**20100622121131
542 Ignore-this: c066a456c40907e767df10c3990f35ff
543]
544[add doc for the ExitCode type
545Simon Marlow <marlowsd@gmail.com>**20100622120930
546 Ignore-this: 99c34332be7f3565da844528b470054a
547]
548[remove extraneous info from docs for Array
549Simon Marlow <marlowsd@gmail.com>**20100622120921
550 Ignore-this: e2a3f5e84fc23eb7bae911f0680e805e
551]
552[add an INLINE to the list version of traverse, to enable fusion
553Simon Marlow <marlowsd@gmail.com>**20100608082531
554 Ignore-this: ea98cdc3308b406bb04c0f7a38c4424b
555]
556[Don't define the C localeEncoding on Windows
557Ian Lynagh <igloo@earth.li>**20100620202342
558 Ignore-this: c4992f6832a391b0cccc5a9b7d643976
559 (it causes warnings, and isn't used)
560]
561[add Applicative instance for Either (proposal #4095)
562Ross Paterson <ross@soi.city.ac.uk>**20100617225110
563 Ignore-this: 50262ec4700dc16efec5755be5b308c5
564 
565 This is not the only possible instance for Either, but this one is
566 compatible with the usual Monad instance.
567]
568[Use libcharset instead of nl_langinfo(CODESET) if possible.
569pho@cielonegro.org**20100519013112
570 Ignore-this: 4c1e278e022a3d276848afc1dcba4425
571 
572 nl_langinfo(CODESET) doesn't always return standardized variations of the encoding names. Use libcharset if possible, which is shipped together with GNU libiconv.
573]
574[Add a note about the interruptibility of throwTo.
575Simon Marlow <marlowsd@gmail.com>**20100615112720
576 Ignore-this: ae9fabe95310d7c364e95f7784793485
577]
578[docs: note that hGetBufNonBlocking isn't non-blocking on Windows
579Simon Marlow <marlowsd@gmail.com>**20100615112547
580 Ignore-this: 4f3e5213e142149affe08c5123d6efea
581]
582[don't depend on Prelude (#4122)
583Simon Marlow <marlowsd@gmail.com>**20100615105631
584 Ignore-this: 1a3fd49b103fe31cbb453f302c18767f
585]
586[Don't depend on Prelude (#4123)
587Simon Marlow <marlowsd@gmail.com>**20100615105401
588 Ignore-this: cc7616d85a1637bc7621b4f2bc181c0e
589]
590[bump version to 4.3.0.0, added instance MonadPlus STM
591Simon Marlow <marlowsd@gmail.com>**20100601144831
592 Ignore-this: 7c3cf7574499c4267372493f2636dc0
593]
594[Moved MonadPlus instance for STM from Control.Monad.STM to GHC.Conc to avoid an orphaned instance
595Bas van Dijk <v.dijk.bas@gmail.com>**20100516160651
596 Ignore-this: 651b852942b2fae2b93f996e39239b8f
597]
598[expand Foldable instance for Array
599Ross Paterson <ross@soi.city.ac.uk>**20100602212154
600 Ignore-this: 9bd9e9666a9400431eb92352244fe7e7
601]
602[doc comment illustrating Foldable(foldr)
603Ross Paterson <ross@soi.city.ac.uk>**20100527150833
604 Ignore-this: 8f27d889379803f3ba86d6e928428f3c
605]
606[fix syntax in doc comments
607Ross Paterson <ross@soi.city.ac.uk>**20100527150757
608 Ignore-this: cb78da51d60ff6863dc395f1a892c103
609]
610[export hGetBufSome (#4046)
611Simon Marlow <marlowsd@gmail.com>**20100520093538
612 Ignore-this: f467fad9722e27edfad6b3dd75290e7b
613]
614[hWaitForInput: don't try to read from the device (#4078)
615Simon Marlow <marlowsd@gmail.com>**20100517133741
616 Ignore-this: 55ec33b03397380259b91e4ca62207a6
617 readTextDeviceNonBlocking is not non-blocking on Windows
618]
619[Added Applicative and Alternative instances for STM
620Bas van Dijk <v.dijk.bas@gmail.com>**20100516171756
621 Ignore-this: 567003bc4040bc97105cda4d31ebf04a
622]
623[hSetEncoding: change the encoding on both read and write sides (#4066)
624Simon Marlow <marlowsd@gmail.com>**20100514124628
625 Ignore-this: 5b9e9caef06356d0296c584159709ebb
626]
627[Correct haddock formatting.
628Adam Vogt <vogt.adam@gmail.com>**20100423022103
629 Ignore-this: d2622339302048fda48080f7d5ce4a2f
630]
631[Fix for hGetBufSome
632Simon Marlow <marlowsd@gmail.com>**20100505135637
633 Ignore-this: 2019680f8fb223956cacfcf0d046f133
634]
635[improve the documentation for throwTo and killThread (#3884)
636Simon Marlow <marlowsd@gmail.com>**20100505135600
637 Ignore-this: ce881d96ddb729acb6ca09c779975e7d
638]
639[elaborate the docs for unsafePerformIO a bit
640Simon Marlow <marlowsd@gmail.com>**20100505101249
641 Ignore-this: 1cec3f67560b672c64c5a0dcf9a79eb7
642]
643[add Typeable instance
644Simon Marlow <marlowsd@gmail.com>**20100504152815
645 Ignore-this: 6d9cf9d62f0ef17fa459bf213a04098
646]
647[Add hGetBufSome, like hGetBuf but can return short reads
648Simon Marlow <marlowsd@gmail.com>**20100504152759
649 Ignore-this: 195c905b43f8d9505029364e2c5b18e
650]
651[Add swap (#3298)
652Simon Marlow <marlowsd@gmail.com>**20100504095339
653 Ignore-this: 13b007dc4594ce252997ec6fa0bbd976
654]
655[inline allocaArray0, to fix withCString benchmark
656Simon Marlow <marlowsd@gmail.com>**20100423124729
657 Ignore-this: 35c96816acc2f3aaf9dd29f7995fa6f0
658]
659[raise asynchronous exceptions asynchronously (#3997)
660Simon Marlow <marlowsd@gmail.com>**20100421094932
661 Ignore-this: 6d987d93d382c0f69c68c326312abd6b
662]
663[add NOINLINE pragmas for stdin/stdout/stderr
664Simon Marlow <marlowsd@gmail.com>**20100421082041
665 Ignore-this: 3fc130268ec786f28d945858d6690986
666]
667[INLINE alloca and malloc
668Simon Marlow <marlowsd@gmail.com>**20100419135333
669 Ignore-this: b218bd611f18721b1505a8c0b9e6a16a
670 See discussion on glasgow-haskell-users:
671   http://www.haskell.org/pipermail/glasgow-haskell-users/2010-April/018740.html
672]
673[Move comment closer to the offending line
674Matthias Kilian <kili@outback.escape.de>**20100419155421
675 Ignore-this: b34a1d7affd66f67d210df2377b585d9
676]
677[Ignore the return code of c_fcntl_write again
678Matthias Kilian <kili@outback.escape.de>**20100415140452
679 Ignore-this: 266d8ba02cc3cb79c85629b3528261c9
680 
681 The return code has been ignored in the past on purpose, because
682 O_NONBLOCK will fail on BSDs for some special files. This fixes the
683 problem mentioned in
684 http://www.haskell.org/pipermail/glasgow-haskell-users/2010-April/018698.html
685 
686]
687[Fix bitrot in IO debugging code
688Ian Lynagh <igloo@earth.li>**20100413134339
689 Also switched to using Haskell Bools (rather than CPP) to en/disable it,
690 so it shouldn't break again in the future.
691]
692[Tiny code tidy-up
693Ian Lynagh <igloo@earth.li>**20100413011147]
694[remove old/wrong comment
695Simon Marlow <marlowsd@gmail.com>**20100325161403
696 Ignore-this: e6e377d44af48c4162d17d55bdf3f821
697]
698[withThread: block asynchronous exceptions before installing exception handler.
699Bas van Dijk <v.dijk.bas@gmail.com>**20100329131624
700 Ignore-this: be5aeb47dbd73807b5f94df11afbb81c
701 Note that I don't unblock the given io computation. Because AFAICS
702 withThread is only called with 'waitFd' which only performs an FFI
703 call which can't receive asynchronous exceptions anyway.
704]
705[runInUnboundThread: block asynchronous exceptions before installing exception handler
706Bas van Dijk <v.dijk.bas@gmail.com>**20100329131549
707 Ignore-this: a00c5e32fe3981ff87bedd367a69051e
708]
709[fix the deprecation message (GHC.IO.Handle.Base -> GHC.IO.Handle)
710Simon Marlow <marlowsd@gmail.com>**20100330121137
711 Ignore-this: 4ca8500a01ac93454507aa8f9dd001f9
712]
713[Make SampleVar an abstract newtype
714Bas van Dijk <v.dijk.bas@gmail.com>**20100318200349
715 Ignore-this: 27939e2a064b75e71cb146117346be30
716]
717[Fix bugs regarding asynchronous exceptions and laziness in Control.Concurrent.SampleVar
718Bas van Dijk <v.dijk.bas@gmail.com>**20100318200104
719 Ignore-this: 7376b2a3afe155daf233a8f1ddc0a7a
720  - Block asynchronous exceptions at the right places
721  - Force thunks before putting them in a MVar
722]
723[Write the thunk 'next' to the MVar
724Bas van Dijk <v.dijk.bas@gmail.com>**20100319125951
725 Ignore-this: dd25636cf220131385ff2fd32493d456
726]
727[change to use STM, fixing 4 things
728Simon Marlow <marlowsd@gmail.com>**20100318104436
729 Ignore-this: 551d30280a7941c08f5c3b14576bdd70
730   1. there was no async exception protection
731   2. there was a space leak (now new value is strict)
732   3. using atomicModifyIORef would be slightly quicker, but can
733      suffer from adverse scheduling issues (see #3838)
734   4. also, the STM version is faster.
735]
736[Tweak docs
737Ian Lynagh <igloo@earth.li>**20100312214129]
738[Fixed dead links in documentation of forkIO
739Bas van Dijk <v.dijk.bas@gmail.com>**20100308222415
740 Ignore-this: 7deb8fd064c867fbede2a6b2e9da4f15
741]
742[Documentation fixes in Control.Exception
743Bas van Dijk <v.dijk.bas@gmail.com>**20100301220442
744 Ignore-this: 761fcba401cbd1f47276ddfc9b5b80f2
745]
746[Plug two race conditions that could lead to deadlocks in the IO manager
747Simon Marlow <marlowsd@gmail.com>**20100225120255
748 Ignore-this: e6983d6b953104d370278ab3e4617e8b
749]
750[FIX #3866: improve documentation of Data.Data.Constr
751jpm@cs.uu.nl**20100224125506
752 Ignore-this: 3818c5d8fee012a3cf322fb455b6e5dc
753]
754[UNDO: Handle NaN, -Infinity and Infinity in the toRational for Float/Double (#3676)
755Simon Marlow <marlowsd@gmail.com>**20100223101603
756 Ignore-this: 78becb2d39b3cd9a1a473a5811ca7d92
757]
758[Put the complexity in the length docs. Fixes trac #3680
759Ian Lynagh <igloo@earth.li>**20100221191425]
760[nhc98 should build Data.Functor.
761Malcolm.Wallace@cs.york.ac.uk**20100221163218]
762[Update the exitWith docs
763Ian Lynagh <igloo@earth.li>**20100213140004
764 Error pointed out by Volker Wysk <vw@volker-wysk.de>
765]
766[Handle NaN, -Infinity and Infinity in the toRational for Float/Double (#3676)
767Simon Marlow <marlowsd@gmail.com>**20100211101955
768 Ignore-this: 261415363303efca265e80290eac5f28
769]
770[For nhc98, import unsafeInterleaveIO rather than defining it here.
771Malcolm.Wallace@cs.york.ac.uk**20100204171021]
772[Stifle warning about unused return value
773benl@cse.unsw.edu.au**20100203025537]
774[fix #3832: use the locale encoding in openTempFile
775Simon Marlow <marlowsd@gmail.com>**20100120211830
776 Ignore-this: df4f778cc5fefb32290c798db722632c
777 Also while I was here fix an XXX: the Handle contained an
778 uninformative string like <fd: 4> for error messages rather than the
779 real file path.
780]
781[Fix the build: export void, so it doesn't give an unused binding warning
782Ian Lynagh <igloo@earth.li>**20100116174451]
783[hIsEOF: don't do any decoding (#3808)
784Simon Marlow <marlowsd@gmail.com>**20100112230317
785 Ignore-this: 6a384dd2d547ffe3ad3762920e5c1671
786]
787[Control.Monad: +void :: f a -> f ()
788gwern0@gmail.com**20100108214455
789 Ignore-this: 4dc07452315f2d1b4941903ff42fc45f
790 See http://hackage.haskell.org/trac/ghc/ticket/3292
791 Turns m a -> m (). Lets one call functions for their side-effects without
792 having to get rid of their return values with '>> return ()'. Very useful
793 in many contexts (parsing, IO etc.); particularly good for 'forkIO' and 'forM_',
794 as they demand return types of 'IO ()' though most interesting IO functions
795 return non-().
796]
797[Replace the implementation of mergesort with a 2x faster one.
798Malcolm.Wallace@cs.york.ac.uk**20091224152014
799 See ticket http://hackage.haskell.org/trac/ghc/ticket/2143.
800]
801[Restore previous Data.Typeable.typeOf*Default implementations for non-ghc.
802Malcolm.Wallace@cs.york.ac.uk**20091223142625
803 Not all compilers have ScopedTypeVariables.
804]
805[Add comments about double bounds-checking, and fast paths for rectangular arrays
806simonpj@microsoft.com**20091218165655
807 Ignore-this: ea0849419dc00927aba4bd410b1cc58d
808 
809 See Note [Double bounds-checking of index values] for the details.
810 
811 The fast paths omit the doubled checks for cases we know about
812]
813[Fix Trac #3245: memoising typeOf
814simonpj@microsoft.com**20091218155117
815 Ignore-this: 5a178a7f2222293c5ee0c3c43bd1b625
816 
817 The performance bug in #3245 was caused by computing the typeRep
818 once for each call of typeOf, rather than once for each dictionary
819 contruction.  (Computing TypeReps is reasonably expensive, because
820 of the hash-consing machinery.)
821 
822 This is readily fixed by putting the TypeRep construction outside
823 the lambda.  (Arguably GHC might have worked that out itself,
824 but it involves floating something between a type lambda and a
825 value lambda, which GHC doesn't currently do. If it happens a lot
826 we could fix that.)
827]
828[Mark 'index' as INLINE in GHC.Arr
829simonpj@microsoft.com**20091216170441
830 Ignore-this: a4df9d8acf496c8e0e9ce5a520509a2a
831 
832 This makes indexing much faster. See Trac #1216
833]
834[Comment the remaining orphan instance modules
835Ian Lynagh <igloo@earth.li>**20091206125021]
836[De-orphan Eq/Ord Float/Double
837Ian Lynagh <igloo@earth.li>**20091205181238]
838[Add comments to "OPTIONS_GHC -fno-warn-orphans" pragmas
839Ian Lynagh <igloo@earth.li>**20091205165854]
840[Data.Either.partitionEithers was insufficiently lazy.
841Malcolm.Wallace@cs.york.ac.uk**20091202032807
842 Ignore-this: 77e1b3288f66608c71458d8a91bcbe12
843 Spotted by Daniel Fischer.
844]
845[fix the docs regarding finalizer guarantees
846Simon Marlow <marlowsd@gmail.com>**20091130144409
847 Ignore-this: d1ab9532c74a002b8075ff60febcbe2d
848]
849[x86_64 requires more stack
850Malcolm.Wallace@cs.york.ac.uk**20091201033745]
851[check for size < 0 in mallocForeignPtrBytes and friends (#3514)
852Simon Marlow <marlowsd@gmail.com>**20091125143822
853 Ignore-this: 91077d01da2bbe1dfed5155e8b40da9
854]
855[hGetContents: close the handle properly on error
856Simon Marlow <marlowsd@gmail.com>**20091125123435
857 Ignore-this: bc37ff678acc6e547dc390285e056eb9
858 
859 When hGetContents caught an error it was closing the handle and then
860 throwing the exception, without updating the handle with the new
861 closed state.  This lead to a double-closed, which was the cause of
862 
863 *** glibc detected *** ./Setup: double free or corruption
864 
865 when iconv_close was called twice on the decoder.
866 
867 See http://hackage.haskell.org/trac/hackage/ticket/609
868]
869[Fix arities of mapFB and zipFB
870Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091126232219
871 Ignore-this: c4e14cd0a92622549c86e67237a40865
872]
873[Remove an unnecessary -fno-warn-orphans flag
874Ian Lynagh <igloo@earth.li>**20091126123404]
875[Tweak layout to work with alternative layout rule
876Ian Lynagh <igloo@earth.li>**20091125232349]
877[Tweak layout to be accepted by the alternative layout rul
878Ian Lynagh <igloo@earth.li>**20091125194147]
879[Make sure zipWithFB has arity 2
880Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091125010003
881 Ignore-this: 4cf60c55666f03d22a9f5a6e07f52d36
882 
883 It gets 2 arguments in the "zipWith" rule but its arity was higher and the new
884 inliner didn't inline it sometimes, for instance here:
885 
886 mpp ::  [Double] -> [Double] -> [Double] -> [Double] -> [Double]
887 mpp as bs cs ds = zipWith (*) (zipWith (+) as bs) (zipWith (+) cs ds)
888 
889 This was a regression vs. 6.10.
890]
891[Remove an old comment
892Ian Lynagh <igloo@earth.li>**20091124134647]
893[De-orphan the Eq/Ord Integer instances
894Ian Lynagh <igloo@earth.li>**20091124133639]
895[Whitespace only
896Ian Lynagh <igloo@earth.li>**20091124133421]
897[Derive some more instances, rather than writing them by hand
898Ian Lynagh <igloo@earth.li>**20091124011747]
899[We can now derive Ord ()
900Ian Lynagh <igloo@earth.li>**20091124011416]
901[De-orphan tuple Eq/Ord instances
902Ian Lynagh <igloo@earth.li>**20091123233343]
903[Control.Exception.Base no longer has any orphans
904Ian Lynagh <igloo@earth.li>**20091123224905]
905[De-orphan the MonadFix ST instance for GHC
906Ian Lynagh <igloo@earth.li>**20091123223544]
907[Rearrange the contents of Control.Monad.ST; no functionality changes
908Ian Lynagh <igloo@earth.li>**20091123222702]
909[De-orphan the Eq/Ord [a] instances
910Ian Lynagh <igloo@earth.li>**20091123215635]
911[De-orphan the Eq/Ord Char instances
912Ian Lynagh <igloo@earth.li>**20091123202253]
913[De-orphan the Eq/Ord Bool instances
914Ian Lynagh <igloo@earth.li>**20091123201817]
915[Move Eq/Ord Ordering instances to de-orphan them
916Ian Lynagh <igloo@earth.li>**20091123194310]
917[Remove ffi warnings for nhc98.
918Malcolm.Wallace@cs.york.ac.uk**20091123063743]
919[Second attempt to fix #1185 (forkProcess and -threaded)
920Simon Marlow <marlowsd@gmail.com>**20091111151915
921 Ignore-this: fa5f5d5e4e080d4b612a37244f937f9c
922 
923 Patch 2/2: first patch is to ghc
924 
925 This time without dynamic linker hacks, instead I've expanded the
926 existing rts/Globals.c to cache more CAFs, specifically those in
927 GHC.Conc.  We were already using this trick for signal handlers, I
928 should have realised before.
929 
930 It's still quite unsavoury, but we can do away with rts/Globals.c in
931 the future when we switch to a dynamically-linked GHCi.
932]
933[Rollback #1185 fix
934Simon Marlow <marlowsd@gmail.com>**20091106140629
935 Ignore-this: cd5667e8474e37e01ba26a1984274811
936 
937 rolling back:
938 
939 Tue Nov  3 16:05:40 GMT 2009  Simon Marlow <marlowsd@gmail.com>
940   * Fix #1185: restart the IO manager after fork()
941   
942   This is the libraries/base part of the patch; there is a corresponding
943   patch to GHC itself.
944   
945   The main change is that we now keep track of the IO manager's ThreadId
946   in a top-level MVar, and ensureIOManagerIsRunning checks whether a
947   previous IO manager thread is alive before starting one.  In the child
948   of fork(), we can hence call ensureIOManagerIsRunning to restart the
949   IO manager.
950 
951     M ./GHC/Conc.lhs -46 +44
952 
953 Wed Nov  4 17:49:45 GMT 2009  Ian Lynagh <igloo@earth.li>
954   * Fix the build on Windows
955 
956     M ./GHC/Conc.lhs -6 +4
957]
958[Fix the build on Windows
959Ian Lynagh <igloo@earth.li>**20091104174945]
960[Fix #1185: restart the IO manager after fork()
961Simon Marlow <marlowsd@gmail.com>**20091103160540
962 Ignore-this: 6dc05464f1500104554637f4759738cc
963 
964 This is the libraries/base part of the patch; there is a corresponding
965 patch to GHC itself.
966 
967 The main change is that we now keep track of the IO manager's ThreadId
968 in a top-level MVar, and ensureIOManagerIsRunning checks whether a
969 previous IO manager thread is alive before starting one.  In the child
970 of fork(), we can hence call ensureIOManagerIsRunning to restart the
971 IO manager.
972]
973[improve the documentation for throwErrnoIfRetry
974Simon Marlow <marlowsd@gmail.com>**20091016112404
975 Ignore-this: b77275cacf730e15757946027168f63e
976]
977[Don't inline unpackFoldrCString ever
978simonpj@microsoft.com**20091029135350
979 Ignore-this: 85d672649b1b776efc7e97500b05d4f9
980]
981[Inline more default methods
982simonpj@microsoft.com**20091029135330
983 Ignore-this: 289c44b0afd6d5631c2a4e0664275ca9
984 
985 Namely Monad: (>>)
986        Eq:    (==), (/=)
987        Num:   (-), negate
988        Real:  quot, rem, div, mod, recip, (/), truncate
989        Float: (**), logBase, sqrt, tan, tanh
990]
991[Move error messages out of INLINEd default methods
992simonpj@microsoft.com**20091029135118
993 Ignore-this: 9e35dc947f94827a3529eb53a41575fd
994 
995 No need to duplicate the error generation!
996]
997[Exploit now-working default-method INLINE pragmas for Data.Bits
998simonpj@microsoft.com**20091029135041
999 Ignore-this: 8adf225f31ca7a3181ee087e9e4fe535
1000 
1001 * Add INLINE pragmas to default methods for class Bits
1002 
1003 * Remove redundant instance methods elsewhere, now that
1004   the default method will do the job
1005]
1006[Tidy up and comment imports
1007simonpj@microsoft.com**20091029134414
1008 Ignore-this: bf2be31035de975d8995e988933cc940
1009]
1010[Inline foldr and (.) when applied to two arguments not three
1011simonpj@microsoft.com**20091029134335
1012 Ignore-this: fccb6f3e90e15f44cb465814be85ede2
1013 
1014 The new INLINE story is (by design) arity-sensitive, so we must
1015 put fewer argument on the LHS for foldr and (.)
1016]
1017[dirUtils.c no longer available
1018Malcolm.Wallace@cs.york.ac.uk**20091013093833]
1019[Make hGetContents throw an exception if an error is encountered
1020Simon Marlow <marlowsd@gmail.com>**20091012152955
1021 Ignore-this: 9f7a7176193eab25c9daaacd9261f2de
1022 
1023 Strictly speaking this breaks Haskell 98 compatibility, which requires
1024 hGetContents to just end the lazy stream silently if an error is
1025 encountered.  However, for a few reasons we think it will make
1026 everyone's life a bit easier if we make this change
1027 
1028  1. Errors will be a lot more common in GHC 6.12.1, in the form
1029     of Unicode decoding errors.
1030 
1031  2. When Haskell 98 was designed, we didn't know how to throw
1032     exceptions from inside lazy I/O, but now we do.
1033 
1034  3. If anyone is actually relying on the previous behaviour, their
1035     code is arguably broken.
1036]
1037[Re-instate System.Console.Getopt for nhc98 builds.
1038Malcolm.Wallace@cs.york.ac.uk**20091013092843
1039 Although it was split out of base a while back, that change was
1040 reverted for ghc soon afterwards, but nhc98 never noticed.
1041]
1042[Roll back "Another instance of nhc98's strange import semantics."
1043Ian Lynagh <igloo@earth.li>**20091009185618
1044 Fri Oct  9 14:50:51 BST 2009  Malcolm.Wallace@cs.york.ac.uk
1045 GHC (correctly) warns about the unused import, which breaks the validate
1046 build.
1047]
1048[Roll back "Cope with nhc98's (occasionally-strange) import semantics"
1049Ian Lynagh <igloo@earth.li>**20091009184704
1050 Fri Oct  9 14:43:51 BST 2009  Malcolm.Wallace@cs.york.ac.uk
1051 GHC (correctly) warns about the unused import, which breaks the validate
1052 build.
1053]
1054[It seems that nhc98 needs defaulting in Data.Fixed.
1055Malcolm.Wallace@cs.york.ac.uk**20091009135242]
1056[Another instance of nhc98's strange import semantics.
1057Malcolm.Wallace@cs.york.ac.uk**20091009135051]
1058[Make Data.Functor compatible with non-GHC compilers.
1059Malcolm.Wallace@cs.york.ac.uk**20091009134821]
1060[Cope with nhc98's (occasionally-strange) import semantics.
1061Malcolm.Wallace@cs.york.ac.uk**20091009134351]
1062[Fix gratuitous breakage of nhc98 in System.IO.
1063Malcolm.Wallace@cs.york.ac.uk**20091009134001]
1064[Fix gratuitous breakage of nhc98 in Control.Exception.Base.
1065Malcolm.Wallace@cs.york.ac.uk**20091009133615]
1066[Fix gratuitous breakage of non-GHC in Data.Fixed.
1067Malcolm.Wallace@cs.york.ac.uk**20091009133330]
1068[Fix gratuitous breakage for non-GHC in Data.Bits.
1069Malcolm.Wallace@cs.york.ac.uk**20091009133257]
1070[Use UTF-32LE instead of UTF32LE
1071Simon Marlow <marlowsd@gmail.com>**20091006100207
1072 Ignore-this: 7f881e36543d250ef848c9f60d67655a
1073 The latter is not recognised by some iconv implementations.
1074]
1075[Strip any Byte Order Mark (BOM) from the front of decoded streams.
1076Ben.Lippmeier@anu.edu.au*-20090930084229
1077 Ignore-this: d0d0c3ae87b31d71ef1627c8e1786445
1078 When decoding to UTF-32, Solaris iconv inserts a BOM at the front
1079 of the stream, but Linux iconv doesn't.
1080]
1081[use UTF32BE/UTF32LE instead of UCS-4/UCS-4LE
1082Simon Marlow <marlowsd@gmail.com>**20091005101554
1083 Ignore-this: 2aef5e9bec421e714953b7aa1bdfc1b3
1084]
1085[Strip any Byte Order Mark (BOM) from the front of decoded streams.
1086Ben.Lippmeier@anu.edu.au**20090930084229
1087 Ignore-this: d0d0c3ae87b31d71ef1627c8e1786445
1088 When decoding to UTF-32, Solaris iconv inserts a BOM at the front
1089 of the stream, but Linux iconv doesn't.
1090]
1091[Add traceEvent :: String -> IO ()
1092Simon Marlow <marlowsd@gmail.com>**20090925141257
1093 Ignore-this: 8b1888bbf9682ffba13f815b6000e4b1
1094 For emitting an event via the RTS tracing framework
1095]
1096[Fix the error message when flushing the read buffer of a non-seekable Handle
1097Simon Marlow <marlowsd@gmail.com>**20090923090536
1098 Ignore-this: 4342026df93759d99480f4e13f80a492
1099]
1100[Fix #3534: No need to flush the byte buffer when setting binary mode
1101Simon Marlow <marlowsd@gmail.com>**20090923090445
1102 Ignore-this: 625817ed7ae2c12291eb993a99dc640a
1103]
1104[Use let !y = x in .. x .. instead of seq in $! and evaluate (#2273)
1105Simon Marlow <marlowsd@gmail.com>**20090916140454]
1106[make some Applicative functions into methods, and split off Data.Functor (proposal #3335)
1107Ross Paterson <ross@soi.city.ac.uk>**20090915173109
1108 Ignore-this: a0cff4de6dfdbcbd56a66101bc4855a9
1109 
1110 The following functions
1111 
1112     (<$) :: Functor f => a -> f b -> f a
1113     (*>) :: Applicative f => f a -> f b -> f b
1114     (<*) :: Applicative f => f a -> f b -> f a
1115     some :: Alternative f => f a -> f [a]
1116     many :: Alternative f => f a -> f [a]
1117 
1118 are moved into the corresponding classes, with the existing implementations
1119 as default definitions.  This gives people creating instances the option of
1120 defining specialized implementations of these functions, though they should
1121 be equivalent to the default definitions.
1122 
1123 Although (<$) is now a method of the Functor class, it is hidden in the
1124 re-export by the Prelude, Control.Monad and Monad.  The new module
1125 Data.Functor exposes the full class, plus the function (<$>).  These are
1126 also re-exported by Control.Applicative.
1127]
1128[On Windows, use the console code page for text file encoding/decoding.
1129Judah Jacobson <judah.jacobson@gmail.com>**20090913022126
1130 Ignore-this: 86c2f2db8ef92b751599795d3195187b
1131 
1132 We keep all of the code page tables in the module
1133 GHC.IO.Encoding.CodePage.Table.  That file was generated automatically
1134 by running codepages/MakeTable.hs; more details are in the comments at the
1135 start of that script.
1136 
1137 Storing the lookup tables adds about 40KB to each statically linked executable;
1138 this only increases the size of a "hello world" program by about 7%.
1139 
1140 Currently we do not support double-byte encodings (Chinese/Japanese/Korean), since
1141 including those codepages would increase the table size to 400KB.  It will be
1142 straightforward to implement them once the work on library DLLs is finished.
1143]
1144[Fix "init" docs: the input list need not be finite. Fixes trac #3465
1145Ian Lynagh <igloo@earth.li>**20090911210437]
1146[Bump base version to 4.2.0.0
1147Ian Lynagh <igloo@earth.li>**20090911153913]
1148[Address #3310
1149Simon Marlow <marlowsd@gmail.com>**20090830152850
1150 Ignore-this: 40c7f7c171ee299a83092fd360a952b7
1151 
1152  - Rename BlockedOnDeadMVar   -> BlockedIndefinitelyOnMVar
1153  - Rename BlockedIndefinitely -> BlockedIndefinitelyOnSTM
1154  - instance Show BlockedIndefinitelyOnMVar is now
1155      "blocked indefinitely in an MVar operation"
1156  - instance Show BlockedIndefinitelyOnSTM is now
1157      "blocked indefinitely in an STM transaction"
1158 
1159 clients using Control.OldException will be unaffected (the new
1160 exceptions are mapped to the old names).  However, for base4-compat
1161 we'll need to make a version of catch/try that does a similar
1162 mapping.
1163]
1164[Fix unicode conversion for MSB architectures
1165Ben.Lippmeier@anu.edu.au**20090830130028
1166 This fixes the SPARC/Solaris build.
1167]
1168[Fix #3441: detect errors in partial sequences
1169Simon Marlow <marlowsd@gmail.com>**20090830075909
1170 Ignore-this: d12a75d95e0cae5eb1555266810ec281
1171]
1172[Fix hWaitForInput
1173Simon Marlow <marlowsd@gmail.com>**20090827152116
1174 Ignore-this: 2550e911f1a4d4357a5aa8d1764238ce
1175 It was erroneously waiting when there were bytes to decode waiting in
1176 the byte buffer.
1177]
1178[fix debugging code
1179Simon Marlow <marlowsd@gmail.com>**20090827150628
1180 Ignore-this: e1c82fdc19a22e247cd69ff6fa11921d
1181]
1182[Allow for configurable iconv include and library locations.
1183Matthias Kilian <kili@outback.escape.de>**20090826154406
1184 Ignore-this: be95fab611a5534cf184b508964ed498
1185 This should help to fix the build on OpenBSD.
1186]
1187[typo in comment
1188Simon Marlow <marlowsd@gmail.com>**20090826085252
1189 Ignore-this: 1903ee0f354157a6ed3871c100f6b1b9
1190]
1191[un-hide some modules from the Haddock docs
1192Simon Marlow <marlowsd@gmail.com>**20090825152457
1193 Ignore-this: dce6606f93cf977fb24ebe99082dfa62
1194]
1195[Apply fix for #1548, from squadette@gmail.com
1196Simon Marlow <marlowsd@gmail.com>**20090819120700
1197 Ignore-this: 31c237c46a6445f588ed4b8c51bb6231
1198]
1199[improvements to Data.Fixed: instances for Typeable and Data, more predefined types
1200Ashley Yakeley <ashley@semantic.org>**20090812055058
1201 Ignore-this: feeece36d5632f02a05d137d2a39ab78
1202]
1203[Fix "Cabal check" warnings
1204Ian Lynagh <igloo@earth.li>**20090811215856]
1205[Add a GHC.Constants module; fixes trac #3094
1206Ian Lynagh <igloo@earth.li>**20090809183252]
1207[Apply proposal #3393
1208Ian Lynagh <igloo@earth.li>**20090809134717
1209 Add openTempFileWithDefaultPermissions and
1210 openBinaryTempFileWithDefaultPermissions.
1211]
1212[Add some more C wrappers; patch from Krister Walfridsson
1213Ian Lynagh <igloo@earth.li>**20090807200631
1214 Fixes 21 testsuite errors on NetBSD 5.99.
1215]
1216[Fixing configure for autoconf 2.64
1217Alexander Dunlap <alexander.dunlap@gmail.com>**20090805060748
1218 Ignore-this: 992ab91ae3d68c12dbb265776e33e243
1219]
1220[add INLINE toList
1221Ross Paterson <ross@soi.city.ac.uk>**20090806142853
1222 Ignore-this: aba16aabb17d5dca44f15d188945680e
1223 
1224 In anticipation of the fixing of #2353.
1225]
1226[fix a copyright
1227Simon Marlow <marlowsd@gmail.com>**20090805134045
1228 Ignore-this: b0ffbdd38fbba121e8bcba37c4082a60
1229]
1230[Tweak the BufferedIO class to enable a memory-mapped file implementation
1231Simon Marlow <marlowsd@gmail.com>**20090805134036
1232 Ignore-this: ec67d7a0a6d977438deaa342503f77e0
1233 We have to eliminate the assumption that an empty write buffer can be
1234 constructed by setting the buffer pointers to zero: this isn't
1235 necessarily the case when the buffer corresponds to a memory-mapped
1236 file, or other in-memory device implementation.
1237]
1238[Deprecate Control.OldException
1239Ian Lynagh <igloo@earth.li>**20090804143910]
1240[Windows build fix, following RTS tidyup
1241Simon Marlow <marlowsd@gmail.com>**20090803131121
1242 Ignore-this: ce862fb91c2b234211a8757f98690778
1243]
1244[Updates to follow the RTS tidyup
1245Simon Marlow <marlowsd@gmail.com>**20090801220743
1246 Ignore-this: 6e92412df93a66c12d75344053d5634
1247 C functions like isDoubleNaN moved here (primFloat.c)
1248]
1249[Add integer-simple as a build option
1250Ian Lynagh <igloo@earth.li>**20090722013151]
1251[Use shift[LR]Integer in the Bits Integer instance
1252Ian Lynagh <igloo@earth.li>**20090721222440]
1253[depend directly on integer-gmp, rather than indirecting through integer
1254Ian Lynagh <igloo@earth.li>**20090721185228]
1255[Move the instances of Functor and Monad IO to GHC.Base, to avoid orphans
1256Simon Marlow <marlowsd@gmail.com>**20090722102130
1257 Ignore-this: a7d85ac0025d559674249de0108dbcf4
1258]
1259[move "instance Exception Dynamic" so it isn't an orphan
1260Simon Marlow <marlowsd@gmail.com>**20090721093854
1261 Ignore-this: 5ede91ecfec2112c91b699d4de87cd02
1262]
1263[Improve the index checking for array accesses; fixes #2120 #2669
1264Ian Lynagh <igloo@earth.li>**20090719153228
1265 As well as checking that offset we are reading is actually inside the
1266 array, we now also check that it is "in range" as defined by the Ix
1267 instance. This fixes confusing behaviour (#2120) and improves some error
1268 messages (#2669).
1269]
1270[Make chr say what its argument was, if it's a bad argument
1271Ian Lynagh <igloo@earth.li>**20090718151049]
1272[remove unused warning
1273Simon Marlow <marlowsd@gmail.com>**20090715124416
1274 Ignore-this: 31f613654089d0f4a44363946087b41e
1275]
1276[warning fix: -fno-implicit-prelude -> -XNoImplicitPrelude
1277Simon Marlow <marlowsd@gmail.com>**20090715122839
1278 Ignore-this: dc8957249731d5bcb71c01899e5adf2b
1279]
1280[Add hGetEncoding :: Handle -> IO (Maybe TextEncoding)
1281Simon Marlow <marlowsd@gmail.com>**20090715122519
1282 Ignore-this: 14c3eff996db062da1199739781e4708
1283 as suggested during the discussion on the libraries list
1284]
1285[Add more documentation to mkTextEncoding
1286Simon Marlow <marlowsd@gmail.com>**20090715122414
1287 Ignore-this: 97253b2624267df3a246a18121e8ea81
1288 noting that "//IGNORE" and "//TRANSLIT" suffixes can be used with GNU
1289 iconv.
1290]
1291[Add the utf8_bom codec
1292Simon Marlow <marlowsd@gmail.com>**20090715122257
1293 Ignore-this: 1c9396cd805201fe873a39382ced79c7
1294 as suggested during the discussion on the libraries list.
1295]
1296[Export Unicode and newline functionality from System.IO; update Haddock docs
1297Simon Marlow <marlowsd@gmail.com>**20090713113104
1298 Ignore-this: c3f017a555335aa55d106253393f72e2
1299]
1300[add a comment about the non-workingness of CHARBUF_UTF16
1301Simon Marlow <marlowsd@gmail.com>**20090707124406
1302 Ignore-this: 98d00411b68d688b3b4cffc9507b1f35
1303]
1304[Fix build on Windows
1305Ian Lynagh <igloo@earth.li>**20090711004351]
1306[Fix some "warn-unused-do-bind" warnings where we want to ignore the value
1307Ian Lynagh <igloo@earth.li>**20090710204513]
1308[Use throwErrnoIfMinus1_ when calling getrusage
1309Ian Lynagh <igloo@earth.li>**20090710204221]
1310[Remove an unused import
1311Ian Lynagh <igloo@earth.li>**20090710153345]
1312[reportStackOverflow now returns IO ()
1313Ian Lynagh <igloo@earth.li>**20090710153257
1314 It used to do "return undefined" to return IO a.
1315]
1316[GHC.Conc.reportError now returns IO ()
1317Ian Lynagh <igloo@earth.li>**20090710152646
1318 It used to return IO a, by "return undefined".
1319]
1320[Fix some "warn-unused-do-bind" warnings where we want to ignore the value
1321Ian Lynagh <igloo@earth.li>**20090710152526]
1322[Minor SampleVar refactoring
1323Ian Lynagh <igloo@earth.li>**20090710151438]
1324[Fix "warn-unused-do-bind" warnings in GHC/IO/Handle/Text.hs
1325Ian Lynagh <igloo@earth.li>**20090710122905]
1326[Fix some "warn-unused-do-bind" warnings where we just want to ignore the result
1327Ian Lynagh <igloo@earth.li>**20090710005638]
1328[Use the result of writeCharBuf in GHC/IO/Encoding/Latin1.hs too
1329Ian Lynagh <igloo@earth.li>**20090710004032]
1330[Minor code tidyups in GHC.Conc
1331Ian Lynagh <igloo@earth.li>**20090710003801]
1332[Fix "warn-unused-do-bind" warning in GHC.Conc
1333Ian Lynagh <igloo@earth.li>**20090710003530
1334 If we fail to communicate with the IO manager then we print a warning
1335 using debugErrLn from the ghc-prim package.
1336]
1337[Fix "warn-unused-do-bind" warnings in System.Posix.Internals
1338Ian Lynagh <igloo@earth.li>**20090709164546]
1339[Fix "warn-unused-do-bind" warnings where we really do want to ignore the result
1340Ian Lynagh <igloo@earth.li>**20090709163912]
1341[Add back imports needed on Windows
1342Ian Lynagh <igloo@earth.li>**20090707181924]
1343[Remove unused imports
1344Ian Lynagh <igloo@earth.li>**20090707115810]
1345[Remove unused imports from base
1346simonpj@microsoft.com**20090706111842
1347 Ignore-this: f9b5f353e3bb820f787c56d615b28765
1348 
1349 These unused imports are detected by the new unused-import code
1350 
1351]
1352[Use the result of writeCharBuf
1353Simon Marlow <marlowsd@gmail.com>**20090706133303
1354 Ignore-this: 52288dd559bf4c4f313df6197091d935
1355   
1356 This only makes a difference when CHARBUF_UTF16 is in use, which it
1357 normally isn't.  I suspect CHARBUF_UTF16 doesn't currently work for
1358 other reasons (CHARBUF_UTF16 was an experiment before I wrote the
1359 GHC.IO.Encoding.UTF* codecs), but this patch at least makes it
1360 slightly closer to working.
1361]
1362[Remove some cruft from Data.HashTable
1363Ian Lynagh <igloo@earth.li>**20090706181630]
1364[Add 'eof' to Text.ParserCombinators.ReadP
1365simonpj@microsoft.com**20090706111801
1366 Ignore-this: 2aea7b848e00c894761bc4011adaa95d
1367 
1368 Add a ReadP parser that succeeds at the end of input. Very useful!
1369 
1370]
1371[Don't export CLDouble for GHC; fixes trac #2793
1372Ian Lynagh <igloo@earth.li>**20090705155120
1373 We never really supported CLDouble (it was a plain old double underneath),
1374 and pretending that we do does more harm than good.
1375]
1376[a byte between 0x80 and 0xBF is illegal immediately (#3341)
1377Simon Marlow <marlowsd@gmail.com>**20090702081415
1378 Ignore-this: dc19ef59a1a21118d5a7dd38aa2f611c
1379]
1380[avoid a warning
1381Simon Marlow <marlowsd@gmail.com>**20090630084134
1382 Ignore-this: c92a45ee216faf01327feae9fe06d6e2
1383]
1384[Add a wrapper for libiconv.
1385Matthias Kilian <kili@outback.escape.de>**20090629183634
1386 Ignore-this: 23c6047c0d71b745b495cc223574a47f
1387]
1388[#include <sys/times.h> if we have it (should fix build problems)
1389Simon Marlow <marlowsd@gmail.com>**20090629085351
1390 Ignore-this: a35e93b37ca9595c73460243180f4b9d
1391]
1392[set binary mode for existing FDs on Windows (fixes some GHCi test failures)
1393Simon Marlow <marlowsd@gmail.com>**20090626120522
1394 Ignore-this: 580cf636e9c77d8427aff6861d089481
1395]
1396[Move directory-related stuff to the unix package
1397Simon Marlow <marlowsd@gmail.com>**20090625120325
1398 Ignore-this: b997b3cbce0a46ca87ad825bbdc0a411
1399 now that it isn't used on Windows any more.
1400]
1401[TAG 2009-06-25
1402Ian Lynagh <igloo@earth.li>**20090625160056]
1403Patch bundle hash:
1404899aded77fa1d556bed99d522f59b18d1cd533c5