This file collects lots of comments, suggestions, ideas, etc. Need some cleanup, some stuff is outdated. ----- - Use a configure script to find Judy instead of just adding -lJudy ? - Tests right now depend on the installed packaged, not on the compiled one, but would be nicer to have tests working with the build version in dist/. - CollectionsM: complete the subset of MapM and uncomment/complete CollectionM. - See if needGC hack can be improved. It seems its eating CPU time. - First RBR test: 1/3 running time when using MapL (via Map2). Not sure if the results are correct (they seem to be). Check with Ketil about usage of Map2, if its enough. [Note: RBR is a bioinformatics project by Ketil Malde] - Names names names - HashIO is too similar to Hash. Stringable is strange and not totally true, maybe CStringable? - Other missing malloc error checking - Tests that stress MiniGC (w/ two maps at same time would be nice too) - swapMaps using peek/poke seems to confuse GHC, maybe going for IORef as a container for the maps - Data.HashTable - Implementations specific to unboxed values like Int and Double: Int seems to be ok now, but Double and other unboxable still need to check - Discuss APIs -- Unbounded arrays: see Bulat work on this. - Refeable vs. HashIO => unify? - Document this work. - Create a LICENSE file (I think BSD3) and put license info in the necessary files. Mention that John Meacham as original author (how?). # THINGS TO CONSIDER nice mail from Bulat: http://www.haskell.org/pipermail/haskell-cafe/2006-May/015915.html # API SUGGESTIONS Bulat: "Judy implements _mutable_ array/map/set, so closest interfaces for your lib will be MArray and HashTable. DiffArray is a general way to make IArray (interface) on the base of MArray (interface), that is usable with any datastructure implementing MArray interface" # STABLEPTR POSSIBLE OVERHEAD StablePtr is used to store references of Haskell objects in external datastructures. Maybe GHC isn't very efficient dealing with a lot of StablePtrs, if that's true three obvious ways are: - GHC 6.5/6 is better at this. - Turn GHC better at this (wow!). - Find another way to do it (without StablePtr). # REEVALUATE BENEFITS? > all Haskell software that uses common data structures like Maps and > Arrays would benefit from a faster implementation Bulat says "sorry, i don't think so. especially for Arrays ;)" Judy is useful for applications for (very-)sparse Arrays, which is Pugs' case.