OCaml Weekly News

Previous Week Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of April 22 to 29, 2025.

Table of Contents

dream-html, pure-html 3.10.0 and 3.10.1

Yawar Amin announced

Happy to announce a couple of releases of dream-html:

3.10.0: add support for RSS/Atom markup; add ability to handle multiple nested form values; concatenate HTML nodes with a separator node between them; add support for popovers and Declarative Shadow DOM markup.

3.10.1: use single quotes for attributes which must contain JSON values, like htmx's hx-vals.

State of OCaml Platform on Windows

Leandro Ostera announced

Hello folks :waving_hand:

We're happy to share the first version of the State of the OCaml Platform on Windows document with you. Please find the document here: https://docs.google.com/document/d/1-aTygzDsxy4mnqvSKEVhifA1KDRyP-Axdogjgb8i3Gg/edit?usp=sharing.

As part of the First-Class Windows project, we've been assessing the state of OCaml on Windows. This document is a summary of our investigation, including our consultations with individuals involved in Windows-related work.

This document started internally at Tarides and quickly included major contributors and users of OCaml on Windows for its drafting and review stages. Thank you to @jbeckford, @klakplok, @Vincent_Balat, @Rucikir, @lambda_foo, @rikusilvola, @kayceesrk, @dra27, @Isabella, @rjbou, @avsm, @kentookura, @oandrieu, @shonfeder, @sabine, and everyone else at Tarides for helping us shape and review this document! :folded_hands:

The immediate call to action for you is to give us your inputs and thoughts, challenge it and help us make it better. You can do this directly on that document, or by quoting into this thread.

We'll have a window of 8 weeks to allow for this to happen. After that we will move this into the OCaml Platform section of OCaml.org to use as a reference and keep it updated over time.

Happy coding! :two_hump_camel:

/ @sudha & @leostera on behalf of Tarides

Upgrading Semgrep from OCaml 4 to OCaml 5 + dynamic_gc utility

Continuing this thread, Nat Mote announced

I've just released a new version that includes the following module:

module Config : sig
  (** Produces a simple config that will set space_overhead to 120, the default,
   * when the size of the major heap is below the given threshold. When the heap
   * is larger than the given threshold, space_overhead will be set to 80. *)
  val simple: threshold_mb:int -> config
end

That will make the utility even easier to configure while still allowing the application developer to set a memory threshold that is relevant to them.

Typesafe complicated combinations

rand announced

Heya everyone –

I've written a blogpost based on a recent experience adding typesafety to the pmmd codebase – handling a lot of different data and functions that needs to be combined in the right ways.

In it I make use of phantom types and OCamls module system to express the invariants - which I find is a nice set of typesystem features to express complicated relations in a relatively simple but efficient and scaleable way. Also, I think interesting design patterns can emerge from this way of working.

Let me know here if you have any questions or comments

Thanks (:

Other OCaml News

From the ocaml.org blog

Old CWN

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.

If you also wish to receive it every week by mail, you may subscribe to the caml-list.