Ticket #1902: 1902.patch

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