Ticket #4193: hashtable_hint_size_bittwiddle.dpatch

File hashtable_hint_size_bittwiddle.dpatch, 43.4 KB (added by japple, 3 years ago)

Patch version #2, changing size calculation to use bit twiddling

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