Advertisement · 728 × 90

Posts by

Preview
Thomas Gazagnaire :: Predicting Satellite Collisions in OCaml Open test data for predicting satellite collisions. I built the full screening pipeline in OCaml, validated it against the answer key, and put a 3D globe in the browser.

[OCaml Planet] Building a satellite collision screening pipeline from scratch in OCaml - complete with validation against reference data and browser-based 3D visualization.

https://gazagnaire.org/blog/2026-04-07-ssa.html

4 days ago 8 3 0 0
Preview
Thomas Gazagnaire :: Predicting Satellite Collisions in OCaml Open test data for predicting satellite collisions. I built the full screening pipeline in OCaml, validated it against the answer key, and put a 3D globe in the browser.

Predicting satellite collisions in OCaml!

The screening pipeline matches the TraCSS answer key, and the 3D globe runs in the browser via js_of_ocaml.

gazagnaire.org/blog/2026-04...

#space #OCaml

6 days ago 8 2 0 0
Preview
GitHub - mjambon/yamlx: Pure-OCaml YAML 1.2 & 1.1 Library Pure-OCaml YAML 1.2 & 1.1 Library. Contribute to mjambon/yamlx development by creating an account on GitHub.

I've created a complete, pure-OCaml YAML library called YAMLx (Yumyulack was too long). It will be suitable for reading config files in your applications as well as for analyzing YAML files used by other projects.

Aiming for a release by the end of this week.

github.com/mjambon/yamlx

#ocaml #YAML

6 days ago 5 2 1 0
Preview
Thomas Gazagnaire :: A CSS Engine in OCaml A typed CSS parser covering Level 3 through 5, a structural diff tool, and an optimiser. With a live browser demo via js_of_ocaml.

I've finally managed to write why I'm doing a bit more regularly. Hint: it took a while because I had first to rewrite the world in #OCaml ...

gazagnaire.org/blog/2026-04...

1 week ago 15 7 2 0
Preview
Thomas Gazagnaire :: A CSS Engine in OCaml A typed CSS parser covering Level 3 through 5, a structural diff tool, and an optimiser. With a live browser demo via js_of_ocaml.

A CSS Engine in OCaml

https://gazagnaire.org/blog/2026-04-02-cascade.html

#ocaml

1 week ago 4 1 0 0
OCaml Tutorial: Getting Started with Your First Project
OCaml Tutorial: Getting Started with Your First Project YouTube video by Tarides

Check out our new video tutorial on setting up your first project with Dune, including how to use watch mode, modules, and yojson! 🐫 www.youtube.com/watch?v=F_PR...

1 week ago 2 0 0 0
Introduction to Static Analysis via Abstract Interpretation by Charlene Gros
Introduction to Static Analysis via Abstract Interpretation by Charlene Gros YouTube video by Tarides

Dive into static analysis and how it's used to verify properties of programs in Charlene Gros' Tech Talk on our YouTube channel🐫 www.youtube.com/watch?v=EALz...

2 weeks ago 3 1 0 0
Advertisement

[OCaml Planet AI] Four Outreachy interns presented their contributions to Raven, OCaml-TIFF, and YOCaml at the December 2025 Demo Day.

2 weeks ago 3 1 1 0

[OCaml Planet AI] Practical OCaml: building a fuel price finder. The UK Fuel Finder API provides real-time data from over 7,000 petrol stations nationwide.

3 weeks ago 2 1 1 0
Preview
Creating `ocaml.nvim` to Bring Neovim Support to OCaml's LSP Server Introducing the `ocaml.nvim` plugin, which integrates OCaml's Neovim editor with the LSP.

The new ocaml.nvim plugin provides Neovim integration to OCaml's LSP server – giving users access to advanced ocaml-lsp features with less fuss 🌟 tarides.com/blog/2025-12...

3 weeks ago 7 2 0 0
Adoption of the Neovim plugin for OCaml We recently released a new NeoVim plugin for OCaml. It has been live for a few months now (you can find the announcement here if you are curious), and we would like to know what you think of it. The next step is to improve the plugin in order to better meet the expectations of the users. To do that, it would be very helpful for us if you could reply to the following poll. Do not hesitate to share your thoughts about the plugin, both positive and negative, and any ideas are also welcome. We are ...

if you're using OCaml and neovim, the editors team would like your input here:

discuss.ocaml.org/t/adoption-of-the-neovim...

1 month ago 14 3 1 0
Xavier van de Woestyne presents "A crash course on the OCaml module language" at BOBkonf 2026. A slide in the background reads "Why this presentation & warning"

Xavier van de Woestyne presents "A crash course on the OCaml module language" at BOBkonf 2026. A slide in the background reads "Why this presentation & warning"

Talk track A at #BOBkonf2026 starts off with @xvw.lol 's "A crash course on the OCaml module language"!

1 month ago 16 8 1 0
Carine Morel and Sudha Parimala teaching their tutorial "Parallelism without panic: a user’s guide to multicore safety in OCaml" at BOBkonf 2026.

