[commit: packages/containers] changelog-foldtree, cleaned_bugfix394, master, merge-doc-target, merge-fixes-5.9, merge-restrict-fix-5.8, revert-408-bugfix_394: Add `alterF` for Data.Map (7d03d76)
git at git.haskell.org
git at git.haskell.org
Mon Apr 17 21:40:52 UTC 2017
- Previous message: [commit: packages/containers] changelog-foldtree, cleaned_bugfix394, master, merge-doc-target, merge-fixes-5.9, merge-restrict-fix-5.8, revert-408-bugfix_394: Implement lens-compatible `at` function (73ba96a)
- Next message: [commit: packages/containers] changelog-foldtree, cleaned_bugfix394, master, merge-doc-target, merge-fixes-5.9, merge-restrict-fix-5.8, revert-408-bugfix_394: Merge pull request #234 from treeowl/alterF (ced8e95)
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Repository : ssh://git@git.haskell.org/containers
On branches: changelog-foldtree,cleaned_bugfix394,master,merge-doc-target,merge-fixes-5.9,merge-restrict-fix-5.8,revert-408-bugfix_394
Link : http://git.haskell.org/packages/containers.git/commitdiff/7d03d76b7647dc731da2e75dcdd45f6c2e667682
>---------------------------------------------------------------
commit 7d03d76b7647dc731da2e75dcdd45f6c2e667682
Author: David Feuer <David.Feuer at gmail.com>
Date: Mon May 2 14:29:36 2016 -0400
Add `alterF` for Data.Map
Use a bit queue to implement `alterF` for `Data.Map`. This is fairly
competitive with the simple implementation in `Control.Lens.At`
even with `Int` keys. For keys that are more expensive to compare,
it should be substantially better. In case of extremely large maps
that would overflow the bit queue, this falls back to a slower,
Yoneda-based, implementation. This code is disabled when the word
size is at least 61, as maps with nearly a quadrillion entries seem
somewhat unlikely.
Add rules to specialize to `Const` and `Identity` functors.
Add QuickCheck properties to supplement the unit tests, including
ones that should trigger the rewrite rules and ones that should not.
Remove some more pre-7.0 junk.
>---------------------------------------------------------------
7d03d76b7647dc731da2e75dcdd45f6c2e667682
.gitignore | 5 +
Data/Map/Base.hs | 308 ++++++++++++++++++++++++++++++++++++++++---
Data/Map/Lazy.hs | 2 +-
Data/Map/Strict.hs | 72 +++++++++-
Data/Sequence.hs | 6 +-
Data/Utils/BitQueue.hs | 130 ++++++++++++++++++
Data/Utils/BitUtil.hs | 19 ++-
benchmarks/Map.hs | 108 ++++++++-------
changelog.md | 8 +-
containers.cabal | 38 +++---
tests/bitqueue-properties.hs | 33 +++++
tests/map-properties.hs | 46 ++++++-
12 files changed, 684 insertions(+), 91 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 7d03d76b7647dc731da2e75dcdd45f6c2e667682
- Previous message: [commit: packages/containers] changelog-foldtree, cleaned_bugfix394, master, merge-doc-target, merge-fixes-5.9, merge-restrict-fix-5.8, revert-408-bugfix_394: Implement lens-compatible `at` function (73ba96a)
- Next message: [commit: packages/containers] changelog-foldtree, cleaned_bugfix394, master, merge-doc-target, merge-fixes-5.9, merge-restrict-fix-5.8, revert-408-bugfix_394: Merge pull request #234 from treeowl/alterF (ced8e95)
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the ghc-commits
mailing list