Ticket #4379: add_Random_instances_Data.Int_Data.Word_Foreign.C.Types.dpatch

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