Carine Morel and Sudha Parimala teaching their tutorial "Parallelism without panic: a user’s guide to multicore safety in OCaml" at BOBkonf 2026.

Tutorial track B at #BOBkonf2026 continues with
@lyrm.bsky.social and Sudha Parimala's tutorial "Parallelism without panic: a user’s guide to multicore safety in OCaml".

1 month ago 11 5 0 0

After lunch, tutorial track B at #BOBkonf2026 continues with @lyrm.bsky.social and Sudha Parimala's "Parallelism without panic: a user’s guide to multicore safety in OCaml".

Find out more here: bobkonf.de/2026/morel.h...

1 month ago 9 7 1 0
Eliom 12: Client-server applications in Web Assembly On behalf of the Ocsigen team, I am pleased to announce the release of Eliom 12. Following our recent release of wasm_of_ocaml, this version’s main feature is full support for Web Assembly. Eliom appl...

Wow Eliom + Wasm Of OCaml is released (thanks to the @ocsigen.org toolchain) !

discuss.ocaml.org/t/eliom-12-c...

#OCaml #ocsigen #wasm

1 month ago 12 5 1 0
Outreachy May 2026 Hello everyone, The OCaml community has signed up to Outreachy May 2026 (see past posts)! What is Outreachy? Outreachy is a paid, remote internship program. Outreachy promotes diversity in open sou...

The #OCaml community will be taking part in #outreachy in May 2026. You can read more about it and consider signing up as a mentor at the following link 🐫

discuss.ocaml.org/t/outreachy-...

1 month ago 4 3 0 0
Post image

such a great feeling when you find all your stack used in the wild

1 month ago 4 2 1 0
Advertisement

It's paper submission day!! How's your's shaping up?

1 month ago 1 1 1 0
Preview
ICFP 2025: Looking Back at the Biggest Functional Programming Conference of the Year Check out our summary of everything OCaml at ICFP 2025, including insights from the Tarides engineers who attended!

Take a journey back to Singapore and the biggest functional programming conference of 2025 in this post from our blog: tarides.com/blog/2025-12...

1 month ago 3 1 0 0
Preview
Tessera pipeline in OCaml Summary: OCaml bindings and GPU tests for Tessera pipeline, using numpy-like arrays, OCaml-npy, stac-client, GDAL bindings, ONNX runtime with a C shim

Tessera pipeline in OCaml

https://www.tunbury.org/2026/02/15/ocaml-tessera/

#machinelearning #datascience

1 month ago 3 1 0 0
Preview
Optimizing an MP3 Codec with OCaml/OxCaml After reading Anil’s post about his zero-allocation HTTP parser httpz, I decided to apply some OxCaml optimisation techniques to my pure OCaml MP3 encoder/decoder. The OCaml-based MP3 encoder/decoder has been the most ambitious project I’ve tried in Opus 4.5. It was a struggle to get it over the line, and I even needed to read large chunks of the ISO standard and get to grips with some of the maths and help the AI troubleshoot. # Profiling an OCaml MP3 Decoder with Landmarks Before dividing into OxCaml, I wanted to get a feel for the current performance and also to make obvious non-OxCaml performance improvements; otherwise, I would be comparing an optimised OxCaml version with an underperforming OCaml version. It was 40 times slower than `ffmpeg`: 29.5 seconds to decode a 3-minute file versus 0.74 seconds. I used the landmarks profiling library to identify and fix the bottlenecks, bringing decode time down to 3.5 seconds (a 8x speedup). ## Setting Up Landmarks Landmarks is an OCaml profiling library that instruments functions and reports cycle counts. It was easy to add to the project (*) with a simple edit of the `dune` file: (libraries ... landmarks) (preprocess (pps landmarks-ppx --auto)) The `--auto` flag automatically instruments every top-level function — no manual annotation needed. Running the decoder with `OCAML_LANDMARKS=on` prints a call tree with cycle counts and percentages. > (*) It needed OCaml 5.3.0 for `landmarks-ppx` compatibility; it wouldn’t install on OCaml 5.4.0 due to a ppxlib version constraint. ## Issues 78% of the time was spent in the Huffman decoding, specifically `decode_pair`. The implementation read one bit at a time, then scanned the table for a matching Huffman code. I initially tried a Hashtbl, which was much better than the scan before deciding to use array lookup instead. The bitstream operations still accounted for much of the time, but these could be optimised with appropriate `Bytes.get_...` calls, as the most frequent path is reading 32 bits in big endian layout. The profile now showed `find_sfb_long` consuming 3.4 billion cycles inside requantization. This function does a linear search through scalefactor band boundaries for every one of the 576 frequency lines, every granule, every frame. Switching to precomputed 576-entry arrays mapping each frequency line directly to its scalefactor band index. There were some additional tweaks, such as adding more precomputed lookup tables stored in `floatarray`, using `[@inline]` and `unsafe_get`, `land` instead of `mod`. After this, no single function dominated the profile, and I could move on to OxCaml. # OxCaml OxCaml has `float#`, an unboxed float type that lives in registers, and `let mutable` for stack-allocated mutable variables. Together, they let you write inner loops where the accumulator never touches the heap: module F = Stdlib_upstream_compatible.Float_u let[@inline] imdct_long input = for i = 0 to 35 do let mutable sum : float# = F.of_float 0.0 in for k = 0 to 17 do let cos_val = F.of_float (Float.Array.unsafe_get cos_table (i * 18 + k)) in let inp_val = F.of_float (Array.unsafe_get input k) in sum <- F.add sum (F.mul inp_val cos_val) done; Array.unsafe_set output i (F.to_float sum) done These kinds of optimisations got me from 2.35s down to 2.01s. What I felt was missing was an accessor function which returned an unboxed float from a floatarray, so I wouldn’t need to unbox with `F.of_float`. However, I couldn’t find it. The httpz parser really benefited from OxCaml’s unboxed types because its hot path operates on small unboxed records that stay entirely in registers: #{ off: int16#; len: int16# } # Results The optimisations brought a 29.5s MP3 decoder down to 2.01s. Mostly through standard OCaml optimisations, but OxCaml’s `float#` saved another ~14%. Decoder | Time | vs ffmpeg ---|---|--- ffmpeg | 0.74s | 1x LAME | 0.81s | 1.1x ocaml-mp3 (original) | 29.5s | 40x ocaml-mp3 (Hashtbl) | 6.4s | 8.6x ocaml-mp3 (flat + fast bitstream) | 3.5s | 4.7x ocaml-mp3 (best) | 2.4s | 3.2x ocaml-mp3 (OxCaml) | 2.0s | 2.7x

