| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Do loopU realloc on the Haskell heap. And add a really tough stress test
Sat May 6 12:28:58 EST 2006 Don Stewart <dons@cse.unsw.edu.au>
* Use simple, 3x faster concat. Plus QC properties. Suggested by sjanssen and dcoutts
Sat May 6 15:59:31 EST 2006 Don Stewart <dons@cse.unsw.edu.au>
* dcoutt's packByte bug squashed
With inlinePerformIO, ghc head was compiling:
packByte 255 `compare` packByte 127
into roughly
case mallocByteString 2 of
ForeignPtr f internals ->
case writeWord8OffAddr# f 0 255 of _ ->
case writeWord8OffAddr# f 0 127 of _ ->
case eqAddr# f f of
False -> case compare (GHC.Prim.plusAddr# f 0)
(GHC.Prim.plusAddr# f 0)
which is rather stunning. unsafePerformIO seems to prevent whatever
magic inlining was leading to this. Only affected the head.
|
|
|
|
|
|
|
|
|
|
| |
This patch adds fusable map, filter and foldl, using the array fusion
code for unlifted, flat arrays, from the Data Parallel Haskell branch,
after kind help from Roman Leshchinskiy,
Pipelines of maps, filters and folds should now need to walk the
bytestring once only, and intermediate bytestrings won't be constructed.
|
| |
|
| |
|
|
|
|
|
| |
Suggested by Ross Paterson, via Neil Mitchell
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch brings Data.ByteString into sync with the FPS head.
The most significant of which is the new Haskell counting sort.
Changes:
Sun Apr 30 18:16:29 EST 2006 sjanssen@cse.unl.edu
* Fix foldr1 in Data.ByteString and Data.ByteString.Char8
Mon May 1 11:51:16 EST 2006 Don Stewart <dons@cse.unsw.edu.au>
* Add group and groupBy. Suggested by conversation between sjanssen and petekaz on #haskell
Mon May 1 16:42:04 EST 2006 sjanssen@cse.unl.edu
* Fix groupBy to match Data.List.groupBy.
Wed May 3 15:01:07 EST 2006 sjanssen@cse.unl.edu
* Migrate to counting sort.
Data.ByteString.sort used C's qsort(), which is O(n log n). The new algorithm
is O(n), and is faster for strings larger than approximately thirty bytes. We
also reduce our dependency on cbits!
|
|
|
|
|
|
|
|
|
| |
See
http://www.haskell.org//pipermail/libraries/2006-April/005227.html
Submitted by: bertram.felgenhauer@googlemail.com
|
| |
|
|
|
|
| |
(from Don Stewart)
|
| |
|
|
|
|
|
| |
Fast, packed byte vectors, providing a better PackedString.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The documentation for RequireOrder says "no option processing after
first non-option", so it doesn't seem right that we should process the
rest of the arguments to collect the unrecognised ones. Presumably
the client wants to know about the unrecognised options up to the
first non-option, and will be using a different option parser for the
rest of the command line.
eg. before:
Prelude System.Console.GetOpt> getOpt' RequireOrder [] ["bar","--foo"]
([],["bar","--foo"],["--foo"],[])
after:
Prelude System.Console.GetOpt> getOpt' RequireOrder [] ["bar","--foo"]
([],["bar","--foo"],[],[])
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Functor is now a superclass of Applicative, and Functor and Foldable
are now superclasses of Traversable. The new hierarchy makes clear the
inclusions between the classes, but means more work in defining instances.
Default definitions are provided to help.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Unfortunately this requires some recursve module hackery to get at
the show instance for Typeable.
|
| |
|
| |
|
|
|
|
|
|
| |
It turns out that we were relying on behaviour that is undefined in C,
and undefined behaviour in C means "the compiler can do whatever the
hell it likes with your entire program". So avoid that.
|
|
|
|
| |
See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26824
|
| |
|
|
|
|
|
| |
Similar to runIO, but calls stg_exit() directly to exit, rather than
shutdownHaskellAndExit(). Needed for running GHCi in the test suite.
|
|
|
|
|
| |
Patch from #694, for the problem "empty is an identity for <> and $$" is
currently broken by eg. isEmpty (empty<>empty)"
|
|
|
|
|
| |
Implementation for Hugs is missing, but should be easy. We need this
for the forthcoming nested data parallelism implementation.
|
|
|
|
|
| |
Added 'alter :: (Maybe a -> Maybe a) -> k -> Map k a -> Map k a' to IntMap and Map
This addresses ticket #665
|
|
|
|
| |
as discussed on the libraries list.
|
|
|
|
|
|
|
|
|
|
| |
The Eq, Ord, and Show instances of UArray were written out longhand
with one instance per element type. It is possible to condense these
into a single instance for each class, at the expense of using more
extensions (non-std context on instance declaration).
Suggestion by: Frederik Eaton <frederik@ofb.net>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
fixes #588
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For some time, GHC has made -fallow-overlapping-instances "sticky":
any instance in a module compiled with -fallow-overlapping-instances
can overlap when imported, regardless of whether the importing module
allows overlap. (If there is an overlap, both instances must come from
modules thus compiled.)
Instances in Data.Typeable might well want to be overlapped, so this
commit adds the flag to Data.Typeable (with an explanatory comment)
|
| |
|
|
|
|
|
| |
To retain the property that multiple inserts shadow each other
(see ticket #661, test hash001)
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows take to be deforested, and improves performance of
replicate and replicateM/replicateM_. We have a separate problem that
means expressions involving [n..m] aren't being completely optimised
because eftIntFB isn't being inlined but otherwise the results look
good.
Sadly this has invalidated a number of the nofib benchmarks which were
erroneously using take to duplicate work in a misguided attempt to
lengthen their runtimes (ToDo).
|