Ticket #1979: base-inits1-tails1.patch

File base-inits1-tails1.patch, 73.7 KB (added by mux, 6 years ago)

darcs patch

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