Eclectic paper: dh-ocaml

In my day job as a researcher, I mostly publish papers along the lines of my main research interests (theorem proving, web technologies, formal methods applied to software engineering, ...). Some time though, I just come up to some eclectic idea, not strictly related to my job, that I feel like cooking up as a paper to be reviewed by some scientific venue.

It happened some weeks ago with dh-ocaml, the package implementing the new dependency scheme for OCaml-related packages in Debian. It took us (as in Debian OCaml maintainers) several years to get it right and satisfactory for maintainers, users, release team, etc.

The problem which dh-ocaml addresses is that, differently than C and other system-level languages, OCaml breaks ABI compatibility very often, due to the need of ensuring type safety across different libraries at link time. Other similar strongly typed languages, such as Haskell, behave similarly. This is at odds with the implicit assumption of forward-compatibility (unless otherwise "stated", e.g. with soname changes) that is relied upon by versioned dependencies in distributions like Debian.

This discussion, the analysis of possible solutions, and the description of the solution we have actually implemented in dh-ocaml (called ABI approximation) turned out to be interesting for the French functional programming academic community: the paper on dh-ocaml has been accepted at forthcoming JFLA 2010.

It is no rocket science :-) , but people maintaining programs and libraries written in languages with concerns similar to OCaml's (e.g. Haskell, hello nomeata) might want to have a look.