Claus -- cafe5 is pretty much where it's at.  You're right, the proggy
was used as the bug finder, actually at cafe3, still using ByteString.

It would be useful to have a really tiny data source - no more than 100 entries per Map should be sufficient to confirm or reject hunches about potential leaks by profiling. As it stands, my poor old laptop with a 32bit GHC won't be much use with your sample data, and now that the GHC bug is fixed, the size of the samples would only hide the interesting aspects (from a profiling perspective).

Having translated it from Clojure to Haskell to OCaml,

Translating quickly between strict-by-default and non-strict-by-default
languages is always a warning sign: not only is it unlikely to make
best use of each language's strengths, but typical patterns in one
class of languages simply don't translate directly into the other.

I'm now debugging the logic and perhaps the conceptual data structures. Then better maps will be tried.

No matter what Maps you try, if they are strict in keys and non-strict in values, translating code from strict language
needs careful inspection. Most of the higher-order functions
in Maps have issues here (eg, repeated use of insertWith
is going to build up unevaluated thunks, and so on). I'm
not even sure how well binary fares with nested IntMaps
(not to mention the occasional "too few bytes" error depending on strictness or package version - it would be useful to have a cabal file, or a README listing the versions of libraries you used).

To binary package users/authors: is there a typed version of binary (that is, one that records and checks a representation of the serialized type before actual (de-)serialization)? It
would be nice to have such a type check, even though it
wouldn't protect against missing bytes or strictness changes.
Then a giant shootout will ensue, now that
Haskell finishes!  I'll post here when it's ready.

Just make sure Haskell isn't running with brakes on!-)

Claus



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to