Following our exploits with Microsoft's F# programming language, which inherits a concurrent garbage collector from their excellent common-language run-time (CLR) implementation, we have been wondering if OCaml would ever acquire a concurrent GC of its own. Concurrent garbage collection is tremendously useful in a wide variety of circumstances and is of increasing importance as the world transitions to multicore CPUs for desktop computers. Compared to OCaml, concurrency in F# makes it much easier to spawn interactive visualizations from the top-level, write high performance parallel numerical codes and keep GUI applications fluid.
The developers of OCaml at INRIA in France, led by Xavier Leroy, have long since given up on developing their own concurrent GC for OCaml, famously stating in 2002 that developing their own concurrent GC was "Too complex" and "too hard to debug".
Fortunately, Jane St. Capital (one of the largest industrial users of OCaml) have chosen to fund a "multicore" summer project that aims to provide a basic concurrent garbage collector implementation for OCaml. The team from the Université Pierre et Marie Curie, led by Emmanuel Chailloux, intend to complete this project during the summer of 2008.
We have already written to team to suggest that they might also make their run-time compatible with the excellent LLVM project because this would make it much easier for open source developers to reuse this exciting technology.