Ticket #1005: log_shift_ops_new.patch

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