Ticket #1568: mv_signals_process.patch

File mv_signals_process.patch, 64.0 KB (added by igloo, 8 years ago)
Line 
1
2New patches:
3
4[Move some internals to unix
5Ian Lynagh <[email protected]>**20070729215907
6 This makes the deps work out for the System.Posix.Signals move.
7] {
8hunk ./System/Process/Internals.hs 44
9+import System.Posix.Process.Internals ( pPrPr_disableITimers, c_execvpe )
10hunk ./System/Process/Internals.hs 151
11-#if !defined(mingw32_HOST_OS) && !defined(__MINGW32__)
12-
13--- this function disables the itimer, which would otherwise cause confusing
14--- signals to be sent to the new process.
15-foreign import ccall unsafe "pPrPr_disableITimers"
16-  pPrPr_disableITimers :: IO ()
17-
18-foreign import ccall unsafe "execvpe"
19-  c_execvpe :: CString -> Ptr CString -> Ptr CString -> IO CInt
20-
21-#endif
22-
23hunk ./cbits/execvpe.c 1
24-/* -----------------------------------------------------------------------------
25-   (c) The University of Glasgow 1995-2004
26-
27-   Our low-level exec() variant.
28-   -------------------------------------------------------------------------- */
29-#include "execvpe.h"
30-
31-#if !(defined(_MSC_VER) || defined(__MINGW32__) || defined(_WIN32)) /* to the end */
32-
33-/* Evidently non-Posix. */
34-/* #include "PosixSource.h" */
35-
36-#include <unistd.h>
37-#include <sys/time.h>
38-#include <stdlib.h>
39-#include <string.h>
40-#include <errno.h>
41-
42-/*
43- * We want the search semantics of execvp, but we want to provide our
44- * own environment, like execve.  The following copyright applies to
45- * this code, as it is a derivative of execvp:
46- *-
47- * Copyright (c) 1991 The Regents of the University of California.
48- * All rights reserved.
49- *
50- * Redistribution and use in source and binary forms, with or without
51- * modification, are permitted provided that the following conditions
52- * are met:
53- * 1. Redistributions of source code must retain the above copyright
54- *    notice, this list of conditions and the following disclaimer.
55- * 2. Redistributions in binary form must reproduce the above copyright
56- *    notice, this list of conditions and the following disclaimer in the
57- *    documentation and/or other materials provided with the distribution.
58- * 3. All advertising materials mentioning features or use of this software
59- *    must display the following acknowledgement:
60- *     This product includes software developed by the University of
61- *     California, Berkeley and its contributors.
62- * 4. Neither the name of the University nor the names of its contributors
63- *    may be used to endorse or promote products derived from this software
64- *    without specific prior written permission.
65- *
66- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
67- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
68- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
69- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
70- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
71- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
72- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
73- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
74- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
75- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
76- * SUCH DAMAGE.
77- */
78-
79-int
80-execvpe(char *name, char *const argv[], char **envp)
81-{
82-    register int lp, ln;
83-    register char *p;
84-    int eacces=0, etxtbsy=0;
85-    char *bp, *cur, *path, *buf = 0;
86-
87-    /* If it's an absolute or relative path name, it's easy. */
88-    if (strchr(name, '/')) {
89-       bp = (char *) name;
90-       cur = path = buf = NULL;
91-       goto retry;
92-    }
93-
94-    /* Get the path we're searching. */
95-    if (!(path = getenv("PATH"))) {
96-#ifdef HAVE_CONFSTR
97-        ln = confstr(_CS_PATH, NULL, 0);
98-        if ((cur = path = malloc(ln + 1)) != NULL) {
99-           path[0] = ':';
100-           (void) confstr (_CS_PATH, path + 1, ln);
101-       }
102-#else
103-        if ((cur = path = malloc(1 + 1)) != NULL) {
104-           path[0] = ':';
105-           path[1] = '\0';
106-       }
107-#endif
108-    } else
109-       cur = path = strdup(path);
110-
111-    if (path == NULL || (bp = buf = malloc(strlen(path)+strlen(name)+2)) == NULL)
112-       goto done;
113-
114-    while (cur != NULL) {
115-       p = cur;
116-        if ((cur = strchr(cur, ':')) != NULL)
117-           *cur++ = '\0';
118-
119-       /*
120-        * It's a SHELL path -- double, leading and trailing colons mean the current
121-        * directory.
122-        */
123-       if (!*p) {
124-           p = ".";
125-           lp = 1;
126-       } else
127-           lp = strlen(p);
128-       ln = strlen(name);
129-
130-       memcpy(buf, p, lp);
131-       buf[lp] = '/';
132-       memcpy(buf + lp + 1, name, ln);
133-       buf[lp + ln + 1] = '\0';
134-
135-      retry:
136-        (void) execve(bp, argv, envp);
137-       switch (errno) {
138-       case EACCES:
139-           eacces = 1;
140-           break;
141-       case ENOENT:
142-           break;
143-       case ENOEXEC:
144-           {
145-               register size_t cnt;
146-               register char **ap;
147-
148-               for (cnt = 0, ap = (char **) argv; *ap; ++ap, ++cnt)
149-                   ;
150-               if ((ap = malloc((cnt + 2) * sizeof(char *))) != NULL) {
151-                   memcpy(ap + 2, argv + 1, cnt * sizeof(char *));
152-
153-                   ap[0] = "sh";
154-                   ap[1] = bp;
155-                   (void) execve("/bin/sh", ap, envp);
156-                   free(ap);
157-               }
158-               goto done;
159-           }
160-       case ETXTBSY:
161-           if (etxtbsy < 3)
162-               (void) sleep(++etxtbsy);
163-           goto retry;
164-       default:
165-           goto done;
166-       }
167-    }
168-    if (eacces)
169-       errno = EACCES;
170-    else if (!errno)
171-       errno = ENOENT;
172-  done:
173-    if (path)
174-       free(path);
175-    if (buf)
176-       free(buf);
177-    return (-1);
178-}
179-
180-
181-/* Copied verbatim from ghc/lib/std/cbits/system.c. */
182-void pPrPr_disableITimers (void)
183-{
184-#  ifdef HAVE_SETITIMER
185-   /* Reset the itimers in the child, so it doesn't get plagued
186-    * by SIGVTALRM interrupts.
187-    */
188-   struct timeval tv_null = { 0, 0 };
189-   struct itimerval itv;
190-   itv.it_interval = tv_null;
191-   itv.it_value = tv_null;
192-   setitimer(ITIMER_REAL, &itv, NULL);
193-   setitimer(ITIMER_VIRTUAL, &itv, NULL);
194-   setitimer(ITIMER_PROF, &itv, NULL);
195-#  endif
196-}
197-
198-#endif
199rmfile ./cbits/execvpe.c
200hunk ./include/execvpe.h 1
201-/* ----------------------------------------------------------------------------
202-   (c) The University of Glasgow 2004
203-
204-   Interface for code in execvpe.c
205-   ------------------------------------------------------------------------- */
206-
207-#include "HsProcessConfig.h"
208-// Otherwise these clash with similar definitions from other packages:
209-#undef PACKAGE_BUGREPORT
210-#undef PACKAGE_NAME
211-#undef PACKAGE_STRING
212-#undef PACKAGE_TARNAME
213-#undef PACKAGE_VERSION
214-
215-#include <errno.h>
216-#include <sys/types.h>
217-#if HAVE_SYS_WAIT_H
218-#include <sys/wait.h>
219-#endif
220-
221-#if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(_WIN32)
222-extern int execvpe(char *name, char *const argv[], char **envp);
223-extern void pPrPr_disableITimers (void);
224-#endif
225-
226rmfile ./include/execvpe.h
227hunk ./process.cabal 9
228-exposed-modules:
229-       System.Cmd
230-       System.Process
231-       System.Process.Internals
232-c-sources:
233-       cbits/execvpe.c
234-       cbits/runProcess.c
235-include-dirs: include
236-includes:
237-    execvpe.h
238-    runProcess.h
239-install-includes:
240-    execvpe.h
241-    runProcess.h
242-    HsProcessConfig.h
243-extensions:    CPP
244-build-depends: base, directory, filepath
245+
246+Library {
247+    exposed-modules:
248+       System.Cmd
249+       System.Process
250+       System.Process.Internals
251+    c-sources:
252+       cbits/runProcess.c
253+    include-dirs: include
254+    includes:
255+        runProcess.h
256+    install-includes:
257+        runProcess.h
258+        HsProcessConfig.h
259+    extensions:        CPP
260+    build-depends: base, directory, filepath
261+    if !os(windows) {
262+        build-depends: unix
263+    }
264+}
265}
266
267Context:
268
269[Typo
270Ian Lynagh <[email protected]>**20070724135656]
271[Follow openFd -> fdToHandle' rename
272Ian Lynagh <[email protected]>**20070722000256]
273[Use filepath rather than System.Directory.Internals
274Ian Lynagh <[email protected]>**20070702095408]
275[more ugly #undefery to avoid PACKAGE_FOO clashes
276Simon Marlow <[email protected]>**20070608105248]
277[#undef PACKAGE_NAME and friends to avoid clashes
278Simon Marlow <[email protected]>**20070606142257]
279[add missing install-include: HsProcessConfig.h
280Simon Marlow <[email protected]>**20070606142250
281 
282]
283[--configure-option and --ghc-option are now provided by Cabal
284Ross Paterson <[email protected]>**20070604115326]
285[DIRS now lives in package Makefile, not script/pkgdirlist
286[email protected]**20070525111736]
287[Exclude non-portable modules from the nhc98 build.
288[email protected]**20070525110606
289 Building with a Makefile instead of .cabal means we can exclude some
290 modules.  System.Process and System.Process.Internals are non-portable.
291]
292[small fixes required by the split
293Ross Paterson <[email protected]>**20070525002748]
294[TAG process 2007-05-24
295Ian Lynagh <[email protected]>**20070524115527]
296[Only build System.Process when building with GHC
297Ian Lynagh <[email protected]>**20070524125030]
298[Remove non-process bits (of base) and rename package to "process"
299Ian Lynagh <[email protected]>**20070524102918]
300[System.Locale is now split out
301Ian Lynagh <[email protected]>**20070519132638]
302[Split off directory, random and old-time packages
303Ian Lynagh <[email protected]>**20070519120642]
304[Remove Control.Parallel*, now in package parallel
305Ian Lynagh <[email protected]>**20070518165431]
306[Remove the pretty-printing modules (now in package pretty(
307Ian Lynagh <[email protected]>**20070518162521]
308[add install-includes: field
309Simon Marlow <[email protected]>**20070517094948]
310[correct the documentation for newForeignPtr
311Simon Marlow <[email protected]>**20070516082019]
312[When doing safe writes, handle EAGAIN rather than raising an exception
313Simon Marlow <[email protected]>**20070515114615
314 It might be that stdin was set to O_NONBLOCK by someone else, and we
315 should handle this case.  (this happens with GHCi, I'm not quite sure why)
316]
317[Use FilePath to make paths when building GHC/Prim.hs and GHC/PrimopWrappers.hs
318Ian Lynagh <[email protected]>**20070514110409]
319[fix imports for non-GHC
320Ross Paterson <[email protected]>**20070513001138]
321[Give an example of how intersection takes elements from the first set
322Ian Lynagh <[email protected]>**20070512160253]
323[further clarify the docs for 'evaluate'
324[email protected]**20070508101124]
325[improve documentation for evaluate
326Simon Marlow <[email protected]>**20070508081712]
327[FIX: #724 (tee complains if used in a process started by ghc)
328Simon Marlow <[email protected]>**20070507123537
329 
330 Now, we only set O_NONBLOCK on file descriptors that we create
331 ourselves.  File descriptors that we inherit (stdin, stdout, stderr)
332 are kept in blocking mode.  The way we deal with this differs between
333 the threaded and non-threaded runtimes:
334 
335  - with -threaded, we just make a safe foreign call to read(), which
336    may block, but this is ok.
337 
338  - without -threaded, we test the descriptor with select() before
339    attempting any I/O.  This isn't completely safe - someone else
340    might read the data between the select() and the read() - but it's
341    a reasonable compromise and doesn't seem to measurably affect
342    performance.
343]
344[the "unknown" types are no longer required
345Simon Marlow <[email protected]>**20070426135931]
346[Build GHC/Prim.hs and GHC/PrimopWrappers.hs from Cabal
347Ian Lynagh <[email protected]>**20070509142655]
348[Make Control.Exception buildable by nhc98.
349[email protected]**20070504105548
350 The nhc98 does not have true exceptions, but these additions should be
351 enough infrastructure to pretend that it does.  Only IO exceptions will
352 actually work.
353]
354[Trim imports, remove a cycle
355simonpj@microsoft**20070503123010
356 
357 A first attempt at removing gratuitous cycles in the base package.
358 I've removed the useless module GHC.Dynamic, which gets rid of a cycle;
359 and trimmed off various unnecesary imports.
360 
361 This also fixes the IsString import problem.
362 
363]
364[Be less quiet about building the base package
365simonpj@microsoft**20070503093707]
366[Remove Splittable class (a vestige of linear implicit parameters)
367simonpj@microsoft**20070221104329]
368[Add IsString to exports of GHC.Exts
369simonpj@microsoft**20070221104249]
370[tweak documentation as per suggestion from Marc Weber on [email protected]
371Simon Marlow <[email protected]>**20070426075921]
372[Add extra libraries when compiling with GHC on Windows
373Ian Lynagh <[email protected]>**20070424213127]
374[Follow Cabal changes in Setup.hs
375Ian Lynagh <[email protected]>**20070418114345]
376[inclusion of libc.h is conditional on __APPLE__
377[email protected]**20070417085556]
378[MERGE: fix ugly uses of memcpy foreign import inside ST
379Simon Marlow <[email protected]>**20070416101530
380 fixes cg026
381]
382[Fix configure with no --with-cc
383Ian Lynagh <[email protected]>**20070415165143]
384[MacOS 10.3 needs #include <libc.h> as well
385[email protected]**20070414155507]
386[For nhc98 only, use hsc2hs to determine System.Posix.Types.
387[email protected]**20070413155831
388 Avoids the existing autoconf stuff, by introducing an auxiliary module
389 called NHC.PosixTypes that uses hsc2hs, which is then simply re-exported
390 from System.Posix.Types.
391]
392[we need a makefileHook too
393Simon Marlow <[email protected]>**20070413151307]
394[Remove unnecesary SOURCE import of GHC.Err in GHC.Pack
395Ian Lynagh <[email protected]>**20070412235908]
396[add System.Posix.Types to default nhc98 build
397[email protected]**20070412195026]
398[mark System.IO.openTempFile as non-portable in haddocks
399[email protected]**20070412135359]
400[Don't turn on -Werror in Data.Fixed
401Ian Lynagh <[email protected]>**20070411155721
402 This may be responsible for the x86_64/Linux nightly build failing.
403]
404[Fix -Wall warnings
405Ian Lynagh <[email protected]>**20070411004929]
406[Add missing case in removePrefix
407Ian Lynagh <[email protected]>**20070411002537]
408[Allow additional options to pass on to ./configure to be given
409Ian Lynagh <[email protected]>**20070406151856]
410[Hugs only: fix location of unsafeCoerce
411Ross Paterson <[email protected]>**20070406113731]
412[fix isPortableBuild test
413Ross Paterson <[email protected]>**20070406111304]
414[Unsafe.Coerce doesn't need Prelude
415Ian Lynagh <[email protected]>**20070405175930]
416[make Setup and base.cabal suitable for building the libraries with GHC
417Ian Lynagh <[email protected]>**20070308163824]
418[HsByteArray doesn't exist
419Ian Lynagh <[email protected]>**20070404163051]
420[Don't use Fd/FD in foreign decls
421Ian Lynagh <[email protected]>**20070404155822
422 Using CInt makes it much easier to verify that it is right, and we won't
423 get caught out by possible newtype switches between CInt/Int.
424]
425[HsByteArray doesn't exist
426Ian Lynagh <[email protected]>**20070404155732]
427[Fix braino
428Ian Lynagh <[email protected]>**20070404144508]
429[Fix incorrect changes to C types in a foreign import for nhc98.
430[email protected]**20070404120954
431 If we use type CTime, it needs to be imported.  Also, CTime is not an
432 instance of Integral, so use some other mechanism to convert it.
433]
434[Fix C/Haskell type mismatches
435Ian Lynagh <[email protected]>**20070403194943]
436[add new module Unsafe.Coerce to build system
437[email protected]**20070403131333]
438[Fix type mismatches between foreign imports and HsBase.h
439Ian Lynagh <[email protected]>**20070403001611
440 
441 Merge to stable, checking for interface changes.
442]
443[put 'unsafeCoerce' in a standard location
444[email protected]**20061113114103]
445[fix for nhc98 build
446[email protected]**20070402141712]
447[Function crossMapP for fixing desugaring of comprehensions
448Manuel M T Chakravarty <[email protected]>**20070402082906
449 
450 Merge into 6.6 branch.
451]
452[Add min/max handling operations for IntSet/IntMap
453[email protected]**20070315072352]
454[Monoid instance for Maybe and two wrappers: First and Last. trac proposal #1189
455Jeffrey Yasskin <[email protected]>**20070309062550]
456[Fix the type of wgencat
457Ian Lynagh <[email protected]>**20070329164223]
458[fix strictness of foldr/build rule for take, see #1219
459Simon Marlow <[email protected]>**20070327103941]
460[remove Makefile.inc (only affects nhc98)
461[email protected]**20070320120057]
462[copyBytes copies bytes, not elements; fixes trac #1203
463Ian Lynagh <[email protected]>**20070312113555]
464[Add ioeGetLocation, ioeSetLocation to System/IO/Error.hs; trac #1191
465Ian Lynagh <[email protected]>**20070304130315]
466[fix race condition in prodServiceThread
467Simon Marlow <[email protected]>**20070307134330
468 See #1187
469]
470[Prevent duplication of unsafePerformIO on a multiprocessor
471Simon Marlow <[email protected]>**20070306145424
472 Fixes #986.  The idea is to add a new operation
473 
474   noDuplicate :: IO ()
475 
476 it is guaranteed that if two threads have executed noDuplicate, then
477 they are not duplicating any computation.
478 
479 We now provide two new unsafe operations:
480 
481 unsafeDupablePerformIO    :: IO a -> a
482 unsafeDupableInterleaveIO :: IO a -> IO a
483 
484 which are equivalent to the old unsafePerformIO and unsafeInterleaveIO
485 respectively.  The new versions of these functions are defined as:
486 
487 unsafePerformIO    m = unsafeDupablePerformIO (noDuplicate >> m)
488 unsafeInterleaveIO m = unsafeDupableInterleaveIO (noDuplicate >> m)
489]
490[expand docs for forkOS
491Simon Marlow <[email protected]>**20070305160921]
492[document timeout limitations
493Peter Simons <[email protected]>**20070228223540]
494[So many people were involved in the writing of this module that
495Peter Simons <[email protected]>**20070228223415
496 it feels unfair to single anyone out as the lone copyright
497 holder.
498]
499[This patch adds a timeout function to the base libraries. Trac #980 is
500Peter Simons <[email protected]>**20070126222615
501 concerned with this issue. The design guideline for this implementation
502 is that 'timeout N E' should behave exactly the same as E as long as E
503 doesn't time out. In our implementation, this means that E has the same
504 myThreadId it would have without the timeout wrapper. Any exception E
505 might throw cancels the timeout and propagates further up. It also
506 possible for E to receive exceptions thrown to it by another thread.
507]
508[PArr: fixed permutations
509Manuel M T Chakravarty <[email protected]>**20070305055807]
510[Add Data.String, containing IsString(fromString); trac proposal #1126
511Ian Lynagh <[email protected]>**20070130134841
512 This is used by the overloaded strings extension (-foverloaded-strings in GHC).
513]
514[GHC.PArr: add bounds checking
515Manuel M T Chakravarty <[email protected]>**20070302053224]
516[Bump nhc98 stack size for System/Time.hsc
517[email protected]**20070301153009]
518[FDs are CInts now, fixing non-GHC builds
519[email protected]**20070225105620]
520[Fixed PArr.dropP
521Manuel M T Chakravarty <[email protected]>**20070222032405
522 - Thanks to Audrey Tang for the bug report
523]
524[Keep the same FD in both halves of a duplex handle when dup'ing
525Ian Lynagh <[email protected]>**20070220141039
526 Otherwise we only close one of the FDs when closing the handle.
527 Fixes trac #1149.
528]
529[Remove more redundant FD conversions
530Ian Lynagh <[email protected]>**20070220092520]
531[Fix FD changes on Windows
532Ian Lynagh <[email protected]>**20070220091516]
533[Consistently use CInt rather than Int for FDs
534Ian Lynagh <[email protected]>**20070219233854]
535[Fix the types of minView/maxView (ticket #1134)
536[email protected]**20070210065115]
537[fix for hashString, from Jan-Willem Maessen (see #1137)
538Simon Marlow <[email protected]>**20070215094304
539 
540]
541[fix to getUSecOfDay(): arithmetic was overflowing
542Simon Marlow <[email protected]>**20070214161719]
543[The Windows counterpart to 'wrapround of thread delays'
544Ian Lynagh <[email protected]>**20070209173510]
545[wrapround of thread delays
546Neil Davies <[email protected]>**20070129160519
547 
548   * made the wrapround of the underlying O/S occur before the wrapround
549     of the delayed threads by making threads delay in microseconds since
550     O/S epoch (1970 - Unix, 1601 - Windows) stored in Word64.
551   * removed redundant calls reading O/S realtime clock
552   * removed rounding to 1/50th of sec for timers
553   * Only for Unix version of scheduler.
554]
555[Whitespace changes only
556Ian Lynagh <[email protected]>**20070206232722]
557[Add some type sigs
558Ian Lynagh <[email protected]>**20070206232439]
559[Use static inline rather than extern inline/inline
560Ian Lynagh <[email protected]>**20070205203628
561 I understand this is more portable, and it also fixes warnings when
562 C things we are wrapping are themselves static inlines (which FD_ISSET
563 is on ppc OS X).
564]
565[add derived instances for Dual monoid
566Ross Paterson <[email protected]>**20070202190847]
567[add doc pointers to Foldable
568Ross Paterson <[email protected]>**20070202110931
569 
570 Could be applied to STABLE.
571]
572[Eliminate some warnings
573Ian Lynagh <[email protected]>**20060729220854
574 Eliminate warnings in the libraries caused by mixing pattern matching
575 with numeric literal matching.
576]
577[Remove IsString(fromString) from the Prelude
578Ian Lynagh <[email protected]>**20070130124136]
579[Add Kleisli composition
580Don Stewart <[email protected]>**20061113015442]
581[IsString is GHC-only (so why is it in the Prelude?)
582Ross Paterson <[email protected]>**20070123183007]
583[Applicative and Monad instances for Tree
584Ross Paterson <[email protected]>**20070115174510]
585[Add IsString class for overloaded string literals.
586lennart@augustsson.net**20061221210532]
587[Added examples, more detailed documentation to Data.List Extracting sublists functions
588Andriy Palamarchuk <apa3a@yahoo.com>**20061204164710]
589[fix threadDelay
590Simon Marlow <simonmar@microsoft.com>**20070117091702
591 In "Add support for the IO manager thread" I accidentally spammed part
592 of "Make sure the threaded threadDelay sleeps at least as long as it
593 is asked", which is why the ThreadDelay001 test has been failing.
594]
595[update section on "blocking"
596Simon Marlow <simonmar@microsoft.com>**20070116124328]
597[Fix crash with   (minBound :: Int*) `div (-1)   as result is maxBound + 1.
598Ian Lynagh <igloo@earth.li>**20070115142005]
599[version of example using Tomasz Zielonka's technique
600Ross Paterson <ross@soi.city.ac.uk>**20070105175907]
601[Added Unknowns for higher kinds
602Pepe Iborra <mnislaih@gmail.com>**20061108155938]
603[Improved the Show instance for Unknown
604Pepe Iborra <mnislaih@gmail.com>**20060813111816]
605[Show instance for GHC.Base.Unknown
606mnislaih@gmail.com**20060801233530]
607[Introduce Unknowns for the closure viewer. Add breakpointCond which was missing
608mnislaih@gmail.com**20060725174537]
609[Fix missing comma in Fractional documentation
610Alec Berryman <alec@thened.net>**20061201173237]
611[Mention that throwTo does not guarantee promptness of delivery
612simonpj@microsoft**20061211123215]
613[Add note about synhronous delivery of throwTo
614simonpj@microsoft**20061211122257]
615[documentation for installHandler
616Simon Marlow <simonmar@microsoft.com>**20061205154927
617 merge to 6.6
618]
619[dos2unix
620Simon Marlow <simonmar@microsoft.com>**20061204095439]
621[don't try to compile this on Unix
622Simon Marlow <simonmar@microsoft.com>**20061204095427]
623[TAG 6.6 release
624Ian Lynagh <igloo@earth.li>**20061011124740]
625[TAG Version 2.1
626Ian Lynagh <igloo@earth.li>**20061009114014]
627[Bump version number
628Ian Lynagh <igloo@earth.li>**20061009114009]
629[Add support for the IO manager thread on Windows
630Simon Marlow <simonmar@microsoft.com>**20061201152042
631 Fixes #637.  The test program in that report now works for me with
632 -threaded, but it doesn't work without -threaded (I don't know if
633 that's new behaviour or not, though).
634]
635[deriving (Eq, Ord, Enum, Show, Read, Typeab) for ConsoleEvent
636Simon Marlow <simonmar@microsoft.com>**20061201144032]
637[Make sure the threaded threadDelay sleeps at least as long as it is asked to
638Ian Lynagh <igloo@earth.li>**20061128204807]
639[Add comments about argument order to the definitions of gmapQ and constrFields
640simonpj@microsoft**20061124164505]
641[Hugs: add Control.Parallel.Strategies
642Ross Paterson <ross@soi.city.ac.uk>**20061124161039]
643[Move instance of Show Ptr to Ptr.hs (fewer orphans)
644simonpj@microsoft.com**20061124100639]
645[Add type signatures
646simonpj@microsoft.com**20061124100621]
647[Add an example of the use of unfoldr, following doc feedback from dozer
648Don Stewart <dons@cse.unsw.edu.au>**20061124011249]
649[trim imports
650Ross Paterson <ross@soi.city.ac.uk>**20061123190352]
651[Data.Graph is now portable (enable for nhc98)
652Malcolm.Wallace@cs.york.ac.uk**20061123174913]
653[remove Data.FunctorM and Data.Queue
654Ross Paterson <ross@soi.city.ac.uk>**20061112001046
655 
656 These were deprecated in 6.6, and can thus be removed in 6.8.
657]
658[make Data.Graph portable (no change to the interface)
659Ross Paterson <ross@soi.city.ac.uk>**20061122010040
660 
661 The algorithm now uses STArrays on GHC and IntSets elsewhere.
662 (Hugs has STArrays, but avoiding them saves a -98, and boxed arrays
663 aren't fast under Hugs anyway.)
664]
665[One less unsafeCoerce# in the tree
666Don Stewart <dons@cse.unsw.edu.au>**20061120120242]
667[typo in comment
668Ross Paterson <ross@soi.city.ac.uk>**20061120115106]
669[fix shift docs to match ffi spec
670Ross Paterson <ross@soi.city.ac.uk>**20061117003144]
671[(nhc98) use new primitive implementations of h{Put,Get}Buf.
672Malcolm.Wallace@cs.york.ac.uk**20061116173104]
673[The wrong 'cycle' was exported from Data.ByteString.Lazy.Char8, spotted by sjanssen
674Don Stewart <dons@cse.unsw.edu.au>**20061110021311]
675[LPS chunk sizes should be 16 bytes, not 17.
676Don Stewart <dons@cse.unsw.edu.au>**20061110021254]
677[Update comments on Prelude organisation in GHC/Base.lhs
678Ian Lynagh <igloo@earth.li>**20061115001926]
679[Control.Parallel.Strategies clean-up: Added export list to avoid exporting seq, fixed import list strangeness that haddock choked on, and moved the deprecated functions to a separate section.
680bringert@cs.chalmers.se**20061113224202]
681[Control.Parallel.Strategies: added NFData instances for Data.Int.*, Data.Word.*, Maybe, Either, Map, Set, Tree, IntMap, IntSet.
682bringert@cs.chalmers.se**20061113221843]
683[Control.Parallel.Strategies: deprecate sPar, sSeq, Assoc, fstPairFstList, force and sforce.
684bringert@cs.chalmers.se**20061113215219
685 Code comments indicated that sPar and sSeq have been superceded by sparking and demanding, and that Assoc, fstPairFstList, force and sforce are examples and hacks needed by the Lolita system.
686]
687[add Control.Monad.Instances to nhc98 build
688Malcolm.Wallace@cs.york.ac.uk**20061113113221]
689[Control.Parallel.Strategies: clarified documentation of parListChunk.
690bringert@cs.chalmers.se**20061112232904]
691[Added and cleaned up Haddock comments in Control.Parallel.Strategies.
692bringert@cs.chalmers.se**20061112220445
693 Many of the definitions in Control.Parallel.Strategies had missing or unclear Haddock comments. I converted most of the existing plain code comments to haddock comments, added some missing documentation and cleaned up the existing Haddock mark-up.
694]
695[Fix broken pragmas; spotted by Bulat Ziganshin
696Ian Lynagh <igloo@earth.li>**20061111205916]
697[add doc link to bound threads section
698Ross Paterson <ross@soi.city.ac.uk>**20060929103252]
699[hide Data.Array.IO.Internals
700Ross Paterson <ross@soi.city.ac.uk>**20061111113248
701 
702 It's hidden from haddock, and everything it exports is re-exported by
703 Data.Array.IO.
704]
705[add Data.Function
706Malcolm.Wallace@cs.york.ac.uk**20061110142710]
707[add Data.Function
708Ross Paterson <ross@soi.city.ac.uk>**20061110141354]
709[whitespace only
710Ross Paterson <ross@soi.city.ac.uk>**20061110141326]
711[move fix to Data.Function
712Ross Paterson <ross@soi.city.ac.uk>**20061110141120]
713[import Prelude
714Ross Paterson <ross@soi.city.ac.uk>**20061110140445]
715[Added Data.Function (Trac ticket #979).
716Nils Anders Danielsson <nad@cs.chalmers.se>**20061110122503
717 + A module with simple combinators working solely on and with
718   functions.
719 + The only new function is "on".
720 + Some functions from the Prelude are re-exported.
721]
722[__hscore_long_path_size is not portable beyond GHC
723Malcolm.Wallace@cs.york.ac.uk**20061110113222]
724[redefine writeFile and appendFile using withFile
725Ross Paterson <ross@soi.city.ac.uk>**20061107140359]
726[add withFile and withBinaryFile (#966)
727Ross Paterson <ross@soi.city.ac.uk>**20061107134510]
728[remove conflicting import for nhc98
729Malcolm.Wallace@cs.york.ac.uk**20061108111215]
730[Add intercalate to Data.List (ticket #971)
731Josef Svenningsson <josef.svenningsson@gmail.com>**20061102122052]
732[non-GHC: fix canonicalizeFilePath
733Ross Paterson <ross@soi.city.ac.uk>**20061107133902
734 
735 I've also removed the #ifdef __GLASGOW_HASKELL__ from the proper
736 Windows versions of a few functions.  These will need testing with
737 Hugs on Windows.
738]
739[enable canonicalizePath for non-GHC platforms
740Simon Marlow <simonmar@microsoft.com>**20061107121141]
741[Update documentation for hWaitForInput
742Simon Marlow <simonmar@microsoft.com>**20061107111430
743 See #972
744 Merge to 6.6 branch.
745]
746[Use unchecked shifts to implement Data.Bits.rotate
747Samuel Bronson <naesten@gmail.com>**20061012125553
748 This should get rid of those cases, maybe lower the size enough that the inliner will like it?
749]
750[fix Haddock module headers
751Ross Paterson <ross@soi.city.ac.uk>**20061106124140]
752[fix example in docs
753Ross Paterson <ross@soi.city.ac.uk>**20061106115628]
754[Add intercalate and split to Data.List
755Josef Svenningsson <josef.svenningsson@gmail.com>*-20061024172357]
756[Data.Generics.Basics is GHC-only
757Ross Paterson <ross@soi.city.ac.uk>**20061102111736]
758[#ifdef around non-portable Data.Generics.Basics
759Malcolm.Wallace@cs.york.ac.uk**20061102103445]
760[Add deriving Data to Complex
761simonpj@microsoft**20061101102059]
762[minor clarification of RandomGen doc
763Ross Paterson <ross@soi.city.ac.uk>**20061030230842]
764[rearrange docs a bit
765Ross Paterson <ross@soi.city.ac.uk>**20061030161223]
766[Add intercalate and split to Data.List
767Josef Svenningsson <josef.svenningsson@gmail.com>**20061024172357]
768[Export pseq from Control.Parallel, and use it in Control.Parallel.Strategies
769Simon Marlow <simonmar@microsoft.com>**20061027150141]
770[`par` should be infixr 0
771Simon Marlow <simonmar@microsoft.com>**20061027130800
772 Alas, I didn't spot this due to lack of testing, and the symptom is
773 that an expression like x `par` y `seq z will have exactly the wrong
774 parallelism properties.  The workaround is to add parantheses.
775 
776 I think we could push this to the 6.6 branch.
777]
778[fix example in comment
779Ross Paterson <ross@soi.city.ac.uk>**20061023163925]
780[Use the new Any type for dynamics (GHC only)
781simonpj@microsoft**20061019160408]
782[add Data.Sequence to nhc98 build
783Malcolm.Wallace@cs.york.ac.uk**20061012135200]
784[Remove Data.FiniteMap, add Control.Applicative, Data.Traversable, and
785Malcolm.Wallace@cs.york.ac.uk**20061012095605
786 Data.Foldable to the nhc98 build.
787]
788[STM invariants
789tharris@microsoft.com**20061007123253]
790[Inline shift in GHC's Bits instances for {Int,Word}{,8,16,32,64}
791Samuel Bronson <naesten@gmail.com>**20061009020906]
792[Don't create GHC.Prim when bootstrapping; we can't, and we don't need it
793Ian Lynagh <igloo@earth.li>**20061004165355]
794[Data.ByteString: fix lazyness of take, drop & splitAt
795Don Stewart <dons@cse.unsw.edu.au>**20061005011703
796 
797 ByteString.Lazy's take, drop and splitAt were too strict when demanding
798 a byte string. Spotted by Einar Karttunen. Thanks to him and to Bertram
799 Felgenhauer for explaining the problem and the fix.
800 
801]
802[Fix syntax error that prevents building Haddock documentation on Windows
803brianlsmith@gmail.com**20060917013530]
804[Hugs only: unbreak typeRepKey
805Ross Paterson <ross@soi.city.ac.uk>**20060929102743]
806[make hGetBufNonBlocking do something on Windows w/ -threaded
807Simon Marlow <simonmar@microsoft.com>**20060927145811
808 hGetBufNonBlocking will behave the same as hGetBuf on Windows now, which
809 is better than just crashing (which it did previously).
810]
811[add typeRepKey :: TypeRep -> IO Int
812Simon Marlow <simonmar@microsoft.com>**20060927100342
813 See feature request #880
814]
815[fix header comment
816Ross Paterson <ross@soi.city.ac.uk>**20060926135843]
817[Add strict versions of insertWith and insertWithKey (Data.Map)
818jeanphilippe.bernardy@gmail.com**20060910162443]
819[doc tweaks, including more precise equations for evaluate
820Ross Paterson <ross@soi.city.ac.uk>**20060910115259]
821[Sync Data.ByteString with stable branch
822Don Stewart <dons@cse.unsw.edu.au>**20060909050111
823 
824 This patch:
825     * hides the LPS constructor (its in .Base if you need it)
826     * adds functions to convert between strict and lazy bytestrings
827     * and adds readInteger
828 
829]
830[Typeable1 instances for STM and TVar
831Ross Paterson <ross@soi.city.ac.uk>**20060904231425]
832[remove obsolete Hugs stuff
833Ross Paterson <ross@soi.city.ac.uk>**20060904223944]
834[Cleaner isInfixOf suggestion from Ross Paterson
835John Goerzen <jgoerzen@complete.org>**20060901143654]
836[New function isInfixOf that searches a list for a given sublist
837John Goerzen <jgoerzen@complete.org>**20060831151556
838 
839 Example:
840 
841 isInfixOf "Haskell" "I really like Haskell." -> True
842 isInfixOf "Ial" "I really like Haskell." -> False
843 
844 This function was first implemented in MissingH as MissingH.List.contains
845]
846[Better doc on Data.Map.lookup: explain what the monad is for
847jeanphilippe.bernardy@gmail.com**20060903133440]
848[fix hDuplicateTo on Windows
849Simon Marlow <simonmar@microsoft.com>**20060901150016
850 deja vu - I'm sure I remember fixing this before...
851]
852[Improve documentation of atomically
853simonpj@microsoft**20060714120207]
854[Add missing method genRange for StdGen (fixes #794)
855simonpj@microsoft**20060707151901
856 
857        MERGE TO STABLE
858 
859 Trac #794 reports (correctly) that the implementation of StdGen
860 only returns numbers in the range (0..something) rather than
861 (minBound, maxBound), which is what StdGen's genRange claims.
862 
863 This commit fixes the problem, by implementing genRange for StdGen
864 (previously it just used the default method).
865 
866 
867]
868[mark nhc98 import hack
869Ross Paterson <ross@soi.city.ac.uk>**20060831125219]
870[remove some outdated comments
871Simon Marlow <simonmar@microsoft.com>**20060831104200]
872[import Control.Arrow.ArrowZero to help nhc98's type checker
873Malcolm.Wallace@cs.york.ac.uk**20060831101105]
874[remove Text.Regex(.Posix) from nhc98 build
875Malcolm.Wallace@cs.york.ac.uk**20060831101016]
876[add Data.Foldable.{msum,asum}, plus tweaks to comments
877Ross Paterson <ross@soi.city.ac.uk>**20060830163521]
878[fix doc typo
879Ross Paterson <ross@soi.city.ac.uk>**20060830134123]
880[add Data.Foldable.{for_,forM_} and Data.Traversable.{for,forM}
881Ross Paterson <ross@soi.city.ac.uk>**20060830133805
882 
883 generalizing Control.Monad.{forM_,forM}
884]
885[Make length a good consumer
886simonpj@microsoft*-20060508142726
887 
888 Make length into a good consumer.  Fixes Trac bug #707.
889 
890 (Before length simply didn't use foldr.)
891 
892]
893[Add Control.Monad.forM and forM_
894Don Stewart <dons@cse.unsw.edu.au>**20060824081118
895 
896 flip mapM_ is more and more common, I find. Several suggestions have
897 been made to add this, as foreach or something similar. This patch
898 does just that:
899 
900     forM  :: (Monad m) => [a] -> (a -> m b) -> m [b]
901     forM_ :: (Monad m) => [a] -> (a -> m b) -> m ()
902 
903 So we can write:
904     
905     Prelude Control.Monad> forM_ [1..4] $ \x -> print x
906     1
907     2
908     3
909     4
910 
911]
912[Hide internal module from haddock in Data.ByteString
913Don Stewart <dons@cse.unsw.edu.au>**20060828011515]
914[add advice on avoiding import ambiguities
915Ross Paterson <ross@soi.city.ac.uk>**20060827170407]
916[expand advice on importing these modules
917Ross Paterson <ross@soi.city.ac.uk>**20060827164044]
918[add Haddock marker
919Ross Paterson <ross@soi.city.ac.uk>**20060827115140]
920[Clarify how one hides Prelude.catch
921Don Stewart <dons@cse.unsw.edu.au>**20060826124346
922 
923 User feedback indicated that an example was required, of how to hide
924 Prelude.catch, so add such an example to the docs
925 
926]
927[Workaround for OSes that don't have intmax_t and uintmax_t
928Ian Lynagh <igloo@earth.li>**20060825134936
929 OpenBSD (and possibly others) do not have intmax_t and uintmax_t types:
930     http://www.mail-archive.com/haskell-prime@haskell.org/msg01548.html
931 so substitute (unsigned) long long if we have them, otherwise
932 (unsigned) long.
933 
934]
935[add docs for par
936Simon Marlow <simonmar@microsoft.com>**20060825110610]
937[document minimal complete definition for Bits
938Ross Paterson <ross@soi.city.ac.uk>**20060824140504]
939[C regex library bits have moved to the regex-posix package
940Simon Marlow <simonmar@microsoft.com>**20060824132311]
941[Add shared Typeable support (ghc only)
942Esa Ilari Vuokko <ei@vuokko.info>**20060823003126]
943[this should have been removed with the previous patch
944Simon Marlow <simonmar@microsoft.com>**20060824121223]
945[remove Text.Regx & Text.Regex.Posix
946Simon Marlow <simonmar@microsoft.com>**20060824094615
947 These are subsumed by the new regex-base, regex-posix and regex-compat
948 packages.
949]
950[explicitly tag Data.ByteString rules with the FPS prefix.
951Don Stewart <dons@cse.unsw.edu.au>**20060824041326]
952[Add spec rules for sections in Data.ByteString
953Don Stewart <dons@cse.unsw.edu.au>**20060824012611]
954[Sync Data.ByteString with current stable branch, 0.7
955Don Stewart <dons@cse.unsw.edu.au>**20060823143338]
956[add notes about why copyFile doesn't remove the target
957Simon Marlow <simonmar@microsoft.com>**20060823095059]
958[copyFile: try removing the target file before opening it for writing
959Simon Marlow <simonmar@microsoft.com>*-20060822121909]
960[copyFile: try removing the target file before opening it for writing
961Simon Marlow <simonmar@microsoft.com>**20060822121909]
962[add alternative functors and extra instances
963Ross Paterson <ross@soi.city.ac.uk>**20060821152151
964 
965 * Alternative class, for functors with a monoid
966 * instances for Const
967 * instances for arrows
968]
969[generate Haddock docs on all platforms
970Simon Marlow <simonmar@microsoft.com>**20060821131612]
971[remove extra comma from import
972Ross Paterson <ross@soi.city.ac.uk>**20060819173954]
973[fix docs for withC(A)StringLen
974Ross Paterson <ross@soi.city.ac.uk>**20060818170328]
975[use Haskell'98 compliant indentation in do blocks
976Malcolm.Wallace@cs.york.ac.uk**20060818130810]
977[use correct names of IOArray operations for nhc98
978Malcolm.Wallace@cs.york.ac.uk**20060818130714]
979[add mapMaybe and mapEither, plus WithKey variants
980Ross Paterson <ross@soi.city.ac.uk>**20060817235041]
981[remove Text.Html from nhc98 build
982Malcolm.Wallace@cs.york.ac.uk**20060817135502]
983[eliminate more HOST_OS tests
984Ross Paterson <ross@soi.city.ac.uk>**20060815190609]
985[Hugs only: disable unused process primitives
986Ross Paterson <ross@soi.city.ac.uk>**20060813184435
987 
988 These were the cause of Hugs bug #30, I think, and weren't used by Hugs anyway.
989]
990[markup fix to Data.HashTable
991Ross Paterson <ross@soi.city.ac.uk>**20060812103835]
992[revert removal of ghcconfig.h from package.conf.in
993Ross Paterson <ross@soi.city.ac.uk>**20060812082702
994 
995 as it's preprocessed with -undef (pointed out by Esa Ilari Vuokko)
996]
997[fix Data.HashTable for non-GHC
998Ross Paterson <ross@soi.city.ac.uk>**20060811231521]
999[remove deprecated 'withObject'
1000Simon Marlow <simonmar@microsoft.com>**20060811152350]
1001[Jan-Willem Maessen's improved implementation of Data.HashTable
1002Simon Marlow <simonmar@microsoft.com>**20060811151024
1003 Rather than incrementally enlarging the hash table, this version
1004 just does it in one go when the table gets too full.
1005]
1006[Warning police: Make some prototypes from the RTS known
1007sven.panne@aedion.de**20060811144629]
1008[Warning police: Removed useless catch-all clause
1009sven.panne@aedion.de**20060811142208]
1010[reduce dependency on ghcconfig.h
1011Ross Paterson <ross@soi.city.ac.uk>**20060811124030
1012 
1013 The only remaining use is in cbits/dirUtils.h, which tests solaris2_HOST_OS
1014 
1015 (Also System.Info uses ghcplatform.h and several modules import MachDeps.h
1016 to get SIZEOF_* and ALIGNMENT_* from ghcautoconf.h)
1017]
1018[(non-GHC only) track MArray interface change
1019Ross Paterson <ross@soi.city.ac.uk>**20060810182902]
1020[move Text.Html to a separate package
1021Simon Marlow <simonmar@microsoft.com>**20060810113017]
1022[bump version to 2.0
1023Simon Marlow <simonmar@microsoft.com>**20060810112833]
1024[Remove deprecated Data.FiniteMap and Data.Set interfaces
1025Simon Marlow <simonmar@microsoft.com>**20060809153810]
1026[move altzone test from ghc to base package
1027Ross Paterson <ross@soi.city.ac.uk>**20060809124259]
1028[remove unnecessary #include "ghcconfig.h"
1029Ross Paterson <ross@soi.city.ac.uk>**20060809123812]
1030[Change the API of MArray to allow resizable arrays
1031Simon Marlow <simonmar@microsoft.com>**20060809100548
1032 See #704
1033 
1034 The MArray class doesn't currently allow a mutable array to change its
1035 size, because of the pure function
1036 
1037   bounds :: (HasBounds a, Ix i) => a i e -> (i,i)
1038 
1039 This patch removes the HasBounds class, and adds
1040 
1041   getBounds :: (MArray a e m, Ix i) => a i e -> m (i,i)
1042 
1043 to the MArray class, and
1044 
1045   bounds :: (IArray a e, Ix i) => a i e -> (i,i)
1046 
1047 to the IArray class.
1048 
1049 The reason that bounds had to be incorporated into the IArray class is
1050 because I couldn't make DiffArray work without doing this.  DiffArray
1051 acts as a layer converting an MArray into an IArray, and there was no
1052 way (that I could find) to define an instance of HasBounds for
1053 DiffArray.
1054]
1055[deprecate this module.
1056Simon Marlow <simonmar@microsoft.com>**20060808100708]
1057[add traceShow (see #474)
1058Simon Marlow <simonmar@microsoft.com>**20060807155545]
1059[remove spurious 'extern "C" {'
1060Simon Marlow <simonmar@microsoft.com>**20060724160258]
1061[Fix unsafeIndex for large ranges
1062Simon Marlow <simonmar@microsoft.com>**20060721100225]
1063[disambiguate uses of foldr for nhc98 to compile without errors
1064Malcolm.Wallace@cs.york.ac.uk**20060711161614]
1065[make Control.Monad.Instances compilable by nhc98
1066Malcolm.Wallace@cs.york.ac.uk**20060711160941]
1067[breakpointCond
1068Lemmih <lemmih@gmail.com>**20060708055528]
1069[UNDO: Merge "unrecognized long opt" fix from 6.4.2
1070Simon Marlow <simonmar@microsoft.com>**20060705142537
1071 This patch undid the previous patch, "RequireOrder: do not collect
1072 unrecognised options after a non-opt".  I asked Sven to revert it, but
1073 didn't get an answer.
1074 
1075 See bug #473.
1076]
1077[Avoid strictness in accumulator for unpackFoldr
1078Don Stewart <dons@cse.unsw.edu.au>**20060703091806
1079 
1080 The seq on the accumulator for unpackFoldr will break in the presence of
1081 head/build rewrite rules. The empty list case will be forced, producing
1082 an exception. This is a known issue with seq and rewrite rules that we
1083 just stumbled on to.
1084 
1085]
1086[Disable unpack/build fusion
1087Don Stewart <dons@cse.unsw.edu.au>**20060702083913
1088 
1089 unpack/build on bytestrings seems to trigger a bug when interacting with
1090 head/build fusion in GHC.List. The bytestring001 testcase catches it.
1091 
1092 I'll investigate further, but best to disable this for now (its not
1093 often used anyway).
1094 
1095 Note that with -frules-off or ghc 6.4.2 things are fine. It seems to
1096 have emerged with the recent rules changes.
1097 
1098]
1099[Import Data.ByteString.Lazy, improve ByteString Fusion, and resync with FPS head
1100Don Stewart <dons@cse.unsw.edu.au>**20060701084345
1101 
1102 This patch imports the Data.ByteString.Lazy module, and its helpers,
1103 providing a ByteString implemented as a lazy list of strict cache-sized
1104 chunks. This type allows the usual lazy operations to be written on
1105 bytestrings, including lazy IO, with much improved space and time over
1106 the [Char] equivalents.
1107 
1108]
1109[Wibble in docs for new ForeignPtr functionsn
1110Don Stewart <dons@cse.unsw.edu.au>**20060609075924]
1111[comments for Applicative and Traversable
1112Ross Paterson <ross@soi.city.ac.uk>**20060622170436]
1113[default to NoBuffering on Windows for a read/write text file
1114Simon Marlow <simonmar@microsoft.com>**20060622144446
1115 Fixes (works around) #679
1116]
1117[remove dead code
1118Simon Marlow <simonmar@microsoft.com>**20060622144433]
1119[clarify and expand docs
1120Simon Marlow <simonmar@microsoft.com>**20060622112911]
1121[Add minView and maxView to Map and Set
1122jeanphilippe.bernardy@gmail.com**20060616180121]
1123[add signature for registerDelay
1124Ross Paterson <ross@soi.city.ac.uk>**20060614114456]
1125[a few doc comments
1126Ross Paterson <ross@soi.city.ac.uk>**20060613142704]
1127[Optimised foreign pointer representation, for heap-allocated objects
1128Don Stewart <dons@cse.unsw.edu.au>**20060608015011]
1129[Add the inline function, and many comments
1130simonpj@microsoft.com**20060605115814
1131 
1132 This commit adds the 'inline' function described in the
1133 related patch in the compiler.
1134 
1135 I've also added comments about the 'lazy' function.
1136 
1137]
1138[small intro to exceptions
1139Ross Paterson <ross@soi.city.ac.uk>**20060525111604]
1140[export breakpoint
1141Simon Marlow <simonmar@microsoft.com>**20060525090456]
1142[Merge in changes from fps head. Highlights:
1143Don Stewart <dons@cse.unsw.edu.au>**20060525065012
1144 
1145     Wed May 24 15:49:38 EST 2006  sjanssen@cse.unl.edu
1146       * instance Monoid ByteString
1147 
1148     Wed May 24 15:04:04 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1149       * Rearange export lists for the .Char8 modules
1150 
1151     Wed May 24 14:59:56 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1152       * Implement mapAccumL and reimplement mapIndexed using loopU
1153 
1154     Wed May 24 14:47:32 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1155       * Change the implementation of the unfoldr(N) functions.
1156       Use a more compact implementation for unfoldrN and change it's behaviour
1157       to only return Just in the case that it actually 'overflowed' the N, so
1158       the boundary case of unfolding exactly N gives Nothing.
1159       Implement unfoldr and Lazy.unfoldr in terms of unfoldrN. Use fibonacci
1160       growth for the chunk size in unfoldr
1161 
1162     Wed May 24 08:32:29 EST 2006  sjanssen@cse.unl.edu
1163       * Add unfoldr to ByteString and .Char8
1164       A preliminary implementation of unfoldr.
1165 
1166     Wed May 24 01:39:41 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1167       * Reorder the export lists to better match the Data.List api
1168 
1169     Tue May 23 14:04:32 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1170       * pack{Byte,Char} -> singleton. As per fptools convention
1171 
1172     Tue May 23 14:00:51 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1173       * elemIndexLast -> elemIndexEnd
1174 
1175     Tue May 23 13:57:34 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1176       * In the search for a more orthogonal api, we kill breakFirst/breakLast,
1177         which were of dubious value
1178 
1179     Tue May 23 12:24:09 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1180       * Abolish elems. It's name implied it was unpack, but its type didn't. it made no sense
1181 
1182     Tue May 23 10:42:09 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1183       * Minor doc tidyup. Use haddock markup better.
1184 
1185     Tue May 23 11:00:31 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1186       * Simplify the join() implementation. Spotted by Duncan.
1187 
1188]
1189[add a way to ask the IO manager thread to exit
1190Simon Marlow <simonmar@microsoft.com>**20060524121823]
1191[Sync with FPS head, including the following patches:
1192Don Stewart <dons@cse.unsw.edu.au>**20060520030436
1193         
1194     Thu May 18 15:45:46 EST 2006  sjanssen@cse.unl.edu
1195       * Export unsafeTake and unsafeDrop
1196 
1197     Fri May 19 11:53:08 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1198       * Add foldl1'
1199 
1200     Fri May 19 13:41:24 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1201       * Add fuseable scanl, scanl1 + properties
1202 
1203     Fri May 19 18:20:40 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1204       * Spotted another chance to use unsafeTake,Drop (in groupBy)
1205 
1206     Thu May 18 09:24:25 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1207       * More effecient findIndexOrEnd based on the impl of findIndex
1208 
1209     Thu May 18 09:22:49 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1210       * Eliminate special case in findIndex since it's handled anyway.
1211 
1212     Thu May 18 09:19:08 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1213       * Add unsafeTake and unsafeDrop
1214       These versions assume the n is in the bounds of the bytestring, saving
1215       two comparison tests. Then use them in varous places where we think this
1216       holds. These cases need double checking (and there are a few remaining
1217       internal uses of take / drop that might be possible to convert).
1218       Not exported for the moment.
1219 
1220     Tue May 16 23:15:11 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1221       * Handle n < 0 in drop and splitAt. Spotted by QC.
1222 
1223     Tue May 16 22:46:22 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1224       * Handle n <= 0 cases for unfoldr and replicate. Spotted by QC
1225 
1226     Tue May 16 21:34:11 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1227       * mapF -> map', filterF -> filter'
1228 
1229]
1230[haddock fix
1231Ross Paterson <ross@soi.city.ac.uk>**20060518154723]
1232[simplify indexing in Data.Sequence
1233Ross Paterson <ross@soi.city.ac.uk>**20060518154316]
1234[Move Eq, Ord, Show instances for ThreadId to GHC.Conc
1235Simon Marlow <simonmar@microsoft.com>**20060518113339
1236 Eliminates orphans.
1237]
1238[Better error handling in the IO manager thread
1239Simon Marlow <simonmar@microsoft.com>**20060518113303
1240 In particular, handle EBADF just like rts/posix/Select.c, by waking up
1241 all the waiting threads.  Other errors are thrown, instead of just
1242 being ignored.
1243]
1244[#define _REENTRANT 1  (needed to get the right errno on some OSs)
1245Simon Marlow <simonmar@microsoft.com>**20060518104151
1246 Part 2 of the fix for threaded RTS problems on Solaris and possibly
1247 *BSD (Part 1 was the same change in ghc/includes/Rts.h).
1248]
1249[copyCString* should be in IO. Spotted by Tomasz Zielonka
1250Don Stewart <dons@cse.unsw.edu.au>**20060518012154]
1251[add import Prelude to get dependencies right for Data/Fixed.hs
1252Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060517222044
1253 Hopefully this fixes parallel builds.
1254]
1255[Fix negative index handling in splitAt, replicate and unfoldrN. Move mapF, filterF -> map', filter' while we're here
1256Don Stewart <dons@cse.unsw.edu.au>**20060517020150]
1257[Use our own realloc. Thus reduction functions (like filter) allocate on the Haskell heap. Makes around 10% difference.
1258Don Stewart <dons@cse.unsw.edu.au>**20060513051736]
1259[Last two CInt fixes for 64 bit, and bracket writeFile while we're here
1260Don Stewart <dons@cse.unsw.edu.au>**20060512050750]
1261[Some small optimisations, generalise the type of unfold
1262Don Stewart <dons@cse.unsw.edu.au>**20060510043309
1263 
1264     Tue May  9 22:36:29 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1265       * Surely the error function should not be inlined.
1266 
1267     Tue May  9 22:35:53 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1268       * Reorder memory writes for better cache locality.
1269 
1270     Tue May  9 23:28:09 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
1271       * Generalise the type of unfoldrN
1272       
1273       The type of unfoldrN was overly constrained:
1274       unfoldrN :: Int -> (Word8 -> Maybe (Word8, Word8)) -> Word8 -> ByteString
1275       
1276       if we compare that to unfoldr:
1277       unfoldr :: (b -> Maybe (a, b)) -> b -> [a]
1278       
1279       So we can generalise unfoldrN to this type:
1280       unfoldrN :: Int -> (a -> Maybe (Word8, a)) -> a -> ByteString
1281       
1282       and something similar for the .Char8 version. If people really do want to
1283       use it a lot with Word8/Char then perhaps we should add a specialise pragma.
1284 
1285     Wed May 10 13:26:40 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1286       * Add foldl', and thus a fusion rule for length . {map,filter,fold},
1287       that avoids creating an array at all if the end of the pipeline is a 'length' reduction
1288 
1289 **END OF DESCRIPTION***
1290 
1291 Place the long patch description above the ***END OF DESCRIPTION*** marker.
1292 The first line of this file will be the patch name.
1293 
1294 
1295 This patch contains the following changes:
1296 
1297 M ./Data/ByteString.hs -8 +38
1298 M ./Data/ByteString/Char8.hs -6 +12
1299]
1300[portable implementation of WordPtr/IntPtr for non-GHC
1301Ross Paterson <ross@soi.city.ac.uk>**20060510001826
1302 
1303 plus much tweaking of imports to avoid cycles
1304]
1305[add WordPtr and IntPtr types to Foreign.Ptr, with associated conversions
1306Simon Marlow <simonmar@microsoft.com>**20060509092606
1307 
1308 As suggested by John Meacham. 
1309 
1310 I had to move the Show instance for Ptr into GHC.ForeignPtr to avoid
1311 recursive dependencies.
1312]
1313[add CIntPtr, CUIntPtr, CIntMax, CUIntMax types
1314Simon Marlow <simonmar@microsoft.com>**20060509092427]
1315[add GHC.Dynamic
1316Simon Marlow <simonmar@microsoft.com>**20060509082739]
1317[Two things. #if defined(__GLASGOW_HASKELL__) on INLINE [n] pragmas (for jhc). And careful use of INLINE on words/unwords halves runtime for those functions
1318Don Stewart <dons@cse.unsw.edu.au>**20060509023425]
1319[Make length a good consumer
1320simonpj@microsoft**20060508142726
1321 
1322 Make length into a good consumer.  Fixes Trac bug #707.
1323 
1324 (Before length simply didn't use foldr.)
1325 
1326]
1327[Trim imports
1328simonpj@microsoft**20060508142557]
1329[Make unsafePerformIO lazy
1330simonpj@microsoft**20060508142507
1331 
1332 The stricteness analyser used to have a HACK which ensured that NOINLNE things
1333 were not strictness-analysed.  The reason was unsafePerformIO. Left to itself,
1334 the strictness analyser would discover this strictness for unsafePerformIO:
1335        unsafePerformIO:  C(U(AV))
1336 But then consider this sub-expression
1337        unsafePerformIO (\s -> let r = f x in
1338                               case writeIORef v r s of (# s1, _ #) ->
1339                               (# s1, r #)
1340 The strictness analyser will now find that r is sure to be eval'd,
1341 and may then hoist it out.  This makes tests/lib/should_run/memo002
1342 deadlock.
1343 
1344 Solving this by making all NOINLINE things have no strictness info is overkill.
1345 In particular, it's overkill for runST, which is perfectly respectable.
1346 Consider
1347        f x = runST (return x)
1348 This should be strict in x.
1349 
1350 So the new plan is to define unsafePerformIO using the 'lazy' combinator:
1351 
1352        unsafePerformIO (IO m) = lazy (case m realWorld# of (# _, r #) -> r)
1353 
1354 Remember, 'lazy' is a wired-in identity-function Id, of type a->a, which is
1355 magically NON-STRICT, and is inlined after strictness analysis.  So
1356 unsafePerformIO will look non-strict, and that's what we want.
1357 
1358]
1359[Sync with FPS head.
1360Don Stewart <dons@cse.unsw.edu.au>**20060508122322
1361 
1362 Mon May  8 10:40:14 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1363   * Fix all uses for Int that should be CInt or CSize in ffi imports.
1364   Spotted by Igloo, dcoutts
1365 
1366 Mon May  8 16:09:41 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1367   * Import nicer loop/loop fusion rule from ghc-ndp
1368 
1369 Mon May  8 17:36:07 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1370   * Fix stack leak in split on > 60M strings
1371 
1372 Mon May  8 17:50:13 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1373   * Try same fix for stack overflow in elemIndices
1374 
1375]
1376[Fix all uses for Int that should be CInt or CSize in ffi imports. Spotted by Duncan and Ian
1377Don Stewart <dons@cse.unsw.edu.au>**20060508010311]
1378[Fixed import list syntax
1379Sven Panne <sven.panne@aedion.de>**20060507155008]
1380[Faster filterF, filterNotByte
1381dons@cse.unsw.edu.au**20060507042301]
1382[Much faster find, findIndex. Hint from sjanssen
1383dons@cse.unsw.edu.au**20060507033048]
1384[Merge "unrecognized long opt" fix from 6.4.2
1385Sven Panne <sven.panne@aedion.de>**20060506110519]
1386[
1387dons@cse.unsw.edu.au**20060506061029
1388 Sat May  6 13:01:34 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1389   * Do loopU realloc on the Haskell heap. And add a really tough stress test
1390 
1391 Sat May  6 12:28:58 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1392   * Use simple, 3x faster concat. Plus QC properties. Suggested by sjanssen and dcoutts
1393 
1394 Sat May  6 15:59:31 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1395   * dcoutt's packByte bug squashed
1396   
1397   With inlinePerformIO, ghc head was compiling:
1398   
1399    packByte 255 `compare` packByte 127
1400   
1401   into roughly
1402   
1403    case mallocByteString 2 of
1404        ForeignPtr f internals ->
1405             case writeWord8OffAddr# f 0 255 of _ ->
1406             case writeWord8OffAddr# f 0 127 of _ ->
1407             case eqAddr# f f of
1408                    False -> case compare (GHC.Prim.plusAddr# f 0)
1409                                          (GHC.Prim.plusAddr# f 0)
1410   
1411   which is rather stunning. unsafePerformIO seems to prevent whatever
1412   magic inlining was leading to this. Only affected the head.
1413   
1414]
1415[Add array fusion versions of map, filter and foldl
1416dons@cse.unsw.edu.au**20060505060858
1417 
1418 This patch adds fusable map, filter and foldl, using the array fusion
1419 code for unlifted, flat arrays, from the Data Parallel Haskell branch,
1420 after kind help from Roman Leshchinskiy,
1421 
1422 Pipelines of maps, filters and folds should now need to walk the
1423 bytestring once only, and intermediate bytestrings won't be constructed.
1424 
1425]
1426[fix for non-GHC
1427Ross Paterson <ross@soi.city.ac.uk>**20060504093044]
1428[use bracket in appendFile (like writeFile)
1429Ross Paterson <ross@soi.city.ac.uk>**20060504091528]
1430[writeFile: close the file on error
1431Simon Marlow <simonmar@microsoft.com>**20060504084505
1432 Suggested by Ross Paterson, via Neil Mitchell
1433 
1434]
1435[Sync with FPS head
1436dons@cse.unsw.edu.au**20060503105259
1437 
1438 This patch brings Data.ByteString into sync with the FPS head.
1439 The most significant of which is the new Haskell counting sort.
1440 
1441 Changes:
1442 
1443 Sun Apr 30 18:16:29 EST 2006  sjanssen@cse.unl.edu
1444   * Fix foldr1 in Data.ByteString and Data.ByteString.Char8
1445 
1446 Mon May  1 11:51:16 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
1447   * Add group and groupBy. Suggested by conversation between sjanssen and petekaz on #haskell
1448 
1449 Mon May  1 16:42:04 EST 2006  sjanssen@cse.unl.edu
1450   * Fix groupBy to match Data.List.groupBy.
1451 
1452 Wed May  3 15:01:07 EST 2006  sjanssen@cse.unl.edu
1453   * Migrate to counting sort.
1454   
1455   Data.ByteString.sort used C's qsort(), which is O(n log n).  The new algorithm
1456   is O(n), and is faster for strings larger than approximately thirty bytes.  We
1457   also reduce our dependency on cbits!
1458 
1459]
1460[improve performance of Integer->String conversion
1461Simon Marlow <simonmar@microsoft.com>**20060503113306
1462 See
1463  http://www.haskell.org//pipermail/libraries/2006-April/005227.html
1464 
1465 Submitted by: bertram.felgenhauer@googlemail.com
1466 
1467 
1468]
1469[inline withMVar, modifyMVar, modifyMVar_
1470Simon Marlow <simonmar@microsoft.com>**20060503111152]
1471[Fix string truncating in hGetLine -- it was a pasto from Simon's code
1472Simon Marlow <simonmar@microsoft.com>**20060503103504
1473 (from Don Stewart)
1474]
1475[Merge in Data.ByteString head. Fixes ByteString+cbits in hugs
1476Don Stewart <dons@cse.unsw.edu.au>**20060429040733]
1477[Import Data.ByteString from fps 0.5.
1478Don Stewart <dons@cse.unsw.edu.au>**20060428130718
1479 Fast, packed byte vectors, providing a better PackedString.
1480 
1481]
1482[fix previous patch
1483Ross Paterson <ross@soi.city.ac.uk>**20060501154847]
1484[fixes for non-GHC
1485Ross Paterson <ross@soi.city.ac.uk>**20060501144322]
1486[fix imports for mingw32 && !GHC
1487Ross Paterson <ross@soi.city.ac.uk>**20060427163248]
1488[RequireOrder: do not collect unrecognised options after a non-opt
1489Simon Marlow <simonmar@microsoft.com>**20060426121110
1490 The documentation for RequireOrder says "no option processing after
1491 first non-option", so it doesn't seem right that we should process the
1492 rest of the arguments to collect the unrecognised ones.  Presumably
1493 the client wants to know about the unrecognised options up to the
1494 first non-option, and will be using a different option parser for the
1495 rest of the command line.
1496 
1497 eg. before:
1498 
1499 Prelude System.Console.GetOpt> getOpt' RequireOrder [] ["bar","--foo"]
1500 ([],["bar","--foo"],["--foo"],[])
1501 
1502 after:
1503 
1504 Prelude System.Console.GetOpt> getOpt' RequireOrder [] ["bar","--foo"]
1505 ([],["bar","--foo"],[],[])
1506]
1507[fix for Haddock 0.7
1508Ashley Yakeley <ashley@semantic.org>**20060426072521]
1509[add Data.Fixed module
1510Ashley Yakeley <ashley@semantic.org>**20060425071853]
1511[add instances
1512Ross Paterson <ross@soi.city.ac.uk>**20060424102146]
1513[add superclasses to Applicative and Traversable
1514Ross Paterson <ross@soi.city.ac.uk>**20060411144734
1515 
1516 Functor is now a superclass of Applicative, and Functor and Foldable
1517 are now superclasses of Traversable.  The new hierarchy makes clear the
1518 inclusions between the classes, but means more work in defining instances.
1519 Default definitions are provided to help.
1520]
1521[add Functor and Monad instances for Prelude types
1522Ross Paterson <ross@soi.city.ac.uk>**20060410111443]
1523[GHC.Base.breakpoint
1524Lemmih <lemmih@gmail.com>**20060407125827]
1525[Track the GHC source tree reorganisation
1526Simon Marlow <simonmar@microsoft.com>**20060407041631]
1527[in the show instance for Exception, print the type of dynamic exceptions
1528Simon Marlow <simonmar@microsoft.com>**20060406112444
1529 Unfortunately this requires some recursve module hackery to get at
1530 the show instance for Typeable.
1531]
1532[implement ForeignEnvPtr, newForeignPtrEnv, addForeignPtrEnv for GHC
1533Simon Marlow <simonmar@microsoft.com>**20060405155448]
1534[add  forkOnIO :: Int -> IO () -> IO ThreadId
1535Simon Marlow <simonmar@microsoft.com>**20060327135018]
1536[Rework previous: not a gcc bug after all
1537Simon Marlow <simonmar@microsoft.com>**20060323161229
1538 It turns out that we were relying on behaviour that is undefined in C,
1539 and undefined behaviour in C means "the compiler can do whatever the
1540 hell it likes with your entire program".  So avoid that.
1541]
1542[work around a gcc 4.1.0 codegen bug in -O2 by forcing -O1 for GHC.Show
1543Simon Marlow <simonmar@microsoft.com>**20060323134514
1544 See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26824
1545]
1546[commit mysteriously missing parts of "runIOFastExit" patch
1547Simon Marlow <simonmar@microsoft.com>**20060321101535]
1548[add runIOFastExit :: IO a -> IO a
1549Simon Marlow <simonmar@microsoft.com>**20060320124333
1550 Similar to runIO, but calls stg_exit() directly to exit, rather than
1551 shutdownHaskellAndExit().  Needed for running GHCi in the test suite.
1552]
1553[Fix a broken invariant
1554Simon Marlow <simonmar@microsoft.com>**20060316134151
1555 Patch from #694,  for the problem "empty is an identity for <> and $$" is
1556 currently broken by eg. isEmpty (empty<>empty)"
1557]
1558[Add unsafeSTToIO :: ST s a -> IO a
1559Simon Marlow <simonmar@microsoft.com>**20060315160232
1560 Implementation for Hugs is missing, but should be easy.  We need this
1561 for the forthcoming nested data parallelism implementation.
1562]
1563[Added 'alter'
1564jeanphilippe.bernardy@gmail.com**20060315143539
1565 Added 'alter :: (Maybe a -> Maybe a) -> k -> Map k a -> Map k a' to IntMap and Map
1566 This addresses ticket #665
1567]
1568[deprecate FunctorM in favour of Foldable and Traversable
1569Ross Paterson <ross@soi.city.ac.uk>**20060315092942
1570 as discussed on the libraries list.
1571]
1572[Simplify Eq, Ord, and Show instances for UArray
1573Simon Marlow <simonmar@microsoft.com>**20060313142701
1574 The Eq, Ord, and Show instances of UArray were written out longhand
1575 with one instance per element type.  It is possible to condense these
1576 into a single instance for each class, at the expense of using more
1577 extensions (non-std context on instance declaration).
1578 
1579 Suggestion by: Frederik Eaton <frederik@ofb.net>
1580 
1581]
1582[Oops typo in intSet notMember
1583jeanphilippe.bernardy@gmail.com**20060311224713]
1584[IntMap lookup now returns monad instead of Maybe.
1585jeanphilippe.bernardy@gmail.com**20060311224502]
1586[Added notMember to Data.IntSet and Data.IntMap
1587jeanphilippe.bernardy@gmail.com**20060311085221]
1588[add Data.Set.notMember and Data.Map.notMember
1589John Meacham <john@repetae.net>**20060309191806]
1590[addToClockTime: handle picoseconds properly
1591Simon Marlow <simonmar@microsoft.com>**20060310114532
1592 fixes #588
1593]
1594[make head/build rule apply to all types, not just Bool.
1595John Meacham <john@repetae.net>**20060303045753]
1596[Avoid overflow when normalising clock times
1597Ian Lynagh <igloo@earth.li>**20060210144638]
1598[Years have 365 days, not 30*365
1599Ian Lynagh <igloo@earth.li>**20060210142853]
1600[declare blkcmp() static
1601Simon Marlow <simonmar@microsoft.com>**20060223134317]
1602[typo in comment in Foldable class
1603Ross Paterson <ross@soi.city.ac.uk>**20060209004901]
1604[simplify fmap
1605Ross Paterson <ross@soi.city.ac.uk>**20060206095048]
1606[update ref in comment
1607Ross Paterson <ross@soi.city.ac.uk>**20060206095139]
1608[Give -foverlapping-instances to Data.Typeable
1609simonpj@microsoft**20060206133439
1610 
1611 For some time, GHC has made -fallow-overlapping-instances "sticky":
1612 any instance in a module compiled with -fallow-overlapping-instances
1613 can overlap when imported, regardless of whether the importing module
1614 allows overlap.  (If there is an overlap, both instances must come from
1615 modules thus compiled.)
1616 
1617 Instances in Data.Typeable might well want to be overlapped, so this
1618 commit adds the flag to Data.Typeable (with an explanatory comment)
1619 
1620 
1621]
1622[Add -fno-bang-patterns to modules using both bang and glasgow-exts
1623simonpj@microsoft.com**20060203175759]
1624[When splitting a bucket, keep the contents in the same order
1625Simon Marlow <simonmar@microsoft.com>**20060201130427
1626 To retain the property that multiple inserts shadow each other
1627 (see ticket #661, test hash001)
1628]
1629[add foldr/build optimisation for take and replicate
1630Simon Marlow <simonmar@microsoft.com>**20060126164603
1631 This allows take to be deforested, and improves performance of
1632 replicate and replicateM/replicateM_.  We have a separate problem that
1633 means expressions involving [n..m] aren't being completely optimised
1634 because eftIntFB isn't being inlined but otherwise the results look
1635 good. 
1636 
1637 Sadly this has invalidated a number of the nofib benchmarks which were
1638 erroneously using take to duplicate work in a misguided attempt to
1639 lengthen their runtimes (ToDo).
1640]
1641[Generate PrimopWrappers.hs with Haddock docs
1642Simon Marlow <simonmar@microsoft.com>**20060124131121
1643 Patch originally from Dinko Tenev <dinko.tenev@gmail.com>, modified
1644 to add log message by me.
1645]
1646[[project @ 2006-01-19 14:47:15 by ross]
1647ross**20060119144715
1648 backport warning avoidance from Haddock
1649]
1650[[project @ 2006-01-18 11:45:47 by malcolm]
1651malcolm**20060118114547
1652 Fix import of Ix for nhc98.
1653]
1654[[project @ 2006-01-17 09:38:38 by ross]
1655ross**20060117093838
1656 add Ix instance for GeneralCategory.
1657]
1658[TAG Initial conversion from CVS complete
1659John Goerzen <jgoerzen@complete.org>**20060112154126]
1660Patch bundle hash:
1661ce5db27b4a6d49bffb7735d82113aa367eed270e