Pugs - Fast Mutable Collection Types.
|Reported by:||Audrey Tang||Owned by:||none|
|Priority:||not yet rated||Keywords:||Pugs|
|Cc:||Difficulty:||2 people, 2 weeks|
Description (last modified by )
Currently, Haskell lacks production-grade bindings for mutable data structures, and has to rely on immutable data structures for storage.
For example, a sparse mutable array may be emulated by (IORef IntMap), and a mutable set may be emulated by (IORef Set). However, these data structures have to be reconstructed almost from scratch for each insertion/deletions, resulting in low performance.
The Pugs project implements Perl 6 on top of Haskell; we would need fast implementations for mutable sparse array, mutable ordered mappings, mutable resizable byte-buffers, as well as mutable string-indexed Hash tables.
One approach is to write a binding to Judy (judy.sf.net) or other C-based libraries, and present an API conformant to the existing Haskell libraries (e.g. MArray).
The result of this effort will be reusable to other Haskell projects as well.
- Audrey Tang (audreyt) <audreyt@…>
- Caio Marcelo (cmarcelo) <cmarcelo@…>
- David Buchman (daveman) <david.buchman@…>