Ticket #4080: libcharset.patch

File libcharset.patch, 33.8 KB (added by PHO, 3 years ago)
Line 
11 patch for repository http://darcs.haskell.org/packages/base:
2
3Wed May 19 10:31:12 JST 2010  pho@cielonegro.org
4  * Use libcharset instead of nl_langinfo(CODESET) if possible.
5 
6  nl_langinfo(CODESET) doesn't always return standardized variations of the encoding names. Use libcharset if possible, which is shipped together with GNU libiconv.
7-----BEGIN PGP SIGNED MESSAGE-----
8Hash: SHA1
9
10
11New patches:
12
13[Use libcharset instead of nl_langinfo(CODESET) if possible.
14pho@cielonegro.org**20100519013112
15 Ignore-this: 4c1e278e022a3d276848afc1dcba4425
16 
17 nl_langinfo(CODESET) doesn't always return standardized variations of the encoding names. Use libcharset if possible, which is shipped together with GNU libiconv.
18] {
19hunk ./GHC/IO/Encoding/Iconv.hs 95
20 {-# NOINLINE localeEncoding #-}
21 localeEncoding :: TextEncoding
22 localeEncoding = unsafePerformIO $ do
23- -#if HAVE_LANGINFO_H
24- -   cstr <- c_localeEncoding -- use nl_langinfo(CODESET) to get the encoding
25- -                               -- if we have it
26+   -- Use locale_charset() or nl_langinfo(CODESET) to get the encoding
27+   -- if we have either of them.
28+   cstr <- c_localeEncoding
29    r <- peekCString cstr
30    mkTextEncoding r
31hunk ./GHC/IO/Encoding/Iconv.hs 100
32- -#else
33- -   mkTextEncoding "" -- GNU iconv accepts "" to mean the -- locale encoding.
34- -#endif
35 
36 -- We hope iconv_t is a storable type.  It should be, since it has at least the
37 -- value -1, which is a possible return value from iconv_open.
38hunk ./cbits/PrelIOUtils.c 27
39     debugBelch(s,t);
40 }
41 
42- -// Use a C wrapper for this because we avoid hsc2hs in base
43- -#if HAVE_LANGINFO_H
44- -#include <langinfo.h>
45- -char *localeEncoding (void)
46+#if defined(HAVE_LIBCHARSET)
47+#  include <libcharset.h>
48+#elif defined(HAVE_LANGINFO_H)
49+#  include <langinfo.h>
50+#endif
51+
52+const char* localeEncoding(void)
53 {
54hunk ./cbits/PrelIOUtils.c 35
55+#if defined(HAVE_LIBCHARSET)
56+    return locale_charset();
57+
58+#elif defined(HAVE_LANGINFO_H)
59     return nl_langinfo(CODESET);
60hunk ./cbits/PrelIOUtils.c 40
61- -}
62+
63+#else
64+#warning Depending on the unportable behavior of GNU iconv due to absence of both libcharset and langinfo.h
65+    /* GNU iconv accepts "" to mean the current locale's
66+     * encoding. Warning: This isn't portable.
67+     */
68+    return "";
69 #endif
70hunk ./cbits/PrelIOUtils.c 48
71+}
72 
73 #endif /* __GLASGOW_HASKELL__ */
74hunk ./configure.ac 139
75                              AC_MSG_ERROR([iconv is required on non-Windows platforms]);;
76                       esac])
77 
78+# If possible, we use libcharset instead of nl_langinfo(CODESET) to
79+# determine the current locale's character encoding.
80+FP_SEARCH_LIBS_PROTO(
81+    [locale_charset],
82+    [#include <libcharset.h>],
83+    [const char* charset = locale_charset();],
84+    [charset],
85+    [AC_DEFINE([HAVE_LIBCHARSET], [1], [Define to 1 if you have libcharset.])
86+     EXTRA_LIBS="$EXTRA_LIBS $ac_lib"])
87+
88+
89 AC_SUBST(EXTRA_LIBS)
90 AC_CONFIG_FILES([base.buildinfo])
91 
92}
93
94Context:
95
96[hSetEncoding: change the encoding on both read and write sides (#4066)
97Simon Marlow <marlowsd@gmail.com>**20100514124628
98 Ignore-this: 5b9e9caef06356d0296c584159709ebb
99]
100[Correct haddock formatting.
101Adam Vogt <vogt.adam@gmail.com>**20100423022103
102 Ignore-this: d2622339302048fda48080f7d5ce4a2f
103]
104[Fix for hGetBufSome
105Simon Marlow <marlowsd@gmail.com>**20100505135637
106 Ignore-this: 2019680f8fb223956cacfcf0d046f133
107]
108[improve the documentation for throwTo and killThread (#3884)
109Simon Marlow <marlowsd@gmail.com>**20100505135600
110 Ignore-this: ce881d96ddb729acb6ca09c779975e7d
111]
112[elaborate the docs for unsafePerformIO a bit
113Simon Marlow <marlowsd@gmail.com>**20100505101249
114 Ignore-this: 1cec3f67560b672c64c5a0dcf9a79eb7
115]
116[add Typeable instance
117Simon Marlow <marlowsd@gmail.com>**20100504152815
118 Ignore-this: 6d9cf9d62f0ef17fa459bf213a04098
119]
120[Add hGetBufSome, like hGetBuf but can return short reads
121Simon Marlow <marlowsd@gmail.com>**20100504152759
122 Ignore-this: 195c905b43f8d9505029364e2c5b18e
123]
124[Add swap (#3298)
125Simon Marlow <marlowsd@gmail.com>**20100504095339
126 Ignore-this: 13b007dc4594ce252997ec6fa0bbd976
127]
128[inline allocaArray0, to fix withCString benchmark
129Simon Marlow <marlowsd@gmail.com>**20100423124729
130 Ignore-this: 35c96816acc2f3aaf9dd29f7995fa6f0
131]
132[raise asynchronous exceptions asynchronously (#3997)
133Simon Marlow <marlowsd@gmail.com>**20100421094932
134 Ignore-this: 6d987d93d382c0f69c68c326312abd6b
135]
136[add NOINLINE pragmas for stdin/stdout/stderr
137Simon Marlow <marlowsd@gmail.com>**20100421082041
138 Ignore-this: 3fc130268ec786f28d945858d6690986
139]
140[INLINE alloca and malloc
141Simon Marlow <marlowsd@gmail.com>**20100419135333
142 Ignore-this: b218bd611f18721b1505a8c0b9e6a16a
143 See discussion on glasgow-haskell-users:
144   http://www.haskell.org/pipermail/glasgow-haskell-users/2010-April/018740.html
145]
146[Move comment closer to the offending line
147Matthias Kilian <kili@outback.escape.de>**20100419155421
148 Ignore-this: b34a1d7affd66f67d210df2377b585d9
149]
150[Ignore the return code of c_fcntl_write again
151Matthias Kilian <kili@outback.escape.de>**20100415140452
152 Ignore-this: 266d8ba02cc3cb79c85629b3528261c9
153 
154 The return code has been ignored in the past on purpose, because
155 O_NONBLOCK will fail on BSDs for some special files. This fixes the
156 problem mentioned in
157 http://www.haskell.org/pipermail/glasgow-haskell-users/2010-April/018698.html
158 
159]
160[Fix bitrot in IO debugging code
161Ian Lynagh <igloo@earth.li>**20100413134339
162 Also switched to using Haskell Bools (rather than CPP) to en/disable it,
163 so it shouldn't break again in the future.
164]
165[Tiny code tidy-up
166Ian Lynagh <igloo@earth.li>**20100413011147]
167[remove old/wrong comment
168Simon Marlow <marlowsd@gmail.com>**20100325161403
169 Ignore-this: e6e377d44af48c4162d17d55bdf3f821
170]
171[withThread: block asynchronous exceptions before installing exception handler.
172Bas van Dijk <v.dijk.bas@gmail.com>**20100329131624
173 Ignore-this: be5aeb47dbd73807b5f94df11afbb81c
174 Note that I don't unblock the given io computation. Because AFAICS
175 withThread is only called with 'waitFd' which only performs an FFI
176 call which can't receive asynchronous exceptions anyway.
177]
178[runInUnboundThread: block asynchronous exceptions before installing exception handler
179Bas van Dijk <v.dijk.bas@gmail.com>**20100329131549
180 Ignore-this: a00c5e32fe3981ff87bedd367a69051e
181]
182[fix the deprecation message (GHC.IO.Handle.Base -> GHC.IO.Handle)
183Simon Marlow <marlowsd@gmail.com>**20100330121137
184 Ignore-this: 4ca8500a01ac93454507aa8f9dd001f9
185]
186[Make SampleVar an abstract newtype
187Bas van Dijk <v.dijk.bas@gmail.com>**20100318200349
188 Ignore-this: 27939e2a064b75e71cb146117346be30
189]
190[Fix bugs regarding asynchronous exceptions and laziness in Control.Concurrent.SampleVar
191Bas van Dijk <v.dijk.bas@gmail.com>**20100318200104
192 Ignore-this: 7376b2a3afe155daf233a8f1ddc0a7a
193  - Block asynchronous exceptions at the right places
194  - Force thunks before putting them in a MVar
195]
196[Write the thunk 'next' to the MVar
197Bas van Dijk <v.dijk.bas@gmail.com>**20100319125951
198 Ignore-this: dd25636cf220131385ff2fd32493d456
199]
200[change to use STM, fixing 4 things
201Simon Marlow <marlowsd@gmail.com>**20100318104436
202 Ignore-this: 551d30280a7941c08f5c3b14576bdd70
203   1. there was no async exception protection
204   2. there was a space leak (now new value is strict)
205   3. using atomicModifyIORef would be slightly quicker, but can
206      suffer from adverse scheduling issues (see #3838)
207   4. also, the STM version is faster.
208]
209[Tweak docs
210Ian Lynagh <igloo@earth.li>**20100312214129]
211[Fixed dead links in documentation of forkIO
212Bas van Dijk <v.dijk.bas@gmail.com>**20100308222415
213 Ignore-this: 7deb8fd064c867fbede2a6b2e9da4f15
214]
215[Documentation fixes in Control.Exception
216Bas van Dijk <v.dijk.bas@gmail.com>**20100301220442
217 Ignore-this: 761fcba401cbd1f47276ddfc9b5b80f2
218]
219[Plug two race conditions that could lead to deadlocks in the IO manager
220Simon Marlow <marlowsd@gmail.com>**20100225120255
221 Ignore-this: e6983d6b953104d370278ab3e4617e8b
222]
223[FIX #3866: improve documentation of Data.Data.Constr
224jpm@cs.uu.nl**20100224125506
225 Ignore-this: 3818c5d8fee012a3cf322fb455b6e5dc
226]
227[UNDO: Handle NaN, -Infinity and Infinity in the toRational for Float/Double (#3676)
228Simon Marlow <marlowsd@gmail.com>**20100223101603
229 Ignore-this: 78becb2d39b3cd9a1a473a5811ca7d92
230]
231[Put the complexity in the length docs. Fixes trac #3680
232Ian Lynagh <igloo@earth.li>**20100221191425]
233[nhc98 should build Data.Functor.
234Malcolm.Wallace@cs.york.ac.uk**20100221163218]
235[Update the exitWith docs
236Ian Lynagh <igloo@earth.li>**20100213140004
237 Error pointed out by Volker Wysk <vw@volker-wysk.de>
238]
239[Handle NaN, -Infinity and Infinity in the toRational for Float/Double (#3676)
240Simon Marlow <marlowsd@gmail.com>**20100211101955
241 Ignore-this: 261415363303efca265e80290eac5f28
242]
243[For nhc98, import unsafeInterleaveIO rather than defining it here.
244Malcolm.Wallace@cs.york.ac.uk**20100204171021]
245[Stifle warning about unused return value
246benl@cse.unsw.edu.au**20100203025537]
247[fix #3832: use the locale encoding in openTempFile
248Simon Marlow <marlowsd@gmail.com>**20100120211830
249 Ignore-this: df4f778cc5fefb32290c798db722632c
250 Also while I was here fix an XXX: the Handle contained an
251 uninformative string like <fd: 4> for error messages rather than the
252 real file path.
253]
254[Fix the build: export void, so it doesn't give an unused binding warning
255Ian Lynagh <igloo@earth.li>**20100116174451]
256[hIsEOF: don't do any decoding (#3808)
257Simon Marlow <marlowsd@gmail.com>**20100112230317
258 Ignore-this: 6a384dd2d547ffe3ad3762920e5c1671
259]
260[Control.Monad: +void :: f a -> f ()
261gwern0@gmail.com**20100108214455
262 Ignore-this: 4dc07452315f2d1b4941903ff42fc45f
263 See http://hackage.haskell.org/trac/ghc/ticket/3292
264 Turns m a -> m (). Lets one call functions for their side-effects without
265 having to get rid of their return values with '>> return ()'. Very useful
266 in many contexts (parsing, IO etc.); particularly good for 'forkIO' and 'forM_',
267 as they demand return types of 'IO ()' though most interesting IO functions
268 return non-().
269]
270[Replace the implementation of mergesort with a 2x faster one.
271Malcolm.Wallace@cs.york.ac.uk**20091224152014
272 See ticket http://hackage.haskell.org/trac/ghc/ticket/2143.
273]
274[Restore previous Data.Typeable.typeOf*Default implementations for non-ghc.
275Malcolm.Wallace@cs.york.ac.uk**20091223142625
276 Not all compilers have ScopedTypeVariables.
277]
278[Add comments about double bounds-checking, and fast paths for rectangular arrays
279simonpj@microsoft.com**20091218165655
280 Ignore-this: ea0849419dc00927aba4bd410b1cc58d
281 
282 See Note [Double bounds-checking of index values] for the details.
283 
284 The fast paths omit the doubled checks for cases we know about
285]
286[Fix Trac #3245: memoising typeOf
287simonpj@microsoft.com**20091218155117
288 Ignore-this: 5a178a7f2222293c5ee0c3c43bd1b625
289 
290 The performance bug in #3245 was caused by computing the typeRep
291 once for each call of typeOf, rather than once for each dictionary
292 contruction.  (Computing TypeReps is reasonably expensive, because
293 of the hash-consing machinery.)
294 
295 This is readily fixed by putting the TypeRep construction outside
296 the lambda.  (Arguably GHC might have worked that out itself,
297 but it involves floating something between a type lambda and a
298 value lambda, which GHC doesn't currently do. If it happens a lot
299 we could fix that.)
300]
301[Mark 'index' as INLINE in GHC.Arr
302simonpj@microsoft.com**20091216170441
303 Ignore-this: a4df9d8acf496c8e0e9ce5a520509a2a
304 
305 This makes indexing much faster. See Trac #1216
306]
307[Comment the remaining orphan instance modules
308Ian Lynagh <igloo@earth.li>**20091206125021]
309[De-orphan Eq/Ord Float/Double
310Ian Lynagh <igloo@earth.li>**20091205181238]
311[Add comments to "OPTIONS_GHC -fno-warn-orphans" pragmas
312Ian Lynagh <igloo@earth.li>**20091205165854]
313[Data.Either.partitionEithers was insufficiently lazy.
314Malcolm.Wallace@cs.york.ac.uk**20091202032807
315 Ignore-this: 77e1b3288f66608c71458d8a91bcbe12
316 Spotted by Daniel Fischer.
317]
318[fix the docs regarding finalizer guarantees
319Simon Marlow <marlowsd@gmail.com>**20091130144409
320 Ignore-this: d1ab9532c74a002b8075ff60febcbe2d
321]
322[x86_64 requires more stack
323Malcolm.Wallace@cs.york.ac.uk**20091201033745]
324[check for size < 0 in mallocForeignPtrBytes and friends (#3514)
325Simon Marlow <marlowsd@gmail.com>**20091125143822
326 Ignore-this: 91077d01da2bbe1dfed5155e8b40da9
327]
328[hGetContents: close the handle properly on error
329Simon Marlow <marlowsd@gmail.com>**20091125123435
330 Ignore-this: bc37ff678acc6e547dc390285e056eb9
331 
332 When hGetContents caught an error it was closing the handle and then
333 throwing the exception, without updating the handle with the new
334 closed state.  This lead to a double-closed, which was the cause of
335 
336 *** glibc detected *** ./Setup: double free or corruption
337 
338 when iconv_close was called twice on the decoder.
339 
340 See http://hackage.haskell.org/trac/hackage/ticket/609
341]
342[Fix arities of mapFB and zipFB
343Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091126232219
344 Ignore-this: c4e14cd0a92622549c86e67237a40865
345]
346[Remove an unnecessary -fno-warn-orphans flag
347Ian Lynagh <igloo@earth.li>**20091126123404]
348[Tweak layout to work with alternative layout rule
349Ian Lynagh <igloo@earth.li>**20091125232349]
350[Tweak layout to be accepted by the alternative layout rul
351Ian Lynagh <igloo@earth.li>**20091125194147]
352[Make sure zipWithFB has arity 2
353Roman Leshchinskiy <rl@cse.unsw.edu.au>**20091125010003
354 Ignore-this: 4cf60c55666f03d22a9f5a6e07f52d36
355 
356 It gets 2 arguments in the "zipWith" rule but its arity was higher and the new
357 inliner didn't inline it sometimes, for instance here:
358 
359 mpp ::  [Double] -> [Double] -> [Double] -> [Double] -> [Double]
360 mpp as bs cs ds = zipWith (*) (zipWith (+) as bs) (zipWith (+) cs ds)
361 
362 This was a regression vs. 6.10.
363]
364[Remove an old comment
365Ian Lynagh <igloo@earth.li>**20091124134647]
366[De-orphan the Eq/Ord Integer instances
367Ian Lynagh <igloo@earth.li>**20091124133639]
368[Whitespace only
369Ian Lynagh <igloo@earth.li>**20091124133421]
370[Derive some more instances, rather than writing them by hand
371Ian Lynagh <igloo@earth.li>**20091124011747]
372[We can now derive Ord ()
373Ian Lynagh <igloo@earth.li>**20091124011416]
374[De-orphan tuple Eq/Ord instances
375Ian Lynagh <igloo@earth.li>**20091123233343]
376[Control.Exception.Base no longer has any orphans
377Ian Lynagh <igloo@earth.li>**20091123224905]
378[De-orphan the MonadFix ST instance for GHC
379Ian Lynagh <igloo@earth.li>**20091123223544]
380[Rearrange the contents of Control.Monad.ST; no functionality changes
381Ian Lynagh <igloo@earth.li>**20091123222702]
382[De-orphan the Eq/Ord [a] instances
383Ian Lynagh <igloo@earth.li>**20091123215635]
384[De-orphan the Eq/Ord Char instances
385Ian Lynagh <igloo@earth.li>**20091123202253]
386[De-orphan the Eq/Ord Bool instances
387Ian Lynagh <igloo@earth.li>**20091123201817]
388[Move Eq/Ord Ordering instances to de-orphan them
389Ian Lynagh <igloo@earth.li>**20091123194310]
390[Remove ffi warnings for nhc98.
391Malcolm.Wallace@cs.york.ac.uk**20091123063743]
392[Second attempt to fix #1185 (forkProcess and -threaded)
393Simon Marlow <marlowsd@gmail.com>**20091111151915
394 Ignore-this: fa5f5d5e4e080d4b612a37244f937f9c
395 
396 Patch 2/2: first patch is to ghc
397 
398 This time without dynamic linker hacks, instead I've expanded the
399 existing rts/Globals.c to cache more CAFs, specifically those in
400 GHC.Conc.  We were already using this trick for signal handlers, I
401 should have realised before.
402 
403 It's still quite unsavoury, but we can do away with rts/Globals.c in
404 the future when we switch to a dynamically-linked GHCi.
405]
406[Rollback #1185 fix
407Simon Marlow <marlowsd@gmail.com>**20091106140629
408 Ignore-this: cd5667e8474e37e01ba26a1984274811
409 
410 rolling back:
411 
412 Tue Nov  3 16:05:40 GMT 2009  Simon Marlow <marlowsd@gmail.com>
413   * Fix #1185: restart the IO manager after fork()
414   
415   This is the libraries/base part of the patch; there is a corresponding
416   patch to GHC itself.
417   
418   The main change is that we now keep track of the IO manager's ThreadId
419   in a top-level MVar, and ensureIOManagerIsRunning checks whether a
420   previous IO manager thread is alive before starting one.  In the child
421   of fork(), we can hence call ensureIOManagerIsRunning to restart the
422   IO manager.
423 
424     M ./GHC/Conc.lhs -46 +44
425 
426 Wed Nov  4 17:49:45 GMT 2009  Ian Lynagh <igloo@earth.li>
427   * Fix the build on Windows
428 
429     M ./GHC/Conc.lhs -6 +4
430]
431[Fix the build on Windows
432Ian Lynagh <igloo@earth.li>**20091104174945]
433[Fix #1185: restart the IO manager after fork()
434Simon Marlow <marlowsd@gmail.com>**20091103160540
435 Ignore-this: 6dc05464f1500104554637f4759738cc
436 
437 This is the libraries/base part of the patch; there is a corresponding
438 patch to GHC itself.
439 
440 The main change is that we now keep track of the IO manager's ThreadId
441 in a top-level MVar, and ensureIOManagerIsRunning checks whether a
442 previous IO manager thread is alive before starting one.  In the child
443 of fork(), we can hence call ensureIOManagerIsRunning to restart the
444 IO manager.
445]
446[improve the documentation for throwErrnoIfRetry
447Simon Marlow <marlowsd@gmail.com>**20091016112404
448 Ignore-this: b77275cacf730e15757946027168f63e
449]
450[Don't inline unpackFoldrCString ever
451simonpj@microsoft.com**20091029135350
452 Ignore-this: 85d672649b1b776efc7e97500b05d4f9
453]
454[Inline more default methods
455simonpj@microsoft.com**20091029135330
456 Ignore-this: 289c44b0afd6d5631c2a4e0664275ca9
457 
458 Namely Monad: (>>)
459        Eq:    (==), (/=)
460        Num:   (-), negate
461        Real:  quot, rem, div, mod, recip, (/), truncate
462        Float: (**), logBase, sqrt, tan, tanh
463]
464[Move error messages out of INLINEd default methods
465simonpj@microsoft.com**20091029135118
466 Ignore-this: 9e35dc947f94827a3529eb53a41575fd
467 
468 No need to duplicate the error generation!
469]
470[Exploit now-working default-method INLINE pragmas for Data.Bits
471simonpj@microsoft.com**20091029135041
472 Ignore-this: 8adf225f31ca7a3181ee087e9e4fe535
473 
474 * Add INLINE pragmas to default methods for class Bits
475 
476 * Remove redundant instance methods elsewhere, now that
477   the default method will do the job
478]
479[Tidy up and comment imports
480simonpj@microsoft.com**20091029134414
481 Ignore-this: bf2be31035de975d8995e988933cc940
482]
483[Inline foldr and (.) when applied to two arguments not three
484simonpj@microsoft.com**20091029134335
485 Ignore-this: fccb6f3e90e15f44cb465814be85ede2
486 
487 The new INLINE story is (by design) arity-sensitive, so we must
488 put fewer argument on the LHS for foldr and (.)
489]
490[dirUtils.c no longer available
491Malcolm.Wallace@cs.york.ac.uk**20091013093833]
492[Make hGetContents throw an exception if an error is encountered
493Simon Marlow <marlowsd@gmail.com>**20091012152955
494 Ignore-this: 9f7a7176193eab25c9daaacd9261f2de
495 
496 Strictly speaking this breaks Haskell 98 compatibility, which requires
497 hGetContents to just end the lazy stream silently if an error is
498 encountered.  However, for a few reasons we think it will make
499 everyone's life a bit easier if we make this change
500 
501  1. Errors will be a lot more common in GHC 6.12.1, in the form
502     of Unicode decoding errors.
503 
504  2. When Haskell 98 was designed, we didn't know how to throw
505     exceptions from inside lazy I/O, but now we do.
506 
507  3. If anyone is actually relying on the previous behaviour, their
508     code is arguably broken.
509]
510[Re-instate System.Console.Getopt for nhc98 builds.
511Malcolm.Wallace@cs.york.ac.uk**20091013092843
512 Although it was split out of base a while back, that change was
513 reverted for ghc soon afterwards, but nhc98 never noticed.
514]
515[Roll back "Another instance of nhc98's strange import semantics."
516Ian Lynagh <igloo@earth.li>**20091009185618
517 Fri Oct  9 14:50:51 BST 2009  Malcolm.Wallace@cs.york.ac.uk
518 GHC (correctly) warns about the unused import, which breaks the validate
519 build.
520]
521[Roll back "Cope with nhc98's (occasionally-strange) import semantics"
522Ian Lynagh <igloo@earth.li>**20091009184704
523 Fri Oct  9 14:43:51 BST 2009  Malcolm.Wallace@cs.york.ac.uk
524 GHC (correctly) warns about the unused import, which breaks the validate
525 build.
526]
527[It seems that nhc98 needs defaulting in Data.Fixed.
528Malcolm.Wallace@cs.york.ac.uk**20091009135242]
529[Another instance of nhc98's strange import semantics.
530Malcolm.Wallace@cs.york.ac.uk**20091009135051]
531[Make Data.Functor compatible with non-GHC compilers.
532Malcolm.Wallace@cs.york.ac.uk**20091009134821]
533[Cope with nhc98's (occasionally-strange) import semantics.
534Malcolm.Wallace@cs.york.ac.uk**20091009134351]
535[Fix gratuitous breakage of nhc98 in System.IO.
536Malcolm.Wallace@cs.york.ac.uk**20091009134001]
537[Fix gratuitous breakage of nhc98 in Control.Exception.Base.
538Malcolm.Wallace@cs.york.ac.uk**20091009133615]
539[Fix gratuitous breakage of non-GHC in Data.Fixed.
540Malcolm.Wallace@cs.york.ac.uk**20091009133330]
541[Fix gratuitous breakage for non-GHC in Data.Bits.
542Malcolm.Wallace@cs.york.ac.uk**20091009133257]
543[Use UTF-32LE instead of UTF32LE
544Simon Marlow <marlowsd@gmail.com>**20091006100207
545 Ignore-this: 7f881e36543d250ef848c9f60d67655a
546 The latter is not recognised by some iconv implementations.
547]
548[Strip any Byte Order Mark (BOM) from the front of decoded streams.
549Ben.Lippmeier@anu.edu.au*-20090930084229
550 Ignore-this: d0d0c3ae87b31d71ef1627c8e1786445
551 When decoding to UTF-32, Solaris iconv inserts a BOM at the front
552 of the stream, but Linux iconv doesn't.
553]
554[use UTF32BE/UTF32LE instead of UCS-4/UCS-4LE
555Simon Marlow <marlowsd@gmail.com>**20091005101554
556 Ignore-this: 2aef5e9bec421e714953b7aa1bdfc1b3
557]
558[Strip any Byte Order Mark (BOM) from the front of decoded streams.
559Ben.Lippmeier@anu.edu.au**20090930084229
560 Ignore-this: d0d0c3ae87b31d71ef1627c8e1786445
561 When decoding to UTF-32, Solaris iconv inserts a BOM at the front
562 of the stream, but Linux iconv doesn't.
563]
564[Add traceEvent :: String -> IO ()
565Simon Marlow <marlowsd@gmail.com>**20090925141257
566 Ignore-this: 8b1888bbf9682ffba13f815b6000e4b1
567 For emitting an event via the RTS tracing framework
568]
569[Fix the error message when flushing the read buffer of a non-seekable Handle
570Simon Marlow <marlowsd@gmail.com>**20090923090536
571 Ignore-this: 4342026df93759d99480f4e13f80a492
572]
573[Fix #3534: No need to flush the byte buffer when setting binary mode
574Simon Marlow <marlowsd@gmail.com>**20090923090445
575 Ignore-this: 625817ed7ae2c12291eb993a99dc640a
576]
577[Use let !y = x in .. x .. instead of seq in $! and evaluate (#2273)
578Simon Marlow <marlowsd@gmail.com>**20090916140454]
579[make some Applicative functions into methods, and split off Data.Functor (proposal #3335)
580Ross Paterson <ross@soi.city.ac.uk>**20090915173109
581 Ignore-this: a0cff4de6dfdbcbd56a66101bc4855a9
582 
583 The following functions
584 
585     (<$) :: Functor f => a -> f b -> f a
586     (*>) :: Applicative f => f a -> f b -> f b
587     (<*) :: Applicative f => f a -> f b -> f a
588     some :: Alternative f => f a -> f [a]
589     many :: Alternative f => f a -> f [a]
590 
591 are moved into the corresponding classes, with the existing implementations
592 as default definitions.  This gives people creating instances the option of
593 defining specialized implementations of these functions, though they should
594 be equivalent to the default definitions.
595 
596 Although (<$) is now a method of the Functor class, it is hidden in the
597 re-export by the Prelude, Control.Monad and Monad.  The new module
598 Data.Functor exposes the full class, plus the function (<$>).  These are
599 also re-exported by Control.Applicative.
600]
601[On Windows, use the console code page for text file encoding/decoding.
602Judah Jacobson <judah.jacobson@gmail.com>**20090913022126
603 Ignore-this: 86c2f2db8ef92b751599795d3195187b
604 
605 We keep all of the code page tables in the module
606 GHC.IO.Encoding.CodePage.Table.  That file was generated automatically
607 by running codepages/MakeTable.hs; more details are in the comments at the
608 start of that script.
609 
610 Storing the lookup tables adds about 40KB to each statically linked executable;
611 this only increases the size of a "hello world" program by about 7%.
612 
613 Currently we do not support double-byte encodings (Chinese/Japanese/Korean), since
614 including those codepages would increase the table size to 400KB.  It will be
615 straightforward to implement them once the work on library DLLs is finished.
616]
617[Fix "init" docs: the input list need not be finite. Fixes trac #3465
618Ian Lynagh <igloo@earth.li>**20090911210437]
619[Bump base version to 4.2.0.0
620Ian Lynagh <igloo@earth.li>**20090911153913]
621[Address #3310
622Simon Marlow <marlowsd@gmail.com>**20090830152850
623 Ignore-this: 40c7f7c171ee299a83092fd360a952b7
624 
625  - Rename BlockedOnDeadMVar   -> BlockedIndefinitelyOnMVar
626  - Rename BlockedIndefinitely -> BlockedIndefinitelyOnSTM
627  - instance Show BlockedIndefinitelyOnMVar is now
628      "blocked indefinitely in an MVar operation"
629  - instance Show BlockedIndefinitelyOnSTM is now
630      "blocked indefinitely in an STM transaction"
631 
632 clients using Control.OldException will be unaffected (the new
633 exceptions are mapped to the old names).  However, for base4-compat
634 we'll need to make a version of catch/try that does a similar
635 mapping.
636]
637[Fix unicode conversion for MSB architectures
638Ben.Lippmeier@anu.edu.au**20090830130028
639 This fixes the SPARC/Solaris build.
640]
641[Fix #3441: detect errors in partial sequences
642Simon Marlow <marlowsd@gmail.com>**20090830075909
643 Ignore-this: d12a75d95e0cae5eb1555266810ec281
644]
645[Fix hWaitForInput
646Simon Marlow <marlowsd@gmail.com>**20090827152116
647 Ignore-this: 2550e911f1a4d4357a5aa8d1764238ce
648 It was erroneously waiting when there were bytes to decode waiting in
649 the byte buffer.
650]
651[fix debugging code
652Simon Marlow <marlowsd@gmail.com>**20090827150628
653 Ignore-this: e1c82fdc19a22e247cd69ff6fa11921d
654]
655[Allow for configurable iconv include and library locations.
656Matthias Kilian <kili@outback.escape.de>**20090826154406
657 Ignore-this: be95fab611a5534cf184b508964ed498
658 This should help to fix the build on OpenBSD.
659]
660[typo in comment
661Simon Marlow <marlowsd@gmail.com>**20090826085252
662 Ignore-this: 1903ee0f354157a6ed3871c100f6b1b9
663]
664[un-hide some modules from the Haddock docs
665Simon Marlow <marlowsd@gmail.com>**20090825152457
666 Ignore-this: dce6606f93cf977fb24ebe99082dfa62
667]
668[Apply fix for #1548, from squadette@gmail.com
669Simon Marlow <marlowsd@gmail.com>**20090819120700
670 Ignore-this: 31c237c46a6445f588ed4b8c51bb6231
671]
672[improvements to Data.Fixed: instances for Typeable and Data, more predefined types
673Ashley Yakeley <ashley@semantic.org>**20090812055058
674 Ignore-this: feeece36d5632f02a05d137d2a39ab78
675]
676[Fix "Cabal check" warnings
677Ian Lynagh <igloo@earth.li>**20090811215856]
678[Add a GHC.Constants module; fixes trac #3094
679Ian Lynagh <igloo@earth.li>**20090809183252]
680[Apply proposal #3393
681Ian Lynagh <igloo@earth.li>**20090809134717
682 Add openTempFileWithDefaultPermissions and
683 openBinaryTempFileWithDefaultPermissions.
684]
685[Add some more C wrappers; patch from Krister Walfridsson
686Ian Lynagh <igloo@earth.li>**20090807200631
687 Fixes 21 testsuite errors on NetBSD 5.99.
688]
689[Fixing configure for autoconf 2.64
690Alexander Dunlap <alexander.dunlap@gmail.com>**20090805060748
691 Ignore-this: 992ab91ae3d68c12dbb265776e33e243
692]
693[add INLINE toList
694Ross Paterson <ross@soi.city.ac.uk>**20090806142853
695 Ignore-this: aba16aabb17d5dca44f15d188945680e
696 
697 In anticipation of the fixing of #2353.
698]
699[fix a copyright
700Simon Marlow <marlowsd@gmail.com>**20090805134045
701 Ignore-this: b0ffbdd38fbba121e8bcba37c4082a60
702]
703[Tweak the BufferedIO class to enable a memory-mapped file implementation
704Simon Marlow <marlowsd@gmail.com>**20090805134036
705 Ignore-this: ec67d7a0a6d977438deaa342503f77e0
706 We have to eliminate the assumption that an empty write buffer can be
707 constructed by setting the buffer pointers to zero: this isn't
708 necessarily the case when the buffer corresponds to a memory-mapped
709 file, or other in-memory device implementation.
710]
711[Deprecate Control.OldException
712Ian Lynagh <igloo@earth.li>**20090804143910]
713[Windows build fix, following RTS tidyup
714Simon Marlow <marlowsd@gmail.com>**20090803131121
715 Ignore-this: ce862fb91c2b234211a8757f98690778
716]
717[Updates to follow the RTS tidyup
718Simon Marlow <marlowsd@gmail.com>**20090801220743
719 Ignore-this: 6e92412df93a66c12d75344053d5634
720 C functions like isDoubleNaN moved here (primFloat.c)
721]
722[Add integer-simple as a build option
723Ian Lynagh <igloo@earth.li>**20090722013151]
724[Use shift[LR]Integer in the Bits Integer instance
725Ian Lynagh <igloo@earth.li>**20090721222440]
726[depend directly on integer-gmp, rather than indirecting through integer
727Ian Lynagh <igloo@earth.li>**20090721185228]
728[Move the instances of Functor and Monad IO to GHC.Base, to avoid orphans
729Simon Marlow <marlowsd@gmail.com>**20090722102130
730 Ignore-this: a7d85ac0025d559674249de0108dbcf4
731]
732[move "instance Exception Dynamic" so it isn't an orphan
733Simon Marlow <marlowsd@gmail.com>**20090721093854
734 Ignore-this: 5ede91ecfec2112c91b699d4de87cd02
735]
736[Improve the index checking for array accesses; fixes #2120 #2669
737Ian Lynagh <igloo@earth.li>**20090719153228
738 As well as checking that offset we are reading is actually inside the
739 array, we now also check that it is "in range" as defined by the Ix
740 instance. This fixes confusing behaviour (#2120) and improves some error
741 messages (#2669).
742]
743[Make chr say what its argument was, if it's a bad argument
744Ian Lynagh <igloo@earth.li>**20090718151049]
745[remove unused warning
746Simon Marlow <marlowsd@gmail.com>**20090715124416
747 Ignore-this: 31f613654089d0f4a44363946087b41e
748]
749[warning fix: -fno-implicit-prelude -> -XNoImplicitPrelude
750Simon Marlow <marlowsd@gmail.com>**20090715122839
751 Ignore-this: dc8957249731d5bcb71c01899e5adf2b
752]
753[Add hGetEncoding :: Handle -> IO (Maybe TextEncoding)
754Simon Marlow <marlowsd@gmail.com>**20090715122519
755 Ignore-this: 14c3eff996db062da1199739781e4708
756 as suggested during the discussion on the libraries list
757]
758[Add more documentation to mkTextEncoding
759Simon Marlow <marlowsd@gmail.com>**20090715122414
760 Ignore-this: 97253b2624267df3a246a18121e8ea81
761 noting that "//IGNORE" and "//TRANSLIT" suffixes can be used with GNU
762 iconv.
763]
764[Add the utf8_bom codec
765Simon Marlow <marlowsd@gmail.com>**20090715122257
766 Ignore-this: 1c9396cd805201fe873a39382ced79c7
767 as suggested during the discussion on the libraries list.
768]
769[Export Unicode and newline functionality from System.IO; update Haddock docs
770Simon Marlow <marlowsd@gmail.com>**20090713113104
771 Ignore-this: c3f017a555335aa55d106253393f72e2
772]
773[add a comment about the non-workingness of CHARBUF_UTF16
774Simon Marlow <marlowsd@gmail.com>**20090707124406
775 Ignore-this: 98d00411b68d688b3b4cffc9507b1f35
776]
777[Fix build on Windows
778Ian Lynagh <igloo@earth.li>**20090711004351]
779[Fix some "warn-unused-do-bind" warnings where we want to ignore the value
780Ian Lynagh <igloo@earth.li>**20090710204513]
781[Use throwErrnoIfMinus1_ when calling getrusage
782Ian Lynagh <igloo@earth.li>**20090710204221]
783[Remove an unused import
784Ian Lynagh <igloo@earth.li>**20090710153345]
785[reportStackOverflow now returns IO ()
786Ian Lynagh <igloo@earth.li>**20090710153257
787 It used to do "return undefined" to return IO a.
788]
789[GHC.Conc.reportError now returns IO ()
790Ian Lynagh <igloo@earth.li>**20090710152646
791 It used to return IO a, by "return undefined".
792]
793[Fix some "warn-unused-do-bind" warnings where we want to ignore the value
794Ian Lynagh <igloo@earth.li>**20090710152526]
795[Minor SampleVar refactoring
796Ian Lynagh <igloo@earth.li>**20090710151438]
797[Fix "warn-unused-do-bind" warnings in GHC/IO/Handle/Text.hs
798Ian Lynagh <igloo@earth.li>**20090710122905]
799[Fix some "warn-unused-do-bind" warnings where we just want to ignore the result
800Ian Lynagh <igloo@earth.li>**20090710005638]
801[Use the result of writeCharBuf in GHC/IO/Encoding/Latin1.hs too
802Ian Lynagh <igloo@earth.li>**20090710004032]
803[Minor code tidyups in GHC.Conc
804Ian Lynagh <igloo@earth.li>**20090710003801]
805[Fix "warn-unused-do-bind" warning in GHC.Conc
806Ian Lynagh <igloo@earth.li>**20090710003530
807 If we fail to communicate with the IO manager then we print a warning
808 using debugErrLn from the ghc-prim package.
809]
810[Fix "warn-unused-do-bind" warnings in System.Posix.Internals
811Ian Lynagh <igloo@earth.li>**20090709164546]
812[Fix "warn-unused-do-bind" warnings where we really do want to ignore the result
813Ian Lynagh <igloo@earth.li>**20090709163912]
814[Add back imports needed on Windows
815Ian Lynagh <igloo@earth.li>**20090707181924]
816[Remove unused imports
817Ian Lynagh <igloo@earth.li>**20090707115810]
818[Remove unused imports from base
819simonpj@microsoft.com**20090706111842
820 Ignore-this: f9b5f353e3bb820f787c56d615b28765
821 
822 These unused imports are detected by the new unused-import code
823 
824]
825[Use the result of writeCharBuf
826Simon Marlow <marlowsd@gmail.com>**20090706133303
827 Ignore-this: 52288dd559bf4c4f313df6197091d935
828   
829 This only makes a difference when CHARBUF_UTF16 is in use, which it
830 normally isn't.  I suspect CHARBUF_UTF16 doesn't currently work for
831 other reasons (CHARBUF_UTF16 was an experiment before I wrote the
832 GHC.IO.Encoding.UTF* codecs), but this patch at least makes it
833 slightly closer to working.
834]
835[Remove some cruft from Data.HashTable
836Ian Lynagh <igloo@earth.li>**20090706181630]
837[Add 'eof' to Text.ParserCombinators.ReadP
838simonpj@microsoft.com**20090706111801
839 Ignore-this: 2aea7b848e00c894761bc4011adaa95d
840 
841 Add a ReadP parser that succeeds at the end of input. Very useful!
842 
843]
844[Don't export CLDouble for GHC; fixes trac #2793
845Ian Lynagh <igloo@earth.li>**20090705155120
846 We never really supported CLDouble (it was a plain old double underneath),
847 and pretending that we do does more harm than good.
848]
849[a byte between 0x80 and 0xBF is illegal immediately (#3341)
850Simon Marlow <marlowsd@gmail.com>**20090702081415
851 Ignore-this: dc19ef59a1a21118d5a7dd38aa2f611c
852]
853[avoid a warning
854Simon Marlow <marlowsd@gmail.com>**20090630084134
855 Ignore-this: c92a45ee216faf01327feae9fe06d6e2
856]
857[Add a wrapper for libiconv.
858Matthias Kilian <kili@outback.escape.de>**20090629183634
859 Ignore-this: 23c6047c0d71b745b495cc223574a47f
860]
861[#include <sys/times.h> if we have it (should fix build problems)
862Simon Marlow <marlowsd@gmail.com>**20090629085351
863 Ignore-this: a35e93b37ca9595c73460243180f4b9d
864]
865[set binary mode for existing FDs on Windows (fixes some GHCi test failures)
866Simon Marlow <marlowsd@gmail.com>**20090626120522
867 Ignore-this: 580cf636e9c77d8427aff6861d089481
868]
869[Move directory-related stuff to the unix package
870Simon Marlow <marlowsd@gmail.com>**20090625120325
871 Ignore-this: b997b3cbce0a46ca87ad825bbdc0a411
872 now that it isn't used on Windows any more.
873]
874[TAG 2009-06-25
875Ian Lynagh <igloo@earth.li>**20090625160056]
876Patch bundle hash:
877b83ccbf707fb3fb184ed979374d7352a278c7a87
878-----BEGIN PGP SIGNATURE-----
879Version: GnuPG v1.4.10 (Darwin)
880
881iD8DBQFL82e2FOecpxqG73IRAjStAKCKAQKIiNm9kaaocfo28QI/bew5vACeNqB9
882hk6HkBi+PytP5+UPPRnoSIE=
883=cvzI
884-----END PGP SIGNATURE-----