OxCaml isn't just useful due to its language extensions; it's making us think through how to engineer OCaml code to be lower allocation by default even before switching. See Mark's progress on an MP3 decoder to speed it up 10x https://www.tunbury.org/2026/02/11/ocaml-mp3/

2 months ago 10 5 0 0
Preview
Bringing Emacs Support to OCaml's LSP Server with `ocaml-eglot` Discover the `ocaml-eglot` project, a plugin that integrates OCaml's Emacs editor support with the LSP.

With Emacs integration to OCaml's LSP server, both the user and the maintainer benefit from a simplified setup! You can learn more on our blog: tarides.com/blog/2025-11...

2 months ago 4 1 0 0
Preview
Release 6.3.0 · ocsigen/js_of_ocaml CHANGES: Features/Changes Misc: install shell completion script generated by cmdliner (#2140) Compiler/wasm: omit code pointer from closures when not used (#2059, #2093) Compiler/wasm: number unbo...

Js_of_ocaml 6.3.0 🎉
github.com/ocsigen/js_of_ocaml/rele...

2 months ago 5 1 0 0

Reminder: We are meeting tomorrow morning for a #FunctionalProgramming #meetup. Everyone is welcome to attend! See you there!

#FunctionalProgramming #India #Meetup #Haskell #PureScript #Erlang #Scala #OCaml #TypeScript #Rust #Clojure

2 months ago 5 2 0 0

Native support for mlx in the ocaml-lap-server

(syntax highlight, and all LSP features from ocaml in mlx)

2 months ago 8 3 1 0
Advertisement

OCaml is already a sweet spot between Go and Rust, but is rapidly gaining the same performance capabilities of Rust without the same cognitive overhead needed for your entire application.

2 months ago 18 4 2 0
Preview
My (very) fast zero-allocation webserver using OxCaml Building httpz, a high-performance HTTP/1.1 parser with zero heap allocation using OxCaml's unboxed types, local allocations, and mutable local variables.

Got my website running live on my zero-allocation (ish) OxCaml webserver! First of a series of posts on building out our planetary computing system infrastructure using the performance extensions in the Jane Street fork of OCaml. https://anil.recoil.org/notes/oxcaml-httpz

2 months ago 15 4 4 1
Preview
Announcing Unikraft Support for MirageOS Unikernels Get an overview of the Unikraft backend support for MirageOS, including performance benchmarks on different devices.

Check out the new Unikraft backend for MirageOS. Samuel Hym shared the goals, design, benchmarks, and more about the new feature on the blog: tarides.com/blog/2025-11...

2 months ago 7 1 0 1
Preview
Welcome to a World of OCaml OCaml is a general-purpose, industrial-strength programming language with an emphasis on expressiveness and safety.

omg ocaml.org supports displaying source code in api docs now! (like haddock or rustdoc) and they support jump to definition! (like haddock but unlike rustdoc)
when did that happen, that's really awesome!

2 months ago 28 4 4 0
Preview
Supporting OCurrent: FLOSS/Fund Backs Maintenance for OCaml's Native CI Framework Announcing FLOSS Fund's support for maintenance of OCaml's native CI and workflow framework OCurrent

We are happy to share that the FLOSS/Fund is supporting our work on the OCaml-native CI and workflow framework OCurrent! Learn more on the blog: tarides.com/blog/2025-10...

2 months ago 3 1 0 0