@davidcrawshaw: While the industry is pouring resources into programs without GC (rust), I think the Jane Street OCaml folks have it fi…
Summary
David Crawshaw argues that while the industry invests in Rust's lack of GC, Jane Street's OCaml with OxCaml demonstrates that GC is beneficial for most code paths, with only 1% needing performance optimization.
View Cached Full Text
Cached at: 05/16/26, 11:24 PM
While the industry is pouring resources into programs without GC (rust), I think the Jane Street OCaml folks have it figured out with OxCaml.
Almost all your code paths are cold and GC is net positive. 1% of your code is performance sensitive. Don’t create GC pressure there.
Similar Articles
Meta Garbage Collection: Using OCaml's GC to GC Rust
Soteria Rust, a symbolic execution tool for verifying Rust programs, uses OCaml's garbage collector to manage memory for its Tree Borrows aliasing model, achieving a 10x speedup and reducing time complexity from quadratic to linear.
Data race freedom in OxCaml
OxCaml, Jane Street's fork of the OCaml compiler, introduces compile-time guarantees against data races, enabling sequential consistency without runtime overhead. The blog post explains the new mode axes and their implications for parallel programming.
The feature in OxCaml that more languages should steal - The Consensus
OxCaml, Jane Street's superset of OCaml, introduces a `[@zero_alloc]` annotation that forces the compiler to refuse to build if any function in the call tree allocates on the heap, shifting allocation detection from runtime profiling to compile-time enforcement.
Why ML/OCaml are good for writing compilers (1998)
This article from 1998 argues that ML and OCaml are excellent for writing compilers due to features like garbage collection, tail recursion optimization, and algebraic data types with pattern matching, which simplify handling complex compiler data structures.
A line-by-line translation of the OCaml runtime from C to Rust
The project details a line-by-line translation of the OCaml runtime from C to Rust, aiming to improve safety and performance.