Skip to content

Proposal: Improve Data.IntSet

The Data.Map, Data.Set and Data.!IntSet has gone through some enhancements in #4277 (closed), #4279 (closed), #4280 (closed) #4311 (closed) and #4312 (closed).

This patch performs these tasks on Data.!IntSet:

  • Split the tests from Data.!IntSet module to tests/intset-properties.hs
  • Add a Criterion-based benchmark for Data.!IntSet
  • Use worker/wrapper transformation on member, insert, insertR and delete.

The performance is nearly unmodified, the INLINE pragmas were not added, as the code is already specialized to Ints (which is not the case int Data.Map and Data.Set, where inlining can make specific Ord instances to be used).

The patches are in http://fox.auryn.cz/darcs/containers repository, as well as attached here.

Trac metadata
Trac field Value
Version 6.12.3
Type Task
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information