Ticket #1115: scheduler-delays.darcs

File scheduler-delays.darcs, 46.0 KB (added by Neil Davies, 7 years ago)

patch for unix for the bug #1115

Line 
1
2New patches:
3
4[wrapround of thread delays
5Neil Davies <SemanticPhilosopher@gmail.com>**20070129160519
6 
7   * made the wrapround of the underlying O/S occur before the wrapround
8     of the delayed threads by making threads delay in microseconds since
9     O/S epoch (1970 - Unix, 1601 - Windows) stored in Word64.
10   * removed redundant calls reading O/S realtime clock
11   * removed rounding to 1/50th of sec for timers
12   * Only for Unix version of scheduler.
13] {
14hunk ./GHC/Conc.lhs 625
15--- Note that the resolution used by the Haskell runtime system's
16--- internal timer is 1\/50 second, and 'threadDelay' will round its
17--- argument up to the nearest multiple of this resolution.
18---
19hunk ./GHC/Conc.lhs 637
20+
21+-- | Set the value of returned TVar to True after a given number of
22+-- microseconds. The caveats associated with threadDelay also apply.
23+--
24hunk ./GHC/Conc.lhs 651
25-  now <- getTicksOfDay
26hunk ./GHC/Conc.lhs 660
27-   now <- getTicksOfDay
28hunk ./GHC/Conc.lhs 665
29-calculateTarget :: Int -> IO Int
30+calculateTarget :: Int -> IO Ticks
31hunk ./GHC/Conc.lhs 668
32-    let -- Convert usecs to ticks, rounding up as we must wait /at least/
33-        -- as long as we are told
34-        usecs' = (usecs + tick_usecs - 1) `quot` tick_usecs
35-        target = now + 1 -- getTicksOfDay will have rounded down, but
36-                         -- again we need to wait for /at least/ as long
37-                         -- as we are told, so add 1 to it
38-               + usecs'
39-    return target
40+    return $ now + (fromIntegral usecs)
41+
42hunk ./GHC/Conc.lhs 710
43-  = Delay    {-# UNPACK #-} !Int {-# UNPACK #-} !(MVar ())
44-  | DelaySTM {-# UNPACK #-} !Int {-# UNPACK #-} !(TVar Bool)
45+  = Delay    {-# UNPACK #-} !Word64 {-# UNPACK #-} !(MVar ())
46+  | DelaySTM {-# UNPACK #-} !Word64 {-# UNPACK #-} !(TVar Bool)
47hunk ./GHC/Conc.lhs 742
48-type Ticks = Int
49-tick_freq  = 50 :: Ticks  -- accuracy of threadDelay (ticks per sec)
50-tick_usecs = 1000000 `quot` tick_freq :: Int
51-tick_msecs = 1000 `quot` tick_freq :: Int
52+type Ticks = Word64
53replace ./GHC/Conc.lhs [A-Za-z_0-9] Ticks USecs
54replace ./GHC/Conc.lhs [A-Za-z_0-9] getTicksOfDay getUSecOfDay
55hunk ./include/HsBase.h 722
56-#define TICK_FREQ  50
57hunk ./include/HsBase.h 725
58-INLINE HsInt getTicksOfDay(void)
59+INLINE HsWord64 getTicksOfDay(void)
60hunk ./include/HsBase.h 729
61-    return (tv.tv_sec * TICK_FREQ +
62-           tv.tv_usec * TICK_FREQ / 1000000);
63+    return (tv.tv_sec * 1000000 + tv.tv_usec);
64hunk ./include/HsBase.h 732
65-INLINE void setTimevalTicks(struct timeval *p, HsInt ticks)
66+INLINE void setTimevalTicks(struct timeval *p, HsWord64 usecs)
67hunk ./include/HsBase.h 734
68-    p->tv_sec  = ticks / TICK_FREQ;
69-    p->tv_usec = (ticks % TICK_FREQ) * (1000000 / TICK_FREQ);
70+    p->tv_sec  = usecs / 1000000;
71+    p->tv_usec = usecs % 1000000;
72replace ./include/HsBase.h [A-Za-z_0-9] getTicksOfDay getUSecOfDay
73}
74
75Context:
76
77[fix threadDelay
78Simon Marlow <simonmar@microsoft.com>**20070117091702
79 In "Add support for the IO manager thread" I accidentally spammed part
80 of "Make sure the threaded threadDelay sleeps at least as long as it
81 is asked", which is why the ThreadDelay001 test has been failing.
82]
83[update section on "blocking"
84Simon Marlow <simonmar@microsoft.com>**20070116124328]
85[Fix crash with   (minBound :: Int*) `div (-1)   as result is maxBound + 1.
86Ian Lynagh <igloo@earth.li>**20070115142005]
87[version of example using Tomasz Zielonka's technique
88Ross Paterson <ross@soi.city.ac.uk>**20070105175907]
89[Added Unknowns for higher kinds
90Pepe Iborra <mnislaih@gmail.com>**20061108155938]
91[Improved the Show instance for Unknown
92Pepe Iborra <mnislaih@gmail.com>**20060813111816]
93[Show instance for GHC.Base.Unknown
94mnislaih@gmail.com**20060801233530]
95[Introduce Unknowns for the closure viewer. Add breakpointCond which was missing
96mnislaih@gmail.com**20060725174537]
97[Fix missing comma in Fractional documentation
98Alec Berryman <alec@thened.net>**20061201173237]
99[Mention that throwTo does not guarantee promptness of delivery
100simonpj@microsoft**20061211123215]
101[Add note about synhronous delivery of throwTo
102simonpj@microsoft**20061211122257]
103[documentation for installHandler
104Simon Marlow <simonmar@microsoft.com>**20061205154927
105 merge to 6.6
106]
107[dos2unix
108Simon Marlow <simonmar@microsoft.com>**20061204095439]
109[don't try to compile this on Unix
110Simon Marlow <simonmar@microsoft.com>**20061204095427]
111[TAG 6.6 release
112Ian Lynagh <igloo@earth.li>**20061011124740]
113[TAG Version 2.1
114Ian Lynagh <igloo@earth.li>**20061009114014]
115[Bump version number
116Ian Lynagh <igloo@earth.li>**20061009114009]
117[Add support for the IO manager thread on Windows
118Simon Marlow <simonmar@microsoft.com>**20061201152042
119 Fixes #637.  The test program in that report now works for me with
120 -threaded, but it doesn't work without -threaded (I don't know if
121 that's new behaviour or not, though).
122]
123[deriving (Eq, Ord, Enum, Show, Read, Typeab) for ConsoleEvent
124Simon Marlow <simonmar@microsoft.com>**20061201144032]
125[Make sure the threaded threadDelay sleeps at least as long as it is asked to
126Ian Lynagh <igloo@earth.li>**20061128204807]
127[Add comments about argument order to the definitions of gmapQ and constrFields
128simonpj@microsoft**20061124164505]
129[Hugs: add Control.Parallel.Strategies
130Ross Paterson <ross@soi.city.ac.uk>**20061124161039]
131[Move instance of Show Ptr to Ptr.hs (fewer orphans)
132simonpj@microsoft.com**20061124100639]
133[Add type signatures
134simonpj@microsoft.com**20061124100621]
135[Add an example of the use of unfoldr, following doc feedback from dozer
136Don Stewart <dons@cse.unsw.edu.au>**20061124011249]
137[trim imports
138Ross Paterson <ross@soi.city.ac.uk>**20061123190352]
139[Data.Graph is now portable (enable for nhc98)
140Malcolm.Wallace@cs.york.ac.uk**20061123174913]
141[remove Data.FunctorM and Data.Queue
142Ross Paterson <ross@soi.city.ac.uk>**20061112001046
143 
144 These were deprecated in 6.6, and can thus be removed in 6.8.
145]
146[make Data.Graph portable (no change to the interface)
147Ross Paterson <ross@soi.city.ac.uk>**20061122010040
148 
149 The algorithm now uses STArrays on GHC and IntSets elsewhere.
150 (Hugs has STArrays, but avoiding them saves a -98, and boxed arrays
151 aren't fast under Hugs anyway.)
152]
153[One less unsafeCoerce# in the tree
154Don Stewart <dons@cse.unsw.edu.au>**20061120120242]
155[typo in comment
156Ross Paterson <ross@soi.city.ac.uk>**20061120115106]
157[fix shift docs to match ffi spec
158Ross Paterson <ross@soi.city.ac.uk>**20061117003144]
159[(nhc98) use new primitive implementations of h{Put,Get}Buf.
160Malcolm.Wallace@cs.york.ac.uk**20061116173104]
161[The wrong 'cycle' was exported from Data.ByteString.Lazy.Char8, spotted by sjanssen
162Don Stewart <dons@cse.unsw.edu.au>**20061110021311]
163[LPS chunk sizes should be 16 bytes, not 17.
164Don Stewart <dons@cse.unsw.edu.au>**20061110021254]
165[Update comments on Prelude organisation in GHC/Base.lhs
166Ian Lynagh <igloo@earth.li>**20061115001926]
167[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.
168bringert@cs.chalmers.se**20061113224202]
169[Control.Parallel.Strategies: added NFData instances for Data.Int.*, Data.Word.*, Maybe, Either, Map, Set, Tree, IntMap, IntSet.
170bringert@cs.chalmers.se**20061113221843]
171[Control.Parallel.Strategies: deprecate sPar, sSeq, Assoc, fstPairFstList, force and sforce.
172bringert@cs.chalmers.se**20061113215219
173 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.
174]
175[add Control.Monad.Instances to nhc98 build
176Malcolm.Wallace@cs.york.ac.uk**20061113113221]
177[Control.Parallel.Strategies: clarified documentation of parListChunk.
178bringert@cs.chalmers.se**20061112232904]
179[Added and cleaned up Haddock comments in Control.Parallel.Strategies.
180bringert@cs.chalmers.se**20061112220445
181 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.
182]
183[Fix broken pragmas; spotted by Bulat Ziganshin
184Ian Lynagh <igloo@earth.li>**20061111205916]
185[add doc link to bound threads section
186Ross Paterson <ross@soi.city.ac.uk>**20060929103252]
187[hide Data.Array.IO.Internals
188Ross Paterson <ross@soi.city.ac.uk>**20061111113248
189 
190 It's hidden from haddock, and everything it exports is re-exported by
191 Data.Array.IO.
192]
193[add Data.Function
194Malcolm.Wallace@cs.york.ac.uk**20061110142710]
195[add Data.Function
196Ross Paterson <ross@soi.city.ac.uk>**20061110141354]
197[whitespace only
198Ross Paterson <ross@soi.city.ac.uk>**20061110141326]
199[move fix to Data.Function
200Ross Paterson <ross@soi.city.ac.uk>**20061110141120]
201[import Prelude
202Ross Paterson <ross@soi.city.ac.uk>**20061110140445]
203[Added Data.Function (Trac ticket #979).
204Nils Anders Danielsson <nad@cs.chalmers.se>**20061110122503
205 + A module with simple combinators working solely on and with
206   functions.
207 + The only new function is "on".
208 + Some functions from the Prelude are re-exported.
209]
210[__hscore_long_path_size is not portable beyond GHC
211Malcolm.Wallace@cs.york.ac.uk**20061110113222]
212[redefine writeFile and appendFile using withFile
213Ross Paterson <ross@soi.city.ac.uk>**20061107140359]
214[add withFile and withBinaryFile (#966)
215Ross Paterson <ross@soi.city.ac.uk>**20061107134510]
216[remove conflicting import for nhc98
217Malcolm.Wallace@cs.york.ac.uk**20061108111215]
218[Add intercalate to Data.List (ticket #971)
219Josef Svenningsson <josef.svenningsson@gmail.com>**20061102122052]
220[non-GHC: fix canonicalizeFilePath
221Ross Paterson <ross@soi.city.ac.uk>**20061107133902
222 
223 I've also removed the #ifdef __GLASGOW_HASKELL__ from the proper
224 Windows versions of a few functions.  These will need testing with
225 Hugs on Windows.
226]
227[enable canonicalizePath for non-GHC platforms
228Simon Marlow <simonmar@microsoft.com>**20061107121141]
229[Update documentation for hWaitForInput
230Simon Marlow <simonmar@microsoft.com>**20061107111430
231 See #972
232 Merge to 6.6 branch.
233]
234[Use unchecked shifts to implement Data.Bits.rotate
235Samuel Bronson <naesten@gmail.com>**20061012125553
236 This should get rid of those cases, maybe lower the size enough that the inliner will like it?
237]
238[fix Haddock module headers
239Ross Paterson <ross@soi.city.ac.uk>**20061106124140]
240[fix example in docs
241Ross Paterson <ross@soi.city.ac.uk>**20061106115628]
242[Add intercalate and split to Data.List
243Josef Svenningsson <josef.svenningsson@gmail.com>*-20061024172357]
244[Data.Generics.Basics is GHC-only
245Ross Paterson <ross@soi.city.ac.uk>**20061102111736]
246[#ifdef around non-portable Data.Generics.Basics
247Malcolm.Wallace@cs.york.ac.uk**20061102103445]
248[Add deriving Data to Complex
249simonpj@microsoft**20061101102059]
250[minor clarification of RandomGen doc
251Ross Paterson <ross@soi.city.ac.uk>**20061030230842]
252[rearrange docs a bit
253Ross Paterson <ross@soi.city.ac.uk>**20061030161223]
254[Add intercalate and split to Data.List
255Josef Svenningsson <josef.svenningsson@gmail.com>**20061024172357]
256[Export pseq from Control.Parallel, and use it in Control.Parallel.Strategies
257Simon Marlow <simonmar@microsoft.com>**20061027150141]
258[`par` should be infixr 0
259Simon Marlow <simonmar@microsoft.com>**20061027130800
260 Alas, I didn't spot this due to lack of testing, and the symptom is
261 that an expression like x `par` y `seq z will have exactly the wrong
262 parallelism properties.  The workaround is to add parantheses.
263 
264 I think we could push this to the 6.6 branch.
265]
266[fix example in comment
267Ross Paterson <ross@soi.city.ac.uk>**20061023163925]
268[Use the new Any type for dynamics (GHC only)
269simonpj@microsoft**20061019160408]
270[add Data.Sequence to nhc98 build
271Malcolm.Wallace@cs.york.ac.uk**20061012135200]
272[Remove Data.FiniteMap, add Control.Applicative, Data.Traversable, and
273Malcolm.Wallace@cs.york.ac.uk**20061012095605
274 Data.Foldable to the nhc98 build.
275]
276[STM invariants
277tharris@microsoft.com**20061007123253]
278[Inline shift in GHC's Bits instances for {Int,Word}{,8,16,32,64}
279Samuel Bronson <naesten@gmail.com>**20061009020906]
280[Don't create GHC.Prim when bootstrapping; we can't, and we don't need it
281Ian Lynagh <igloo@earth.li>**20061004165355]
282[Data.ByteString: fix lazyness of take, drop & splitAt
283Don Stewart <dons@cse.unsw.edu.au>**20061005011703
284 
285 ByteString.Lazy's take, drop and splitAt were too strict when demanding
286 a byte string. Spotted by Einar Karttunen. Thanks to him and to Bertram
287 Felgenhauer for explaining the problem and the fix.
288 
289]
290[Fix syntax error that prevents building Haddock documentation on Windows
291brianlsmith@gmail.com**20060917013530]
292[Hugs only: unbreak typeRepKey
293Ross Paterson <ross@soi.city.ac.uk>**20060929102743]
294[make hGetBufNonBlocking do something on Windows w/ -threaded
295Simon Marlow <simonmar@microsoft.com>**20060927145811
296 hGetBufNonBlocking will behave the same as hGetBuf on Windows now, which
297 is better than just crashing (which it did previously).
298]
299[add typeRepKey :: TypeRep -> IO Int
300Simon Marlow <simonmar@microsoft.com>**20060927100342
301 See feature request #880
302]
303[fix header comment
304Ross Paterson <ross@soi.city.ac.uk>**20060926135843]
305[Add strict versions of insertWith and insertWithKey (Data.Map)
306jeanphilippe.bernardy@gmail.com**20060910162443]
307[doc tweaks, including more precise equations for evaluate
308Ross Paterson <ross@soi.city.ac.uk>**20060910115259]
309[Sync Data.ByteString with stable branch
310Don Stewart <dons@cse.unsw.edu.au>**20060909050111
311 
312 This patch:
313     * hides the LPS constructor (its in .Base if you need it)
314     * adds functions to convert between strict and lazy bytestrings
315     * and adds readInteger
316 
317]
318[Typeable1 instances for STM and TVar
319Ross Paterson <ross@soi.city.ac.uk>**20060904231425]
320[remove obsolete Hugs stuff
321Ross Paterson <ross@soi.city.ac.uk>**20060904223944]
322[Cleaner isInfixOf suggestion from Ross Paterson
323John Goerzen <jgoerzen@complete.org>**20060901143654]
324[New function isInfixOf that searches a list for a given sublist
325John Goerzen <jgoerzen@complete.org>**20060831151556
326 
327 Example:
328 
329 isInfixOf "Haskell" "I really like Haskell." -> True
330 isInfixOf "Ial" "I really like Haskell." -> False
331 
332 This function was first implemented in MissingH as MissingH.List.contains
333]
334[Better doc on Data.Map.lookup: explain what the monad is for
335jeanphilippe.bernardy@gmail.com**20060903133440]
336[fix hDuplicateTo on Windows
337Simon Marlow <simonmar@microsoft.com>**20060901150016
338 deja vu - I'm sure I remember fixing this before...
339]
340[Improve documentation of atomically
341simonpj@microsoft**20060714120207]
342[Add missing method genRange for StdGen (fixes #794)
343simonpj@microsoft**20060707151901
344 
345        MERGE TO STABLE
346 
347 Trac #794 reports (correctly) that the implementation of StdGen
348 only returns numbers in the range (0..something) rather than
349 (minBound, maxBound), which is what StdGen's genRange claims.
350 
351 This commit fixes the problem, by implementing genRange for StdGen
352 (previously it just used the default method).
353 
354 
355]
356[mark nhc98 import hack
357Ross Paterson <ross@soi.city.ac.uk>**20060831125219]
358[remove some outdated comments
359Simon Marlow <simonmar@microsoft.com>**20060831104200]
360[import Control.Arrow.ArrowZero to help nhc98's type checker
361Malcolm.Wallace@cs.york.ac.uk**20060831101105]
362[remove Text.Regex(.Posix) from nhc98 build
363Malcolm.Wallace@cs.york.ac.uk**20060831101016]
364[add Data.Foldable.{msum,asum}, plus tweaks to comments
365Ross Paterson <ross@soi.city.ac.uk>**20060830163521]
366[fix doc typo
367Ross Paterson <ross@soi.city.ac.uk>**20060830134123]
368[add Data.Foldable.{for_,forM_} and Data.Traversable.{for,forM}
369Ross Paterson <ross@soi.city.ac.uk>**20060830133805
370 
371 generalizing Control.Monad.{forM_,forM}
372]
373[Make length a good consumer
374simonpj@microsoft*-20060508142726
375 
376 Make length into a good consumer.  Fixes Trac bug #707.
377 
378 (Before length simply didn't use foldr.)
379 
380]
381[Add Control.Monad.forM and forM_
382Don Stewart <dons@cse.unsw.edu.au>**20060824081118
383 
384 flip mapM_ is more and more common, I find. Several suggestions have
385 been made to add this, as foreach or something similar. This patch
386 does just that:
387 
388     forM  :: (Monad m) => [a] -> (a -> m b) -> m [b]
389     forM_ :: (Monad m) => [a] -> (a -> m b) -> m ()
390 
391 So we can write:
392     
393     Prelude Control.Monad> forM_ [1..4] $ \x -> print x
394     1
395     2
396     3
397     4
398 
399]
400[Hide internal module from haddock in Data.ByteString
401Don Stewart <dons@cse.unsw.edu.au>**20060828011515]
402[add advice on avoiding import ambiguities
403Ross Paterson <ross@soi.city.ac.uk>**20060827170407]
404[expand advice on importing these modules
405Ross Paterson <ross@soi.city.ac.uk>**20060827164044]
406[add Haddock marker
407Ross Paterson <ross@soi.city.ac.uk>**20060827115140]
408[Clarify how one hides Prelude.catch
409Don Stewart <dons@cse.unsw.edu.au>**20060826124346
410 
411 User feedback indicated that an example was required, of how to hide
412 Prelude.catch, so add such an example to the docs
413 
414]
415[Workaround for OSes that don't have intmax_t and uintmax_t
416Ian Lynagh <igloo@earth.li>**20060825134936
417 OpenBSD (and possibly others) do not have intmax_t and uintmax_t types:
418     http://www.mail-archive.com/haskell-prime@haskell.org/msg01548.html
419 so substitute (unsigned) long long if we have them, otherwise
420 (unsigned) long.
421 
422]
423[add docs for par
424Simon Marlow <simonmar@microsoft.com>**20060825110610]
425[document minimal complete definition for Bits
426Ross Paterson <ross@soi.city.ac.uk>**20060824140504]
427[C regex library bits have moved to the regex-posix package
428Simon Marlow <simonmar@microsoft.com>**20060824132311]
429[Add shared Typeable support (ghc only)
430Esa Ilari Vuokko <ei@vuokko.info>**20060823003126]
431[this should have been removed with the previous patch
432Simon Marlow <simonmar@microsoft.com>**20060824121223]
433[remove Text.Regx & Text.Regex.Posix
434Simon Marlow <simonmar@microsoft.com>**20060824094615
435 These are subsumed by the new regex-base, regex-posix and regex-compat
436 packages.
437]
438[explicitly tag Data.ByteString rules with the FPS prefix.
439Don Stewart <dons@cse.unsw.edu.au>**20060824041326]
440[Add spec rules for sections in Data.ByteString
441Don Stewart <dons@cse.unsw.edu.au>**20060824012611]
442[Sync Data.ByteString with current stable branch, 0.7
443Don Stewart <dons@cse.unsw.edu.au>**20060823143338]
444[add notes about why copyFile doesn't remove the target
445Simon Marlow <simonmar@microsoft.com>**20060823095059]
446[copyFile: try removing the target file before opening it for writing
447Simon Marlow <simonmar@microsoft.com>*-20060822121909]
448[copyFile: try removing the target file before opening it for writing
449Simon Marlow <simonmar@microsoft.com>**20060822121909]
450[add alternative functors and extra instances
451Ross Paterson <ross@soi.city.ac.uk>**20060821152151
452 
453 * Alternative class, for functors with a monoid
454 * instances for Const
455 * instances for arrows
456]
457[generate Haddock docs on all platforms
458Simon Marlow <simonmar@microsoft.com>**20060821131612]
459[remove extra comma from import
460Ross Paterson <ross@soi.city.ac.uk>**20060819173954]
461[fix docs for withC(A)StringLen
462Ross Paterson <ross@soi.city.ac.uk>**20060818170328]
463[use Haskell'98 compliant indentation in do blocks
464Malcolm.Wallace@cs.york.ac.uk**20060818130810]
465[use correct names of IOArray operations for nhc98
466Malcolm.Wallace@cs.york.ac.uk**20060818130714]
467[add mapMaybe and mapEither, plus WithKey variants
468Ross Paterson <ross@soi.city.ac.uk>**20060817235041]
469[remove Text.Html from nhc98 build
470Malcolm.Wallace@cs.york.ac.uk**20060817135502]
471[eliminate more HOST_OS tests
472Ross Paterson <ross@soi.city.ac.uk>**20060815190609]
473[Hugs only: disable unused process primitives
474Ross Paterson <ross@soi.city.ac.uk>**20060813184435
475 
476 These were the cause of Hugs bug #30, I think, and weren't used by Hugs anyway.
477]
478[markup fix to Data.HashTable
479Ross Paterson <ross@soi.city.ac.uk>**20060812103835]
480[revert removal of ghcconfig.h from package.conf.in
481Ross Paterson <ross@soi.city.ac.uk>**20060812082702
482 
483 as it's preprocessed with -undef (pointed out by Esa Ilari Vuokko)
484]
485[fix Data.HashTable for non-GHC
486Ross Paterson <ross@soi.city.ac.uk>**20060811231521]
487[remove deprecated 'withObject'
488Simon Marlow <simonmar@microsoft.com>**20060811152350]
489[Jan-Willem Maessen's improved implementation of Data.HashTable
490Simon Marlow <simonmar@microsoft.com>**20060811151024
491 Rather than incrementally enlarging the hash table, this version
492 just does it in one go when the table gets too full.
493]
494[Warning police: Make some prototypes from the RTS known
495sven.panne@aedion.de**20060811144629]
496[Warning police: Removed useless catch-all clause
497sven.panne@aedion.de**20060811142208]
498[reduce dependency on ghcconfig.h
499Ross Paterson <ross@soi.city.ac.uk>**20060811124030
500 
501 The only remaining use is in cbits/dirUtils.h, which tests solaris2_HOST_OS
502 
503 (Also System.Info uses ghcplatform.h and several modules import MachDeps.h
504 to get SIZEOF_* and ALIGNMENT_* from ghcautoconf.h)
505]
506[(non-GHC only) track MArray interface change
507Ross Paterson <ross@soi.city.ac.uk>**20060810182902]
508[move Text.Html to a separate package
509Simon Marlow <simonmar@microsoft.com>**20060810113017]
510[bump version to 2.0
511Simon Marlow <simonmar@microsoft.com>**20060810112833]
512[Remove deprecated Data.FiniteMap and Data.Set interfaces
513Simon Marlow <simonmar@microsoft.com>**20060809153810]
514[move altzone test from ghc to base package
515Ross Paterson <ross@soi.city.ac.uk>**20060809124259]
516[remove unnecessary #include "ghcconfig.h"
517Ross Paterson <ross@soi.city.ac.uk>**20060809123812]
518[Change the API of MArray to allow resizable arrays
519Simon Marlow <simonmar@microsoft.com>**20060809100548
520 See #704
521 
522 The MArray class doesn't currently allow a mutable array to change its
523 size, because of the pure function
524 
525   bounds :: (HasBounds a, Ix i) => a i e -> (i,i)
526 
527 This patch removes the HasBounds class, and adds
528 
529   getBounds :: (MArray a e m, Ix i) => a i e -> m (i,i)
530 
531 to the MArray class, and
532 
533   bounds :: (IArray a e, Ix i) => a i e -> (i,i)
534 
535 to the IArray class.
536 
537 The reason that bounds had to be incorporated into the IArray class is
538 because I couldn't make DiffArray work without doing this.  DiffArray
539 acts as a layer converting an MArray into an IArray, and there was no
540 way (that I could find) to define an instance of HasBounds for
541 DiffArray.
542]
543[deprecate this module.
544Simon Marlow <simonmar@microsoft.com>**20060808100708]
545[add traceShow (see #474)
546Simon Marlow <simonmar@microsoft.com>**20060807155545]
547[remove spurious 'extern "C" {'
548Simon Marlow <simonmar@microsoft.com>**20060724160258]
549[Fix unsafeIndex for large ranges
550Simon Marlow <simonmar@microsoft.com>**20060721100225]
551[disambiguate uses of foldr for nhc98 to compile without errors
552Malcolm.Wallace@cs.york.ac.uk**20060711161614]
553[make Control.Monad.Instances compilable by nhc98
554Malcolm.Wallace@cs.york.ac.uk**20060711160941]
555[breakpointCond
556Lemmih <lemmih@gmail.com>**20060708055528]
557[UNDO: Merge "unrecognized long opt" fix from 6.4.2
558Simon Marlow <simonmar@microsoft.com>**20060705142537
559 This patch undid the previous patch, "RequireOrder: do not collect
560 unrecognised options after a non-opt".  I asked Sven to revert it, but
561 didn't get an answer.
562 
563 See bug #473.
564]
565[Avoid strictness in accumulator for unpackFoldr
566Don Stewart <dons@cse.unsw.edu.au>**20060703091806
567 
568 The seq on the accumulator for unpackFoldr will break in the presence of
569 head/build rewrite rules. The empty list case will be forced, producing
570 an exception. This is a known issue with seq and rewrite rules that we
571 just stumbled on to.
572 
573]
574[Disable unpack/build fusion
575Don Stewart <dons@cse.unsw.edu.au>**20060702083913
576 
577 unpack/build on bytestrings seems to trigger a bug when interacting with
578 head/build fusion in GHC.List. The bytestring001 testcase catches it.
579 
580 I'll investigate further, but best to disable this for now (its not
581 often used anyway).
582 
583 Note that with -frules-off or ghc 6.4.2 things are fine. It seems to
584 have emerged with the recent rules changes.
585 
586]
587[Import Data.ByteString.Lazy, improve ByteString Fusion, and resync with FPS head
588Don Stewart <dons@cse.unsw.edu.au>**20060701084345
589 
590 This patch imports the Data.ByteString.Lazy module, and its helpers,
591 providing a ByteString implemented as a lazy list of strict cache-sized
592 chunks. This type allows the usual lazy operations to be written on
593 bytestrings, including lazy IO, with much improved space and time over
594 the [Char] equivalents.
595 
596]
597[Wibble in docs for new ForeignPtr functionsn
598Don Stewart <dons@cse.unsw.edu.au>**20060609075924]
599[comments for Applicative and Traversable
600Ross Paterson <ross@soi.city.ac.uk>**20060622170436]
601[default to NoBuffering on Windows for a read/write text file
602Simon Marlow <simonmar@microsoft.com>**20060622144446
603 Fixes (works around) #679
604]
605[remove dead code
606Simon Marlow <simonmar@microsoft.com>**20060622144433]
607[clarify and expand docs
608Simon Marlow <simonmar@microsoft.com>**20060622112911]
609[Add minView and maxView to Map and Set
610jeanphilippe.bernardy@gmail.com**20060616180121]
611[add signature for registerDelay
612Ross Paterson <ross@soi.city.ac.uk>**20060614114456]
613[a few doc comments
614Ross Paterson <ross@soi.city.ac.uk>**20060613142704]
615[Optimised foreign pointer representation, for heap-allocated objects
616Don Stewart <dons@cse.unsw.edu.au>**20060608015011]
617[Add the inline function, and many comments
618simonpj@microsoft.com**20060605115814
619 
620 This commit adds the 'inline' function described in the
621 related patch in the compiler.
622 
623 I've also added comments about the 'lazy' function.
624 
625]
626[small intro to exceptions
627Ross Paterson <ross@soi.city.ac.uk>**20060525111604]
628[export breakpoint
629Simon Marlow <simonmar@microsoft.com>**20060525090456]
630[Merge in changes from fps head. Highlights:
631Don Stewart <dons@cse.unsw.edu.au>**20060525065012
632 
633     Wed May 24 15:49:38 EST 2006  sjanssen@cse.unl.edu
634       * instance Monoid ByteString
635 
636     Wed May 24 15:04:04 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
637       * Rearange export lists for the .Char8 modules
638 
639     Wed May 24 14:59:56 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
640       * Implement mapAccumL and reimplement mapIndexed using loopU
641 
642     Wed May 24 14:47:32 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
643       * Change the implementation of the unfoldr(N) functions.
644       Use a more compact implementation for unfoldrN and change it's behaviour
645       to only return Just in the case that it actually 'overflowed' the N, so
646       the boundary case of unfolding exactly N gives Nothing.
647       Implement unfoldr and Lazy.unfoldr in terms of unfoldrN. Use fibonacci
648       growth for the chunk size in unfoldr
649 
650     Wed May 24 08:32:29 EST 2006  sjanssen@cse.unl.edu
651       * Add unfoldr to ByteString and .Char8
652       A preliminary implementation of unfoldr.
653 
654     Wed May 24 01:39:41 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
655       * Reorder the export lists to better match the Data.List api
656 
657     Tue May 23 14:04:32 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
658       * pack{Byte,Char} -> singleton. As per fptools convention
659 
660     Tue May 23 14:00:51 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
661       * elemIndexLast -> elemIndexEnd
662 
663     Tue May 23 13:57:34 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
664       * In the search for a more orthogonal api, we kill breakFirst/breakLast,
665         which were of dubious value
666 
667     Tue May 23 12:24:09 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
668       * Abolish elems. It's name implied it was unpack, but its type didn't. it made no sense
669 
670     Tue May 23 10:42:09 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
671       * Minor doc tidyup. Use haddock markup better.
672 
673     Tue May 23 11:00:31 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
674       * Simplify the join() implementation. Spotted by Duncan.
675 
676]
677[add a way to ask the IO manager thread to exit
678Simon Marlow <simonmar@microsoft.com>**20060524121823]
679[Sync with FPS head, including the following patches:
680Don Stewart <dons@cse.unsw.edu.au>**20060520030436
681         
682     Thu May 18 15:45:46 EST 2006  sjanssen@cse.unl.edu
683       * Export unsafeTake and unsafeDrop
684 
685     Fri May 19 11:53:08 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
686       * Add foldl1'
687 
688     Fri May 19 13:41:24 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
689       * Add fuseable scanl, scanl1 + properties
690 
691     Fri May 19 18:20:40 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
692       * Spotted another chance to use unsafeTake,Drop (in groupBy)
693 
694     Thu May 18 09:24:25 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
695       * More effecient findIndexOrEnd based on the impl of findIndex
696 
697     Thu May 18 09:22:49 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
698       * Eliminate special case in findIndex since it's handled anyway.
699 
700     Thu May 18 09:19:08 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
701       * Add unsafeTake and unsafeDrop
702       These versions assume the n is in the bounds of the bytestring, saving
703       two comparison tests. Then use them in varous places where we think this
704       holds. These cases need double checking (and there are a few remaining
705       internal uses of take / drop that might be possible to convert).
706       Not exported for the moment.
707 
708     Tue May 16 23:15:11 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
709       * Handle n < 0 in drop and splitAt. Spotted by QC.
710 
711     Tue May 16 22:46:22 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
712       * Handle n <= 0 cases for unfoldr and replicate. Spotted by QC
713 
714     Tue May 16 21:34:11 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
715       * mapF -> map', filterF -> filter'
716 
717]
718[haddock fix
719Ross Paterson <ross@soi.city.ac.uk>**20060518154723]
720[simplify indexing in Data.Sequence
721Ross Paterson <ross@soi.city.ac.uk>**20060518154316]
722[Move Eq, Ord, Show instances for ThreadId to GHC.Conc
723Simon Marlow <simonmar@microsoft.com>**20060518113339
724 Eliminates orphans.
725]
726[Better error handling in the IO manager thread
727Simon Marlow <simonmar@microsoft.com>**20060518113303
728 In particular, handle EBADF just like rts/posix/Select.c, by waking up
729 all the waiting threads.  Other errors are thrown, instead of just
730 being ignored.
731]
732[#define _REENTRANT 1  (needed to get the right errno on some OSs)
733Simon Marlow <simonmar@microsoft.com>**20060518104151
734 Part 2 of the fix for threaded RTS problems on Solaris and possibly
735 *BSD (Part 1 was the same change in ghc/includes/Rts.h).
736]
737[copyCString* should be in IO. Spotted by Tomasz Zielonka
738Don Stewart <dons@cse.unsw.edu.au>**20060518012154]
739[add import Prelude to get dependencies right for Data/Fixed.hs
740Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20060517222044
741 Hopefully this fixes parallel builds.
742]
743[Fix negative index handling in splitAt, replicate and unfoldrN. Move mapF, filterF -> map', filter' while we're here
744Don Stewart <dons@cse.unsw.edu.au>**20060517020150]
745[Use our own realloc. Thus reduction functions (like filter) allocate on the Haskell heap. Makes around 10% difference.
746Don Stewart <dons@cse.unsw.edu.au>**20060513051736]
747[Last two CInt fixes for 64 bit, and bracket writeFile while we're here
748Don Stewart <dons@cse.unsw.edu.au>**20060512050750]
749[Some small optimisations, generalise the type of unfold
750Don Stewart <dons@cse.unsw.edu.au>**20060510043309
751 
752     Tue May  9 22:36:29 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
753       * Surely the error function should not be inlined.
754 
755     Tue May  9 22:35:53 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
756       * Reorder memory writes for better cache locality.
757 
758     Tue May  9 23:28:09 EST 2006  Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
759       * Generalise the type of unfoldrN
760       
761       The type of unfoldrN was overly constrained:
762       unfoldrN :: Int -> (Word8 -> Maybe (Word8, Word8)) -> Word8 -> ByteString
763       
764       if we compare that to unfoldr:
765       unfoldr :: (b -> Maybe (a, b)) -> b -> [a]
766       
767       So we can generalise unfoldrN to this type:
768       unfoldrN :: Int -> (a -> Maybe (Word8, a)) -> a -> ByteString
769       
770       and something similar for the .Char8 version. If people really do want to
771       use it a lot with Word8/Char then perhaps we should add a specialise pragma.
772 
773     Wed May 10 13:26:40 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
774       * Add foldl', and thus a fusion rule for length . {map,filter,fold},
775       that avoids creating an array at all if the end of the pipeline is a 'length' reduction
776 
777 **END OF DESCRIPTION***
778 
779 Place the long patch description above the ***END OF DESCRIPTION*** marker.
780 The first line of this file will be the patch name.
781 
782 
783 This patch contains the following changes:
784 
785 M ./Data/ByteString.hs -8 +38
786 M ./Data/ByteString/Char8.hs -6 +12
787]
788[portable implementation of WordPtr/IntPtr for non-GHC
789Ross Paterson <ross@soi.city.ac.uk>**20060510001826
790 
791 plus much tweaking of imports to avoid cycles
792]
793[add WordPtr and IntPtr types to Foreign.Ptr, with associated conversions
794Simon Marlow <simonmar@microsoft.com>**20060509092606
795 
796 As suggested by John Meacham. 
797 
798 I had to move the Show instance for Ptr into GHC.ForeignPtr to avoid
799 recursive dependencies.
800]
801[add CIntPtr, CUIntPtr, CIntMax, CUIntMax types
802Simon Marlow <simonmar@microsoft.com>**20060509092427]
803[add GHC.Dynamic
804Simon Marlow <simonmar@microsoft.com>**20060509082739]
805[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
806Don Stewart <dons@cse.unsw.edu.au>**20060509023425]
807[Make length a good consumer
808simonpj@microsoft**20060508142726
809 
810 Make length into a good consumer.  Fixes Trac bug #707.
811 
812 (Before length simply didn't use foldr.)
813 
814]
815[Trim imports
816simonpj@microsoft**20060508142557]
817[Make unsafePerformIO lazy
818simonpj@microsoft**20060508142507
819 
820 The stricteness analyser used to have a HACK which ensured that NOINLNE things
821 were not strictness-analysed.  The reason was unsafePerformIO. Left to itself,
822 the strictness analyser would discover this strictness for unsafePerformIO:
823        unsafePerformIO:  C(U(AV))
824 But then consider this sub-expression
825        unsafePerformIO (\s -> let r = f x in
826                               case writeIORef v r s of (# s1, _ #) ->
827                               (# s1, r #)
828 The strictness analyser will now find that r is sure to be eval'd,
829 and may then hoist it out.  This makes tests/lib/should_run/memo002
830 deadlock.
831 
832 Solving this by making all NOINLINE things have no strictness info is overkill.
833 In particular, it's overkill for runST, which is perfectly respectable.
834 Consider
835        f x = runST (return x)
836 This should be strict in x.
837 
838 So the new plan is to define unsafePerformIO using the 'lazy' combinator:
839 
840        unsafePerformIO (IO m) = lazy (case m realWorld# of (# _, r #) -> r)
841 
842 Remember, 'lazy' is a wired-in identity-function Id, of type a->a, which is
843 magically NON-STRICT, and is inlined after strictness analysis.  So
844 unsafePerformIO will look non-strict, and that's what we want.
845 
846]
847[Sync with FPS head.
848Don Stewart <dons@cse.unsw.edu.au>**20060508122322
849 
850 Mon May  8 10:40:14 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
851   * Fix all uses for Int that should be CInt or CSize in ffi imports.
852   Spotted by Igloo, dcoutts
853 
854 Mon May  8 16:09:41 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
855   * Import nicer loop/loop fusion rule from ghc-ndp
856 
857 Mon May  8 17:36:07 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
858   * Fix stack leak in split on > 60M strings
859 
860 Mon May  8 17:50:13 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
861   * Try same fix for stack overflow in elemIndices
862 
863]
864[Fix all uses for Int that should be CInt or CSize in ffi imports. Spotted by Duncan and Ian
865Don Stewart <dons@cse.unsw.edu.au>**20060508010311]
866[Fixed import list syntax
867Sven Panne <sven.panne@aedion.de>**20060507155008]
868[Faster filterF, filterNotByte
869dons@cse.unsw.edu.au**20060507042301]
870[Much faster find, findIndex. Hint from sjanssen
871dons@cse.unsw.edu.au**20060507033048]
872[Merge "unrecognized long opt" fix from 6.4.2
873Sven Panne <sven.panne@aedion.de>**20060506110519]
874[
875dons@cse.unsw.edu.au**20060506061029
876 Sat May  6 13:01:34 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
877   * Do loopU realloc on the Haskell heap. And add a really tough stress test
878 
879 Sat May  6 12:28:58 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
880   * Use simple, 3x faster concat. Plus QC properties. Suggested by sjanssen and dcoutts
881 
882 Sat May  6 15:59:31 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
883   * dcoutt's packByte bug squashed
884   
885   With inlinePerformIO, ghc head was compiling:
886   
887    packByte 255 `compare` packByte 127
888   
889   into roughly
890   
891    case mallocByteString 2 of
892        ForeignPtr f internals ->
893             case writeWord8OffAddr# f 0 255 of _ ->
894             case writeWord8OffAddr# f 0 127 of _ ->
895             case eqAddr# f f of
896                    False -> case compare (GHC.Prim.plusAddr# f 0)
897                                          (GHC.Prim.plusAddr# f 0)
898   
899   which is rather stunning. unsafePerformIO seems to prevent whatever
900   magic inlining was leading to this. Only affected the head.
901   
902]
903[Add array fusion versions of map, filter and foldl
904dons@cse.unsw.edu.au**20060505060858
905 
906 This patch adds fusable map, filter and foldl, using the array fusion
907 code for unlifted, flat arrays, from the Data Parallel Haskell branch,
908 after kind help from Roman Leshchinskiy,
909 
910 Pipelines of maps, filters and folds should now need to walk the
911 bytestring once only, and intermediate bytestrings won't be constructed.
912 
913]
914[fix for non-GHC
915Ross Paterson <ross@soi.city.ac.uk>**20060504093044]
916[use bracket in appendFile (like writeFile)
917Ross Paterson <ross@soi.city.ac.uk>**20060504091528]
918[writeFile: close the file on error
919Simon Marlow <simonmar@microsoft.com>**20060504084505
920 Suggested by Ross Paterson, via Neil Mitchell
921 
922]
923[Sync with FPS head
924dons@cse.unsw.edu.au**20060503105259
925 
926 This patch brings Data.ByteString into sync with the FPS head.
927 The most significant of which is the new Haskell counting sort.
928 
929 Changes:
930 
931 Sun Apr 30 18:16:29 EST 2006  sjanssen@cse.unl.edu
932   * Fix foldr1 in Data.ByteString and Data.ByteString.Char8
933 
934 Mon May  1 11:51:16 EST 2006  Don Stewart <dons@cse.unsw.edu.au>
935   * Add group and groupBy. Suggested by conversation between sjanssen and petekaz on #haskell
936 
937 Mon May  1 16:42:04 EST 2006  sjanssen@cse.unl.edu
938   * Fix groupBy to match Data.List.groupBy.
939 
940 Wed May  3 15:01:07 EST 2006  sjanssen@cse.unl.edu
941   * Migrate to counting sort.
942   
943   Data.ByteString.sort used C's qsort(), which is O(n log n).  The new algorithm
944   is O(n), and is faster for strings larger than approximately thirty bytes.  We
945   also reduce our dependency on cbits!
946 
947]
948[improve performance of Integer->String conversion
949Simon Marlow <simonmar@microsoft.com>**20060503113306
950 See
951  http://www.haskell.org//pipermail/libraries/2006-April/005227.html
952 
953 Submitted by: bertram.felgenhauer@googlemail.com
954 
955 
956]
957[inline withMVar, modifyMVar, modifyMVar_
958Simon Marlow <simonmar@microsoft.com>**20060503111152]
959[Fix string truncating in hGetLine -- it was a pasto from Simon's code
960Simon Marlow <simonmar@microsoft.com>**20060503103504
961 (from Don Stewart)
962]
963[Merge in Data.ByteString head. Fixes ByteString+cbits in hugs
964Don Stewart <dons@cse.unsw.edu.au>**20060429040733]
965[Import Data.ByteString from fps 0.5.
966Don Stewart <dons@cse.unsw.edu.au>**20060428130718
967 Fast, packed byte vectors, providing a better PackedString.
968 
969]
970[fix previous patch
971Ross Paterson <ross@soi.city.ac.uk>**20060501154847]
972[fixes for non-GHC
973Ross Paterson <ross@soi.city.ac.uk>**20060501144322]
974[fix imports for mingw32 && !GHC
975Ross Paterson <ross@soi.city.ac.uk>**20060427163248]
976[RequireOrder: do not collect unrecognised options after a non-opt
977Simon Marlow <simonmar@microsoft.com>**20060426121110
978 The documentation for RequireOrder says "no option processing after
979 first non-option", so it doesn't seem right that we should process the
980 rest of the arguments to collect the unrecognised ones.  Presumably
981 the client wants to know about the unrecognised options up to the
982 first non-option, and will be using a different option parser for the
983 rest of the command line.
984 
985 eg. before:
986 
987 Prelude System.Console.GetOpt> getOpt' RequireOrder [] ["bar","--foo"]
988 ([],["bar","--foo"],["--foo"],[])
989 
990 after:
991 
992 Prelude System.Console.GetOpt> getOpt' RequireOrder [] ["bar","--foo"]
993 ([],["bar","--foo"],[],[])
994]
995[fix for Haddock 0.7
996Ashley Yakeley <ashley@semantic.org>**20060426072521]
997[add Data.Fixed module
998Ashley Yakeley <ashley@semantic.org>**20060425071853]
999[add instances
1000Ross Paterson <ross@soi.city.ac.uk>**20060424102146]
1001[add superclasses to Applicative and Traversable
1002Ross Paterson <ross@soi.city.ac.uk>**20060411144734
1003 
1004 Functor is now a superclass of Applicative, and Functor and Foldable
1005 are now superclasses of Traversable.  The new hierarchy makes clear the
1006 inclusions between the classes, but means more work in defining instances.
1007 Default definitions are provided to help.
1008]
1009[add Functor and Monad instances for Prelude types
1010Ross Paterson <ross@soi.city.ac.uk>**20060410111443]
1011[GHC.Base.breakpoint
1012Lemmih <lemmih@gmail.com>**20060407125827]
1013[Track the GHC source tree reorganisation
1014Simon Marlow <simonmar@microsoft.com>**20060407041631]
1015[in the show instance for Exception, print the type of dynamic exceptions
1016Simon Marlow <simonmar@microsoft.com>**20060406112444
1017 Unfortunately this requires some recursve module hackery to get at
1018 the show instance for Typeable.
1019]
1020[implement ForeignEnvPtr, newForeignPtrEnv, addForeignPtrEnv for GHC
1021Simon Marlow <simonmar@microsoft.com>**20060405155448]
1022[add  forkOnIO :: Int -> IO () -> IO ThreadId
1023Simon Marlow <simonmar@microsoft.com>**20060327135018]
1024[Rework previous: not a gcc bug after all
1025Simon Marlow <simonmar@microsoft.com>**20060323161229
1026 It turns out that we were relying on behaviour that is undefined in C,
1027 and undefined behaviour in C means "the compiler can do whatever the
1028 hell it likes with your entire program".  So avoid that.
1029]
1030[work around a gcc 4.1.0 codegen bug in -O2 by forcing -O1 for GHC.Show
1031Simon Marlow <simonmar@microsoft.com>**20060323134514
1032 See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26824
1033]
1034[commit mysteriously missing parts of "runIOFastExit" patch
1035Simon Marlow <simonmar@microsoft.com>**20060321101535]
1036[add runIOFastExit :: IO a -> IO a
1037Simon Marlow <simonmar@microsoft.com>**20060320124333
1038 Similar to runIO, but calls stg_exit() directly to exit, rather than
1039 shutdownHaskellAndExit().  Needed for running GHCi in the test suite.
1040]
1041[Fix a broken invariant
1042Simon Marlow <simonmar@microsoft.com>**20060316134151
1043 Patch from #694,  for the problem "empty is an identity for <> and $$" is
1044 currently broken by eg. isEmpty (empty<>empty)"
1045]
1046[Add unsafeSTToIO :: ST s a -> IO a
1047Simon Marlow <simonmar@microsoft.com>**20060315160232
1048 Implementation for Hugs is missing, but should be easy.  We need this
1049 for the forthcoming nested data parallelism implementation.
1050]
1051[Added 'alter'
1052jeanphilippe.bernardy@gmail.com**20060315143539
1053 Added 'alter :: (Maybe a -> Maybe a) -> k -> Map k a -> Map k a' to IntMap and Map
1054 This addresses ticket #665
1055]
1056[deprecate FunctorM in favour of Foldable and Traversable
1057Ross Paterson <ross@soi.city.ac.uk>**20060315092942
1058 as discussed on the libraries list.
1059]
1060[Simplify Eq, Ord, and Show instances for UArray
1061Simon Marlow <simonmar@microsoft.com>**20060313142701
1062 The Eq, Ord, and Show instances of UArray were written out longhand
1063 with one instance per element type.  It is possible to condense these
1064 into a single instance for each class, at the expense of using more
1065 extensions (non-std context on instance declaration).
1066 
1067 Suggestion by: Frederik Eaton <frederik@ofb.net>
1068 
1069]
1070[Oops typo in intSet notMember
1071jeanphilippe.bernardy@gmail.com**20060311224713]
1072[IntMap lookup now returns monad instead of Maybe.
1073jeanphilippe.bernardy@gmail.com**20060311224502]
1074[Added notMember to Data.IntSet and Data.IntMap
1075jeanphilippe.bernardy@gmail.com**20060311085221]
1076[add Data.Set.notMember and Data.Map.notMember
1077John Meacham <john@repetae.net>**20060309191806]
1078[addToClockTime: handle picoseconds properly
1079Simon Marlow <simonmar@microsoft.com>**20060310114532
1080 fixes #588
1081]
1082[make head/build rule apply to all types, not just Bool.
1083John Meacham <john@repetae.net>**20060303045753]
1084[Avoid overflow when normalising clock times
1085Ian Lynagh <igloo@earth.li>**20060210144638]
1086[Years have 365 days, not 30*365
1087Ian Lynagh <igloo@earth.li>**20060210142853]
1088[declare blkcmp() static
1089Simon Marlow <simonmar@microsoft.com>**20060223134317]
1090[typo in comment in Foldable class
1091Ross Paterson <ross@soi.city.ac.uk>**20060209004901]
1092[simplify fmap
1093Ross Paterson <ross@soi.city.ac.uk>**20060206095048]
1094[update ref in comment
1095Ross Paterson <ross@soi.city.ac.uk>**20060206095139]
1096[Give -foverlapping-instances to Data.Typeable
1097simonpj@microsoft**20060206133439
1098 
1099 For some time, GHC has made -fallow-overlapping-instances "sticky":
1100 any instance in a module compiled with -fallow-overlapping-instances
1101 can overlap when imported, regardless of whether the importing module
1102 allows overlap.  (If there is an overlap, both instances must come from
1103 modules thus compiled.)
1104 
1105 Instances in Data.Typeable might well want to be overlapped, so this
1106 commit adds the flag to Data.Typeable (with an explanatory comment)
1107 
1108 
1109]
1110[Add -fno-bang-patterns to modules using both bang and glasgow-exts
1111simonpj@microsoft.com**20060203175759]
1112[When splitting a bucket, keep the contents in the same order
1113Simon Marlow <simonmar@microsoft.com>**20060201130427
1114 To retain the property that multiple inserts shadow each other
1115 (see ticket #661, test hash001)
1116]
1117[add foldr/build optimisation for take and replicate
1118Simon Marlow <simonmar@microsoft.com>**20060126164603
1119 This allows take to be deforested, and improves performance of
1120 replicate and replicateM/replicateM_.  We have a separate problem that
1121 means expressions involving [n..m] aren't being completely optimised
1122 because eftIntFB isn't being inlined but otherwise the results look
1123 good. 
1124 
1125 Sadly this has invalidated a number of the nofib benchmarks which were
1126 erroneously using take to duplicate work in a misguided attempt to
1127 lengthen their runtimes (ToDo).
1128]
1129[Generate PrimopWrappers.hs with Haddock docs
1130Simon Marlow <simonmar@microsoft.com>**20060124131121
1131 Patch originally from Dinko Tenev <dinko.tenev@gmail.com>, modified
1132 to add log message by me.
1133]
1134[[project @ 2006-01-19 14:47:15 by ross]
1135ross**20060119144715
1136 backport warning avoidance from Haddock
1137]
1138[[project @ 2006-01-18 11:45:47 by malcolm]
1139malcolm**20060118114547
1140 Fix import of Ix for nhc98.
1141]
1142[[project @ 2006-01-17 09:38:38 by ross]
1143ross**20060117093838
1144 add Ix instance for GeneralCategory.
1145]
1146[TAG Initial conversion from CVS complete
1147John Goerzen <jgoerzen@complete.org>**20060112154126]
1148Patch bundle hash:
1149bf901929d277c3756843d609f608a674142acefe