Tag
This blog post explains how to enable reproducible deployments of MirageOS unikernels using Nix, integrating functional programming for safer and more efficient network applications like DNS servers.
Lucas Ma has explored using effects in the OCaml compiler to create an on-demand compiler service, allowing for more flexible compilation by inverting control over file lookups and managing global state snapshots.
Bonsai is Jane Street's open-source UI library for building reactive web applications in OCaml, featuring composable state, incremental rendering, and a templating language.
This article explains how to encode guarded methods in OCaml using type equality witnesses, allowing constraints on the receiver only for specific methods rather than the whole class.
In an interview, OCaml creator Xavier Leroy discusses the design advantages of OCaml, comparisons with Rust and JavaScript, type inference principles, and the learning difficulty of functional programming.
Incremental is a library from Jane Street for building efficient, self-adjusting computations that react to input changes, useful for spreadsheets, GUI views, and derived data synchronization.
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.
Xavier Leroy, creator of OCaml, discusses OCaml's features compared to Rust and JavaScript, formal verification, type inference, and the impact of LLMs on programming in a podcast interview.
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.
This article explores the importance of syntax design in programming languages, arguing that syntax should accurately reflect the language's computational model and mental model, rather than being arbitrarily cobbled together for familiarity or conciseness. The author analyzes the syntax design of OCaml, Lisp/Clojure, and JavaScript, and introduces his own language Saul, emphasizing uniformity and semantic consistency.
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.
A tutorial on type inference covering the Damas-Hindley-Milner type system, unification, and related concepts, with OCaml code examples.
KC Sivaramakrishnan announces an interactive OCaml course book for NPTEL that runs code directly in the browser, eliminating the need for installation and server maintenance.
The project details a line-by-line translation of the OCaml runtime from C to Rust, aiming to improve safety and performance.
A practical guide introducing the Dune build system for OCaml, covering project setup, building libraries and executables, and testing.
Jane Street engineers introduce strace-ui, an interactive terminal UI for strace that simplifies syscall debugging with filtering, PID tracking, and man page integration, and highlight the TUI renaissance enabled by their Bonsai framework.
Jane Street announces Incremental, a library for building self-adjusting computations that efficiently update when inputs change, applicable to online algorithms, GUI construction, and configurable computations.
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.
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.