Blog
The OCaml Planet RSS
Articles and videos contributed by both experts, companies and passionate developers from the OCaml community. From in-depth technical articles, project highlights, community news, or insights into Open Source projects, the OCaml Planet RSS feed aggregator has something for everyone.
Source
Keyword
Year
Author
Want your Blog Posts or Videos to Show Here?
To contribute a blog post, or add your RSS feed, check out the Contributing Guide on GitHub.
Andrew Hunter makes code really, really fast. Before joining Jane Street, he worked for seven years at Google on multithreaded architecture, and was a tech lead for tcmalloc, Google’s world-class scalable malloc implementation. In this episode, Andrew and Ron discuss how, paradoxically, it can be easier to optimize systems at hyperscale because of the impact that even miniscule changes can have. Finding performance wins in trading systems—which operate at a smaller scale, but which have bursty, low-latency workloads—is often trickier. Andrew explains how he approaches the problem, including his favorite profiling techniques and tools for visualizing traces; the unique challenges of optimizing OCaml versus C++; and when you should and shouldn’t care about nanoseconds. They also touch on the joys of musical theater, and how to pass an interview when you’re sleep-deprived. You can find the transcript for this episode along with links to related work at https://signalsandthreads.com/performance-engineering-on-hard-mode/.
Richard Eisenberg is one of the core maintainers of Haskell. He recently joined Jane Street’s Tools and Compilers team, where he hacks on the OCaml compiler. He and Ron discuss the powerful language feature that got him into PL design in the first place—dependent types—and its role in a world where AIs can (somewhat) competently write your code for you. They also discuss the differences between Haskell and OCaml; the perils of trying to make a language that works for everybody; and how best a company like Jane Street can collaborate with the open source community. You can find the transcript for this episode and all past episodes at signalsandthreads.com.
Stephen Dolan works on Jane Street’s Tools and Compilers team where he focuses on the OCaml compiler. In this episode, Stephen and Ron take a trip down memory lane, discussing how to manage computer memory efficiently and safely. They consider trade-offs between reference counting and garbage collection, the surprising gains achieved by prefetching, and how new language features like local allocation and unboxed types could give OCaml users more control over their memory. Some links to topics that came up in the discussion: Stephen’s command-line JSON processor, jq: https://github.com/stedolan/jq Stephen’s Cambridge dissertation, “Algebraic Subtyping”: https://www.cs.tufts.edu/~nr/cs257/archive/stephen-dolan/thesis.pdf and a protoype implementation of mlsub: https://github.com/stedolan/mlsub, a language based on those ideas. A post from Stephen on how to benchmark different memory allocators: https://blog.janestreet.com/memory-allocator-showdown/ A Jane Street tech talk on “Unboxed Types for OCaml”: https://www.janestreet.com/tech-talks/unboxed-types-for-ocaml/ An RFC in the OCaml RFC repo: https://github.com/ocaml/RFCs/blob/881b220adc1f358ab15f7743d5cd764222ab7d30/rfcs/unboxed-types.md A paper from Stephen and KC Sivaramakrishnan (https://kcsrk.info/) called “Bounding Data Races in Space and Time”, which is all about a new and better memory model for Multicore OCaml: https://kcsrk.info/papers/pldi18-memory.pdf Another paper describing the design of OCaml’s multicore GC: https://arxiv.org/pdf/2004.11663.pdf The Rust RFC for Higher-ranked trait bounds: https://rust-lang.github.io/rfcs/0387-higher-ranked-trait-bounds.html You can find the transcript for this episode and all past episodes at signalsandthreads.com.
Stephen Dolan works on Jane Street’s Tools and Compilers team where he focuses on the OCaml compiler. In this episode, Stephen and Ron take a trip down memory lane, discussing how to manage computer memory efficiently and safely. They consider trade-offs between reference counting and garbage collection, the surprising gains achieved by prefetching, and how new language features like local allocation and unboxed types could give OCaml users more control over their memory. Some links to topics that came up in the discussion: Stephen’s command-line JSON processor, jq: https://github.com/stedolan/jq Stephen’s Cambridge dissertation, “Algebraic Subtyping”: https://www.cs.tufts.edu/~nr/cs257/archive/stephen-dolan/thesis.pdf and a protoype implementation of mlsub: https://github.com/stedolan/mlsub, a language based on those ideas. A post from Stephen on how to benchmark different memory allocators: https://blog.janestreet.com/memory-allocator-showdown/ A Jane Street tech talk on “Unboxed Types for OCaml”: https://www.janestreet.com/tech-talks/unboxed-types-for-ocaml/ An RFC in the OCaml RFC repo: https://github.com/ocaml/RFCs/blob/881b220adc1f358ab15f7743d5cd764222ab7d30/rfcs/unboxed-types.md A paper from Stephen and KC Sivaramakrishnan (https://kcsrk.info/) called “Bounding Data Races in Space and Time”, which is all about a new and better memory model for Multicore OCaml: https://kcsrk.info/papers/pldi18-memory.pdf Another paper describing the design of OCaml’s multicore GC: https://arxiv.org/pdf/2004.11663.pdf The Rust RFC for Higher-ranked trait bounds: https://rust-lang.github.io/rfcs/0387-higher-ranked-trait-bounds.html You can find the transcript for this episode and all past episodes at signalsandthreads.com.
Anil Madhavapeddy is an academic, author, engineer, entrepreneur, and OCaml aficionado. In this episode, Anil and Ron consider the evolving role of operating systems, security on the internet, and the pending arrival (at last!) of OCaml 5.0. They also discuss using Raspberry Pis to fight climate change; the programming inspiration found in British pubs and on Moroccan beaches; and the time Anil went to a party, got drunk, and woke up with a job working on the Mars Polar Lander. Some links to topics that came up in the discussion: The latest edition of Real World OCaml: https://dev.realworldocaml.org/ The MirageOS library operating system: https://mirage.io/ Docker for Mac and Windows , which is based on MirageOS: https://www.docker.com/blog/docker-unikernels-open-source/ Cambridge University’s OCaml Labs: https://ocamllabs.io/ NASA’s Mars Polar Lander The Xen Project (https://xenproject.org/), which made extensive use of OCaml (https://ocaml.org/meetings/ocaml/2012/abstracts/oud2012-paper14.pdf) in their control stack. The Multicore branch of OCaml: https://github.com/ocaml-multicore/ocaml-Multicoremulticore monthly updates: https://discuss.ocaml.org/tag/multicore-monthly You can find the transcript for this episode and all past episodes at signalsandthreads.com.
Anil Madhavapeddy is an academic, author, engineer, entrepreneur, and OCaml aficionado. In this episode, Anil and Ron consider the evolving role of operating systems, security on the internet, and the pending arrival (at last!) of OCaml 5.0. They also discuss using Raspberry Pis to fight climate change; the programming inspiration found in British pubs and on Moroccan beaches; and the time Anil went to a party, got drunk, and woke up with a job working on the Mars Polar Lander. Some links to topics that came up in the discussion: The latest edition of Real World OCaml: https://dev.realworldocaml.org/ The MirageOS library operating system: https://mirage.io/ Docker for Mac and Windows , which is based on MirageOS: https://www.docker.com/blog/docker-unikernels-open-source/ Cambridge University’s OCaml Labs: https://ocamllabs.io/ NASA’s Mars Polar Lander The Xen Project (https://xenproject.org/), which made extensive use of OCaml (https://ocaml.org/meetings/ocaml/2012/abstracts/oud2012-paper14.pdf) in their control stack. The Multicore branch of OCaml: https://github.com/ocaml-multicore/ocaml-Multicoremulticore monthly updates: https://discuss.ocaml.org/tag/multicore-monthly You can find the transcript for this episode and all past episodes at signalsandthreads.com.
Ty Overby is a programmer in Jane Street’s web platform group where he works on Bonsai, our OCaml library for building interactive browser-based UI. In this episode, Ty and Ron consider the functional approach to building user interfaces. They also discuss Ty’s programming roots in Neopets, what development features they crave on the web, the unfairly maligned CSS, and why Excel is “arguably the greatest programming language ever developed.” Some links to topics that came up in the discussion: Jane Street’s Bonsai library: https://opensource.janestreet.com/bonsai/ The 3D design system OpenSCAD: https://openscad.org/ Matt Keeter’s libfive design tools: https://libfive.com/ Try .NET in-browser repl: https://try.dot.net/ Jane Street’s Incr_dom library: https://opensource.janestreet.com/incr_dom/ The Elm Architecture “pattern for architecting interactive programs”: https://guide.elm-lang.org/architecture/ React JavaScript library: https://reactjs.org/ The Houdini proposal: https://houdini.glitch.me/ Svelte UI toolkit: https://svelte.dev/ You can find the transcript for this episode and all past episodes at signalsandthreads.com.
Ty Overby is a programmer in Jane Street’s web platform group where he works on Bonsai, our OCaml library for building interactive browser-based UI. In this episode, Ty and Ron consider the functional approach to building user interfaces. They also discuss Ty’s programming roots in Neopets, what development features they crave on the web, the unfairly maligned CSS, and why Excel is “arguably the greatest programming language ever developed.” Some links to topics that came up in the discussion: Jane Street’s Bonsai library: https://opensource.janestreet.com/bonsai/ The 3D design system OpenSCAD: https://openscad.org/ Matt Keeter’s libfive design tools: https://libfive.com/ Try .NET in-browser repl: https://try.dot.net/ Jane Street’s Incr_dom library: https://opensource.janestreet.com/incr_dom/ The Elm Architecture “pattern for architecting interactive programs”: https://guide.elm-lang.org/architecture/ React JavaScript library: https://reactjs.org/ The Houdini proposal: https://houdini.glitch.me/ Svelte UI toolkit: https://svelte.dev/ You can find the transcript for this episode and all past episodes at signalsandthreads.com.
James Somers is Jane Street’s writer-in-residence, splitting his time between English and OCaml, and helping to push forward all sorts of efforts around knowledge-sharing at Jane Street. In this episode, James and Ron talk about the role of technical writing in an organization like Jane Street, and how engineering software relates to editing prose. Some links to topics that came up in the discussion: mdx, the modified Markdown format that supports executing OCaml code blocks: https://github.com/realworldocaml/mdx More on the 4 types of technical writing that James references: https://documentation.divio.com/introduction/ Donald Knuth’s original book on Literate Programming: https://en.wikipedia.org/wiki/Literate_programming More on John McPhee’s use of KEDIT: https://www.newyorker.com/magazine/2013/01/14/structure Peter Seibel’s Coders at Work: https://codersatwork.com/ David Goodsell’s The Machinery of Life: https://books.google.com/books/about/The_Machinery_of_Life.html?id=0nV-mIqPa5gC Scott Huler’s Defining the Wind: https://books.google.com/books?id=oqGUXPWbieMC Some of James’s writing on our tech blog: https://blog.janestreet.com/author/jsomers/ You can find the transcript for this episode and all past episodes at signalsandthreads.com.
James Somers is Jane Street’s writer-in-residence, splitting his time between English and OCaml, and helping to push forward all sorts of efforts around knowledge-sharing at Jane Street. In this episode, James and Ron talk about the role of technical writing in an organization like Jane Street, and how engineering software relates to editing prose. Some links to topics that came up in the discussion: mdx, the modified Markdown format that supports executing OCaml code blocks: https://github.com/realworldocaml/mdx More on the 4 types of technical writing that James references: https://documentation.divio.com/introduction/ Donald Knuth’s original book on Literate Programming: https://en.wikipedia.org/wiki/Literate_programming More on John McPhee’s use of KEDIT: https://www.newyorker.com/magazine/2013/01/14/structure Peter Seibel’s Coders at Work: https://codersatwork.com/ David Goodsell’s The Machinery of Life: https://books.google.com/books/about/The_Machinery_of_Life.html?id=0nV-mIqPa5gC Scott Huler’s Defining the Wind: https://books.google.com/books?id=oqGUXPWbieMC Some of James’s writing on our tech blog: https://blog.janestreet.com/author/jsomers/ You can find the transcript for this episode and all past episodes at signalsandthreads.com.





