[Haskell-cafe] ANN: list-tries-0.0 - first release
Matti Niemenmaa
matti.niemenmaa+news at iki.fi
Tue Apr 21 16:54:00 EDT 2009
Announcing the first public release of list-tries! Version 0.0, woo!
list-tries is a library providing implementations of finite sets and
maps for list keys using tries, both simple and of the Patricia kind.
The data types are parametrized over the map type they use internally to
store the child nodes: this allows extending them to support different
kinds of key types or increasing efficiency.
To get at it, head over either to Hackage or my homepage:
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/list-tries
http://iki.fi/matti.niemenmaa/list-tries/
It's Hugs-compliant to boot! I haven't tested UHC, but I suspect it'd
work as well. I've tested compilation with both GHC 6.10 releases; 6.8
should also be fine.
Being at version 0.0, I'm happy to get feedback, although I'm fairly
busy with school for the foreseeable future so I can't promise I'll act
on it very quickly. In particular, the API might be a bit unobvious due
to the map type parametrization (and a bit cluttered due to the strict
versions of just about every operation), but I hope it's not much
trouble.
I've actually had this release ready for a while now. I originally
planned to coincide its release with that of GHC 6.10.2 since it needs a
new version of 'containers' to build (see "Warning", below), but of
course 'containers' wasn't updated since the changes that list-tries
requires are API changes. I figured I might as well wait until 6.12.1,
but with some recent buzz regarding tries I decided to just shove it out
now, even as a crippled version due to the lack of a new enough
'containers'.
Warning
=======
In order to run properly, list-tries needs a version of 'containers'
that hasn't yet been released. I incorporated a little hack which makes
it compile even with 0.2, but some calls will fail by calling 'error':
30 of my 1014 test cases do so.
If you have the latest Darcs version of 'containers' (which you probably
do if you're using the GHC HEAD, for instance), make sure it's
registered as a 0.3 version and then ask Cabal to build list-tries with
the '-fcontainers03' flag. That way you'll get a fully-featured version
of list-tries!
Unfinished
==========
I had hoped to get some benchmarks out before I released list-tries, to
see if there's still much work to be done with respect to performance
(and if there's any point in releasing it), but I didn't find the time.
Data.ListTrie.Base.Map is largely undocumented, but it's not meant to be
used much anyway so that shouldn't matter a great deal.
More information about the Haskell-Cafe
mailing list