# ocaml

Published articles for ocaml.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Creator of OCaml: Functional Programming, Formal Verification, Programming Languages | Xavier Leroy

DevFeed: [Creator of OCaml: Functional Programming, Formal Verification, Programming Languages | Xavier Leroy](<https://devfeed.tech/articles/creator-of-ocaml-functional-programming-formal-verification-programming-languages-xavier-leroy-18088.md>)

Original publisher: [Read original article](<https://www.developing.dev/p/creator-of-ocaml-functional-programming>)

Author: Ryan Peterman

Published: 2026-07-20T13:05:11Z

Content type: article

Language: en

Sources: [The Developing Dev](<https://devfeed.tech/sources/the-developing-dev.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Formal verification](<https://devfeed.tech/topics/formal-verification.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>)

Tags: [formal-verification](<https://devfeed.tech/tags/formal-verification.md>), [functional](<https://devfeed.tech/tags/functional.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

A podcast transcript featuring Xavier Leroy discusses what distinguishes OCaml, including its functional and systems programming capabilities, type inference, control structures, predictable execution costs, and low-latency garbage collection. The conversation also covers formal verification through the CompCert project and comparisons with languages such as Rust and JavaScript.

### Source excerpt

Professor Leroy (Creator of OCaml) is incredibly knowledgeable.

## Using OxCaml to implement type-safe reference counting between OCaml and Python

DevFeed: [Using OxCaml to implement type-safe reference counting between OCaml and Python](<https://devfeed.tech/articles/using-oxcaml-to-implement-type-safe-reference-counting-between-ocaml-and-python-20199.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/oxcaml-typesafe-reference-counting-python/>)

Author: Nicolas Trangez

Published: 2026-06-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Python](<https://devfeed.tech/topics/python.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Data analysis](<https://devfeed.tech/topics/data-analysis.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [gc](<https://devfeed.tech/tags/gc.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [parallelism](<https://devfeed.tech/tags/parallelism.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

Jane Street describes using OxCaml extensions to implement type-safe reference counting between OCaml and Python. The approach addresses delayed deallocation when objects cross the language boundary, including for large data frames and scarce resources such as GPU memory.

### Source excerpt

Jane Street is known for being an OCaml shop, but for years now Python has been our second major programming language, acting as the primary tool for data analysis and (especially importantly these days) machine learning. Most of our traders and researchers think and write in Python, even as the majority of our infrastructure is written in OCaml.

## strace-ui, Bonsai\_term, and the TUI renaissance

DevFeed: [strace-ui, Bonsai\_term, and the TUI renaissance](<https://devfeed.tech/articles/strace-ui-bonsai-term-and-the-tui-renaissance-20213.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/strace-ui-bonsai-term-and-the-tui-renaissance/>)

Author: James Somers

Published: 2026-05-26T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Text-based user interface](<https://devfeed.tech/topics/tui.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [debug](<https://devfeed.tech/topics/debug.md>), [tracing](<https://devfeed.tech/topics/tracing.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Bonsai](<https://devfeed.tech/topics/bonsai-rx.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [debugging](<https://devfeed.tech/tags/debugging.md>), [framework](<https://devfeed.tech/tags/framework.md>), [functional](<https://devfeed.tech/tags/functional.md>), [library](<https://devfeed.tech/tags/library.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [threads](<https://devfeed.tech/tags/threads.md>), [trace](<https://devfeed.tech/tags/trace.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

The article introduces strace-ui, an interactive terminal UI that makes strace output easier to inspect by formatting data, assigning short identifiers to processes and threads, and supporting interactive filtering and navigation. It also discusses how OCaml and the Bonsai framework have made interactive terminal UI development more practical.

### Source excerpt

We've always found strace useful but somewhat hard to work with. Its output is often inscrutable, it's hard to follow subprocesses or threads, and if you want to filter syscalls you have to rerun the trace with a flag for each one. What you want in debugging is a tool for exploring, refining, etc., but strace can make this difficult.

## Fun with Algebraic Effects - from Toy Examples to Hardcaml Simulations

DevFeed: [Fun with Algebraic Effects - from Toy Examples to Hardcaml Simulations](<https://devfeed.tech/articles/fun-with-algebraic-effects-from-toy-examples-to-hardcaml-simulations-20168.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/fun-with-algebraic-effects-hardcaml/>)

Author: Fu Yong Quah

Published: 2026-01-06T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Library](<https://devfeed.tech/topics/library.md>), [Simulation](<https://devfeed.tech/topics/simulation.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [code](<https://devfeed.tech/tags/code.md>), [concurrent-programming](<https://devfeed.tech/tags/concurrent-programming.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [library](<https://devfeed.tech/tags/library.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>)

### AI overview

The article describes porting Jane Street's Hardcaml_step_testbench library from monads to algebraic effects in OCaml 5. It explains algebraic effects, compares them with monads, and demonstrates how to use them with the Handled_effect library for Hardcaml simulations.

### Source excerpt

I recently ported the Hardcaml_step_testbench library, one of the libraries that we use at Jane Street for Hardcaml simulations, from using monads to using algebraic effects, a new OCaml 5 feature. This blog post walks through what algebraic effects are, why you should consider using them in lieu of monads, and how to actually work with them using the Handled_effect library. One thing I've come to believe is that most of what can be done with monads can be done with algebraic effects in a much more elegant way.

## Jane Street's 2025 Intern Projects: SQL Evaluation, OCaml Torch Bindings, and Cross-Process Memory Management

DevFeed: [Jane Street's 2025 Intern Projects: SQL Evaluation, OCaml Torch Bindings, and Cross-Process Memory Management](<https://devfeed.tech/articles/what-the-interns-have-wrought-2025-edition-20240.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/wrought-2025/>)

Author: Yaron Minsky

Published: 2025-08-27T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [torch](<https://devfeed.tech/topics/torch.md>), [Process](<https://devfeed.tech/topics/process.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [internship](<https://devfeed.tech/tags/internship.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [process](<https://devfeed.tech/tags/process.md>), [sql](<https://devfeed.tech/tags/sql.md>), [systems](<https://devfeed.tech/tags/systems.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

Jane Street's 2025 internship roundup highlights projects involving a more efficient evaluator for its internal JSQL dialect, OCaml torch bindings designed for safe and deterministic tensor cleanup, and ref-counted memory management across processes in trading systems. It also briefly describes other intern work in testing, build systems, CSS tooling, OCaml, data warehousing, and simulation.

### Source excerpt

Yet again, we're at the end of our internship season, and so it's time to summarize what the interns were up to!

## Introducing OxCaml

DevFeed: [Introducing OxCaml](<https://devfeed.tech/articles/introducing-oxcaml-20182.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/introducing-oxcaml/>)

Author: Leo White

Published: 2025-06-14T00:00:00Z

Content type: release

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [language](<https://devfeed.tech/tags/language.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>)

### AI overview

Jane Street announces OxCaml, its branch of the OCaml compiler. OxCaml provides open-source language extensions intended to improve OCaml for performance engineering, with a new website offering installation instructions, tutorials, and documentation.

### Source excerpt

At Jane Street, we've been actively making improvements to OCaml for a long time. Over the last few years, we've started to build some fairly ambitious extensions to the language. Our aim is to make OCaml a great language for performance engineering. This work has always been open source, and our hope is to contribute these extensions to upstream OCaml, but we're still iterating on their design as we gain experience using them. As such, we think the time has come to make it easier for people to use our extensions in the outside world. That starts with giving our branch of the compiler the three most important components of a modern programming language: a cool name, a cute logo and a snazzy website. So, without further ado, we are excited to announce OxCaml.

## Advent of Hardcaml

DevFeed: [Advent of Hardcaml](<https://devfeed.tech/articles/advent-of-hardcaml-20150.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/advent-of-hardcaml-2024/>)

Author: Anish Singhani

Published: 2025-03-22T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Advent of Code](<https://devfeed.tech/topics/advent-of-code.md>), [fpga](<https://devfeed.tech/topics/fpga.md>), [Reason](<https://devfeed.tech/topics/reason.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Simulation](<https://devfeed.tech/topics/simulation.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [advent-of-code](<https://devfeed.tech/tags/advent-of-code.md>), [algorithms](<https://devfeed.tech/tags/algorithms.md>), [fpga](<https://devfeed.tech/tags/fpga.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [programming](<https://devfeed.tech/tags/programming.md>), [simulation](<https://devfeed.tech/tags/simulation.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

A Jane Street developer describes implementing Advent of Code 2024 puzzles on an FPGA using Hardcaml, an open-source hardware description language embedded in OCaml. The article discusses adapting algorithms to FPGA constraints and using Hardcaml for simulation, RTL compilation, hardware design, and synthesis.

### Source excerpt

Update: For the 2025 Advent of Code, we ran an Advent of FPGA Challenge where we invited the community to implement their own synthesizable solutions to this year's puzzles! We got over 200 submissions spanning a wide variety of HDL languages and hardware platforms, check out our favorite solutions in the results blog post

## How we accidentally built a better build system for OCaml

DevFeed: [How we accidentally built a better build system for OCaml](<https://devfeed.tech/articles/how-we-accidentally-built-a-better-build-system-for-ocaml-20179.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/how-we-accidentally-built-a-better-build-system-for-ocaml-index/>)

Author: Andrey Mokhov

Published: 2025-01-24T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>)

Tags: [build-system](<https://devfeed.tech/tags/build-system.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [portable](<https://devfeed.tech/tags/portable.md>), [speed](<https://devfeed.tech/tags/speed.md>)

### AI overview

Jane Street describes how dissatisfaction with OMake led to Jenga, then to the simpler cross-platform Jbuilder tool. Although Jbuilder was initially intended as a compatibility shim, its speed, portability, and hackability made it popular and led to its evolution into Dune.

### Source excerpt

A "build system" is one of the most important tools in a developer's toolbox. Roughly, it figures out how to create runnable programs from a bunch of different source files by calling out to the compiler, setting up and executing test suites, and so on. Because you interact with it daily, above all it has to be fast - but it also has to be flexible.

## Developer education at Jane Street

DevFeed: [Developer education at Jane Street](<https://devfeed.tech/articles/developer-education-at-jane-street-20164.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/developer-education-at-jane-street-index/>)

Author: Aaron Bauer

Published: 2024-10-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Bootcamp](<https://devfeed.tech/topics/bootcamp.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [dev-tools](<https://devfeed.tech/topics/dev-tools.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>)

Tags: [code-review](<https://devfeed.tech/tags/code-review.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [education](<https://devfeed.tech/tags/education.md>), [mentorship](<https://devfeed.tech/tags/mentorship.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Jane Street describes how it educates developers through team apprenticeship, mentorship, code review, collaboration, OCaml Bootcamp, and later specialized teach-ins. The classes also spread knowledge about internal systems, tools, and engineering practices.

### Source excerpt

Like most places, Jane Street largely teaches developers through a kind of apprenticeship model. A team matching process tries to thoughtfully match new devs to a team that suits them; and from there carefully chosen projects, one-on-one mentorship, code review, and close collaboration with people "on the row" - teammates sitting near you - does most of the rest.

## ICFP 2024

DevFeed: [ICFP 2024](<https://devfeed.tech/articles/icfp-2024-20181.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/icfp-2024-index/>)

Author: Nailen Matschke

Published: 2024-08-29T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [conference](<https://devfeed.tech/tags/conference.md>), [functional](<https://devfeed.tech/tags/functional.md>), [language](<https://devfeed.tech/tags/language.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [programming](<https://devfeed.tech/tags/programming.md>), [talks](<https://devfeed.tech/tags/talks.md>)

### AI overview

Jane Street previews its participation in ICFP 2024 and discusses OCaml work on type-system features, code generation, register allocation, inlining, memory management, and parallel programming. It also describes plans to upstream compiler extensions and provide a bleeding-edge opam repository for testing them.

### Source excerpt

It's no secret that Jane Street is an active participant in the programming language community, and we're excited to be attending ICFP 2024, the International Conference on Functional Programming, in Milan next week! Most members of our OCaml Language team will be there, and as usual, we look forward to sharing our work with the wider community. Please see below for a full list of papers and talks that Jane Street folk are involved in. Note that a lot of these are collaborations of one kind or another with researchers outside of Jane Street.

## What the interns have wrought, 2024 edition

DevFeed: [What the interns have wrought, 2024 edition](<https://devfeed.tech/articles/what-the-interns-have-wrought-2024-edition-20237.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/what-the-interns-have-wrought-2024-edition-index/>)

Author: Yaron Minsky

Published: 2024-08-26T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [data](<https://devfeed.tech/topics/data.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [build times](<https://devfeed.tech/topics/build-times.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [build-times](<https://devfeed.tech/tags/build-times.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [data](<https://devfeed.tech/tags/data.md>), [incremental](<https://devfeed.tech/tags/incremental.md>), [internship](<https://devfeed.tech/tags/internship.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [programming](<https://devfeed.tech/tags/programming.md>), [rust](<https://devfeed.tech/tags/rust.md>)

### AI overview

Jane Street's 2024 internship review highlights projects involving an OCaml dataframe library, a faster but less compact binary-serialization protocol, and improvements to a time-travel debugger. It also explains why the company is exploring OCaml alternatives to Polars for safer parallelism and better build performance.

### Source excerpt

We're once again at the end of our internship season, and it's time do our annual review of what the interns achieved while they were here.

## Projects Completed by Jane Street's Software Engineering Interns in 2023

DevFeed: [Projects Completed by Jane Street's Software Engineering Interns in 2023](<https://devfeed.tech/articles/what-the-interns-have-wrought-2023-edition-20236.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/what-the-interns-have-wrought-2023/>)

Author: Yaron Minsky

Published: 2023-09-12T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [tracing](<https://devfeed.tech/topics/tracing.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [concurrency](<https://devfeed.tech/tags/concurrency.md>), [dev](<https://devfeed.tech/tags/dev.md>), [internship](<https://devfeed.tech/tags/internship.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [programming](<https://devfeed.tech/tags/programming.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [tracing](<https://devfeed.tech/tags/tracing.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

Jane Street reviews selected projects completed by its 2023 interns, including an LTL-based query language for complex system-log events, an efficient tokenizer in OCaml, and concurrency support for tracing syntax.

### Source excerpt

We're once again at the end of our internship season, and it's my task to provide a few highlights of what the dev interns accomplished while they were here.

## Oxidizing OCaml: Data Race Freedom

DevFeed: [Oxidizing OCaml: Data Race Freedom](<https://devfeed.tech/articles/oxidizing-ocaml-data-race-freedom-20202.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/oxidizing-ocaml-parallelism/>)

Author: Max Slater

Published: 2023-09-01T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [data](<https://devfeed.tech/topics/data.md>), [async/await](<https://devfeed.tech/topics/async-await.md>), [Rust](<https://devfeed.tech/topics/rust.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [atomics](<https://devfeed.tech/tags/atomics.md>), [await](<https://devfeed.tech/tags/await.md>), [code](<https://devfeed.tech/tags/code.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [data](<https://devfeed.tech/tags/data.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [rust](<https://devfeed.tech/tags/rust.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>)

### AI overview

This final post in a series explains how Jane Street uses OCaml modes and capsules to design a statically data-race-free API for multicore OCaml. It discusses shared-memory parallelism, the risks of mutable data races, and approaches for safely handling shared mutability across domains.

### Source excerpt

OCaml with Jane Street extensions is available from our public opam repo. Only a slice of the features described in this series are currently implemented.

## Oxidizing OCaml: Rust-Style Ownership

DevFeed: [Oxidizing OCaml: Rust-Style Ownership](<https://devfeed.tech/articles/oxidizing-ocaml-rust-style-ownership-20201.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/oxidizing-ocaml-ownership/>)

Author: Max Slater

Published: 2023-06-21T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>)

Tags: [concurrency](<https://devfeed.tech/tags/concurrency.md>), [functional](<https://devfeed.tech/tags/functional.md>), [immutability](<https://devfeed.tech/tags/immutability.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [rust](<https://devfeed.tech/tags/rust.md>)

### AI overview

This article examines ownership modes in OCaml with Jane Street extensions. It explains how unique references can allow in-place updates while preserving an immutable interface, and discusses how uniqueness may support static prevention of data races in multicore OCaml.

### Source excerpt

OCaml with Jane Street extensions is available from our public opam repo. Only a slice of the features described in this series are currently implemented.

## Oxidizing OCaml: Locality

DevFeed: [Oxidizing OCaml: Locality](<https://devfeed.tech/articles/oxidizing-ocaml-locality-20200.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/oxidizing-ocaml-locality/>)

Author: Max Slater

Published: 2023-05-26T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [memory](<https://devfeed.tech/tags/memory.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [performance](<https://devfeed.tech/tags/performance.md>), [rust](<https://devfeed.tech/tags/rust.md>)

### AI overview

Jane Street describes extending OCaml with a system of modes that tracks properties such as locality and uniqueness. The goal is to support stack allocation, safer resource management, lower-allocation code, and statically guaranteed data-race freedom while preserving OCaml's convenience.

### Source excerpt

OCaml with Jane Street extensions is available from our public opam repo. Only a slice of the features described in this series are currently implemented.

## Random Things I Liked, Mar 2023

DevFeed: [Random Things I Liked, Mar 2023](<https://devfeed.tech/articles/random-things-i-liked-mar-2023-38431.md>)

Original publisher: [Read original article](<https://khmylov.com/2023/03/random-things-i-liked-mar-2023/>)

Author: Andrew Khmylov

Published: 2023-03-27T00:00:00Z

Content type: opinion

Language: en

Sources: [Despite the odds](<https://devfeed.tech/sources/despite-the-odds.md>)

Topics: [LLMs](<https://devfeed.tech/topics/llms.md>), [AsyncAPI Specification](<https://devfeed.tech/topics/asyncapi.md>), [diffusion-transformers](<https://devfeed.tech/topics/diffusion-transformers.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Prompt Engineering](<https://devfeed.tech/topics/prompt-engineering.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>)

Tags: [diffusion](<https://devfeed.tech/tags/diffusion.md>), [language-models](<https://devfeed.tech/tags/language-models.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [programming](<https://devfeed.tech/tags/programming.md>), [reasoning](<https://devfeed.tech/tags/reasoning.md>)

### AI overview

A personal roundup of developer topics and papers the author liked in March 2023, covering Automerge 2.0, AsyncAPI for event-based architecture, using external tools with large language models, diffusion-based image reconstruction from brain activity, effect handlers in OCaml, and prompt-based perspectives on LLM behavior.

### Source excerpt

Automerge 2.0 https://automerge.org/blog/automerge-2/ The complete rewrite of Automerge dropped right after discussing CRDTs optimizations the last time, addressing performance concerns. AsyncAPI https://www.asyncapi.com/docs It's like Swagger/OpenAPI, but for event-based architecture. I've been working with events and messages for quite a long time now, and tried some approaches to spec description, like Protocol Buffers, but it just didn't feel right. Too much hassle and not so much benefits. I'm eager to try this one though. LLMs + external tools = 🔥 As of today, large language models are trained on "static" data sets, they don't have a memory, and don't know about the world around them. However, if the only thing they do and do so extremely well is predicting next token, it's only natural to wonder "why can't we teach the model to predict some API call when it needs external data?". There have been a couple of papers on that topic: Toolformer: Language Models Can Teach Themselves to Use Tools ReAct: Synergizing Reasoning and Acting in Language Models Reading your mind with diffusion models I've already noticed multiple times that casual news headlines today sound exactly like futuristic imaginations from the original Deus Ex game, but this paper, "High-resolution image reconstruction with latent diffusion models from human brain activity", takes it to the next level. The research behind this has been going on for more than a decade, and the recent advances in computational capabilities and diffusion models accelerated the progress. Concurrent Programming with Effect Handlers https://github.com/ocaml-multicore/ocaml-effects-tutorial Every developer is familiar with exceptions. Algebraic effects take them to the next level of abstraction, and expose the manipulation of control flow as a first-class citizen. This is a nice write-up and a collection of examples of various effects implementations in OCaml. The Waluigi Effect https://www.lesswrong.com/posts/D7PumeYTDP

## Computations that differentiate, debug, and document themselves

DevFeed: [Computations that differentiate, debug, and document themselves](<https://devfeed.tech/articles/computations-that-differentiate-debug-and-document-themselves-20161.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/computations-that-differentiate-debug-and-document-themselves/>)

Author: Aditya Srinivasan

Published: 2022-11-17T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Optimization](<https://devfeed.tech/topics/optimization.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [LaTeX](<https://devfeed.tech/topics/latex.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [debug](<https://devfeed.tech/tags/debug.md>), [latex](<https://devfeed.tech/tags/latex.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

Jane Street describes a library for numerical computations that can evaluate values, automatically differentiate variables, inspect intermediate results for debugging, and generate LaTeX documentation. The library was designed for computations expressed naturally in OCaml and for the needs of Jane Street's production systems.

### Source excerpt

One of the problems we wrestle with at Jane Street is how to understand and manage the costs associated with the positions we hold: things like margin, financing costs, market risk, regulatory capital requirements, and so on. To that end, we've built systems that estimate these costs and propose ways to reduce them. Essentially, this is a numerical optimization problem.

## Research internships in our Tools and Compilers group

DevFeed: [Research internships in our Tools and Compilers group](<https://devfeed.tech/articles/research-internships-in-our-tools-and-compilers-group-20212.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/research-internships-tnc/>)

Author: Greta Yorsh

Published: 2022-03-04T00:00:00Z

Content type: release

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Programming Languages / Compilers](<https://devfeed.tech/topics/programming-languages-compilers.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [compilers](<https://devfeed.tech/tags/compilers.md>), [internships](<https://devfeed.tech/tags/internships.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [programming](<https://devfeed.tech/tags/programming.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

Jane Street announces research internships in its Tools and Compilers group for PhD students in programming languages, compilers, verification, and related areas. The article describes the group's work on OCaml, its compiler and toolchain, and possible research projects.

### Source excerpt

We are excited to announce research internships in our Tools and Compilers group.

## Magic-trace: Diagnosing tricky performance issues easily with Intel Processor Trace

DevFeed: [Magic-trace: Diagnosing tricky performance issues easily with Intel Processor Trace](<https://devfeed.tech/articles/magic-trace-diagnosing-tricky-performance-issues-easily-with-intel-processor-trace-20193.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/magic-trace/>)

Author: Tristan Hume

Published: 2022-01-11T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [tracing](<https://devfeed.tech/topics/tracing.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [flow](<https://devfeed.tech/tags/flow.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [intel](<https://devfeed.tech/tags/intel.md>), [latency](<https://devfeed.tech/tags/latency.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [performance](<https://devfeed.tech/tags/performance.md>), [processor](<https://devfeed.tech/tags/processor.md>), [trace](<https://devfeed.tech/tags/trace.md>), [tracing](<https://devfeed.tech/tags/tracing.md>), [visualization](<https://devfeed.tech/tags/visualization.md>)

### AI overview

Jane Street describes magic-trace, an open-source tool built on Intel Processor Trace. It captures roughly 10 milliseconds of execution leading up to a selected function call and visualizes the call stack on a timeline, helping diagnose fine-grained performance and latency issues that sampling profilers may miss.

### Source excerpt

Intel Processor Trace is a hardware technology that can record all program execution flow along with timing information accurate to around 30ns. As far as I can tell almost nobody uses it, seemingly because capturing the data is tricky and, without any visualization tools, you're forced to read enormous text dumps.

## Jane Street's 2021 Dev Intern Projects

DevFeed: [Jane Street's 2021 Dev Intern Projects](<https://devfeed.tech/articles/what-the-interns-have-wrought-2021-edition-20234.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/what-the-interns-have-wrought-2021/>)

Author: Yaron Minsky

Published: 2021-08-09T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Code](<https://devfeed.tech/topics/code.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [dev](<https://devfeed.tech/tags/dev.md>), [internship](<https://devfeed.tech/tags/internship.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>)

### AI overview

Jane Street's 2021 developer interns worked on projects involving syntax extensions, tools for exploring historical process information, and the Datafetcher library for testable data-processing jobs.

### Source excerpt

It's the end of another dev internship season, and this one marked something of a transition, since halfway through the season, NY-based interns were invited back to the recently reinvigorated office. Which means that many more of us got the chance to meet and hang out with the interns in person than we did last year. And hopefully the interns were able to get a better sense of Jane Street and how it operates.

## Growing the Hardcaml toolset

DevFeed: [Growing the Hardcaml toolset](<https://devfeed.tech/articles/growing-the-hardcaml-toolset-20172.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/growing-the-hardcaml-toolset-index/>)

Author: Andrew Ray

Published: 2020-12-01T00:00:00Z

Content type: release

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Library](<https://devfeed.tech/topics/library.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [fpga](<https://devfeed.tech/topics/fpga.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Simulation](<https://devfeed.tech/topics/simulation.md>), [Verilog](<https://devfeed.tech/topics/verilog.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [fpga](<https://devfeed.tech/tags/fpga.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [simulation](<https://devfeed.tech/tags/simulation.md>), [sorting](<https://devfeed.tech/tags/sorting.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Jane Street announces a broad set of new Hardcaml libraries, expanded documentation, and improved testing support. The release includes circuit designs, FPGA component bindings, verification tools, simulator backends, Verilog import, and additional simulation and hardware-design utilities.

### Source excerpt

I am pleased to announce that we have recently released a slew of new Hardcaml libraries!

## Finding memory leaks with Memtrace

DevFeed: [Finding memory leaks with Memtrace](<https://devfeed.tech/articles/finding-memory-leaks-with-memtrace-20166.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/finding-memory-leaks-with-memtrace/>)

Author: Luke Maurer

Published: 2020-10-06T00:00:00Z

Content type: release

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Library](<https://devfeed.tech/topics/library.md>), [Data visualization](<https://devfeed.tech/topics/data-visualization.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [data-visualization](<https://devfeed.tech/tags/data-visualization.md>), [library](<https://devfeed.tech/tags/library.md>), [memory-leaks](<https://devfeed.tech/tags/memory-leaks.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [production](<https://devfeed.tech/tags/production.md>), [profiling](<https://devfeed.tech/tags/profiling.md>)

### AI overview

Jane Street introduces Memtrace, an OCaml library and viewer for investigating memory and space leaks. It records sampled allocation events and their lifetimes, then presents visualizations and filters to help identify suspicious memory usage.

### Source excerpt

Memory issues can be hard to track down. A function that only allocates a few small objects can cause a space leak if it's called often enough and those objects are never collected. Even then, many objects are supposed to be long-lived. How can a tool, armed with data on allocations and their lifetimes, help sort out the expected from the suspicious?

## Using ASCII waveforms to test hardware designs

DevFeed: [Using ASCII waveforms to test hardware designs](<https://devfeed.tech/articles/using-ascii-waveforms-to-test-hardware-designs-20220.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/using-ascii-waveforms-to-test-hardware-designs/>)

Author: Andrew Ray

Published: 2020-06-01T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Hardware](<https://devfeed.tech/topics/hardware.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Simulation](<https://devfeed.tech/topics/simulation.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [simulator](<https://devfeed.tech/tags/simulator.md>), [software](<https://devfeed.tech/tags/software.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article explains how Jane Street uses expect tests with ASCII waveforms to test hardware designs. It describes Hardcaml, an OCaml-based hardware design environment with cycle-accurate simulation, and shows how waveform output can be captured as text for repeatable tests and diffs.

### Source excerpt

At Jane Street, an "expect test" is a test where you don't manually write the output you'd like to check your code against - instead, this output is captured automatically and inserted by a tool into the testing code itself. If further runs produce different output, the test fails, and you're presented with the diff.

## Using Python and OCaml in the same Jupyter notebook

DevFeed: [Using Python and OCaml in the same Jupyter notebook](<https://devfeed.tech/articles/using-python-and-ocaml-in-the-same-jupyter-notebook-20223.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/using-python-and-ocaml-in-the-same-jupyter-notebook/>)

Author: Laurent Mazare

Published: 2019-12-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Python](<https://devfeed.tech/topics/python.md>), [Jupyter Notebook](<https://devfeed.tech/topics/jupyter-notebook.md>), [jupyter](<https://devfeed.tech/topics/jupyter.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [NumPy](<https://devfeed.tech/topics/numpy.md>)

Tags: [jupyter](<https://devfeed.tech/tags/jupyter.md>), [jupyter-notebook](<https://devfeed.tech/tags/jupyter-notebook.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [modules](<https://devfeed.tech/tags/modules.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

A technical tutorial on running Python and OCaml code in the same Jupyter notebook. It explains how Jane Street uses pyml, OCaml bindings to the Python C API, plus a ppx extension and library to create bindings, exchange values, and reuse OCaml systems from Python workflows.

### Source excerpt

The cover image is based on Jupiter family by NASA/JPL.

[Next page](<https://devfeed.tech/tags/ocaml.md?cursor=WyIyMDE5LTEyLTE2VDAwOjAwOjAwKzAwOjAwIiwgIjFlZjI0ZWFjLTY2MjEtNDE3NS04ZWIwLTU5ZDBhMzBiMzQ2MiJd>)