Hello Here is the latest OCaml Weekly News, for the week of March 10 to 17, 2026. Table of Contents ───────────────── Public securiy meeting Google OR-Tools: CP-SAT Subset Neocaml-mode (A modern Emacs major mode for OCaml) is looking for testers oui: multi-platform binary installers Nixtamal: Fulfilling Input Pinning for Nix OCaml-RDF 1.2.0 Slipshow! Is there a public archive for the caml-list? Old CWN Public securiy meeting ══════════════════════ Archive: Hannes Mehnert announced ──────────────────────── Dear everyone, as a reminder – next week Thursday (March 19th) 14:00 CEST, there will be a public OCaml security meeting hosted by the team. We will meet at Our agenda and notes will be at # If you're curious, the notes from our last meeting are at Hope to see you there! Google OR-Tools: CP-SAT Subset ══════════════════════════════ Archive: Timothy Bourke announced ──────────────────────── The [Google OR-Tools] are a suite of tools for solving optimization problems. They include, in particular, [CP-SAT], which is a powerful constraint solver and optimizer for integer linear programming and boolean satisfiability problems. The [ocaml-ortools] package provides an OCaml interface to a subset of CP-SAT constraints. It comprises two parts `ortools`, which allows modelling constraint problems in OCaml and translating them to a protocol buffer format (thanks to [ocaml-protc]), and `ortools_solvers`, which allows an embedded version of CP-SAT to be called directly from OCaml. Both parts can be installed using opam or built with dune. The latter includes the source of OR-Tools 9.15 which is built together with most of its libraries and installed as part of the opam package. Some simple examples can be found in the [online documentation] and [source code]. They can be built using the following commands. ┌──── │ opam install ortools ortools_solvers │ ocamlfind ocamlopt -o prog -package ortools -package ortools_solvers -linkpkg prog.ml └──── I would be happy to accept pull requests for the missing CP-SAT constraints (I think it best to develop the interface together with real applications, and I only need the ILP and boolean parts at the moment), to translate more of the standard example programs (an easy way to contribute), and to include other solvers from the suite (likely to involve solving tedious compilation and compatibility problems across multiple platforms). Thanks to @nojb, @Rucikir , and others for [their help] with [dune], and @xvw and @panglesd for [their help] with odoc. Thanks to @jmid , @mseri , and @avsm for discussing and merging my [opam-repository] pull requests. [Google OR-Tools] [CP-SAT] [ocaml-ortools] [ocaml-protc] [online documentation] [source code] [their help] [dune] [their help] [opam-repository] Neocaml-mode (A modern Emacs major mode for OCaml) is looking for testers ═════════════════════════════════════════════════════════════════════════ Archive: Continuing this thread, Bozhidar Batsov announced ───────────────────────────────────────────────── FYI - You'll need to update your Tree-sitter grammars due to some upstream (breaking) changes in the TS OCaml grammar. oui: multi-platform binary installers ═════════════════════════════════════ Archive: Nathan Rebours announced ──────────────────────── We are happy to announce the first release of `oui'! `oui' is a tool that generates multi-platform binary installers for your OCaml applications. It can generate installers for Windows, Linux and MacOS. We hope it will help all of you out there developping applications for non OCaml developers, allowing your users to install your programs without having to install OCaml and/or opam, thus greatly simplifying their user experience. You can install `oui' with the following command: ┌──── │ opam install oui └──── We made it as generic as possible to ensure it works for everyone. You invoke it as follows: ┌──── │ oui build oui.json install-bundle └──── where `install-bundle' is a folder containing your precompiled binaries and any files you want to install alongside them, arranged in any way you'd like. The `oui.json' file is a configuration file that contains metadata and information on the installation bundle's layout such as where to find binaries to add to the `PATH' or where to find manpages. `oui' can also create installers for plugins, assuming the main application was either installed by a `oui' generated installer, or was installed following some basic rules. The project is hosted on github: The full documentation is available [here]. In particular, you can find guidelines on how to use it to create installers for your dune built project [here]. Please go ahead and give it a try, we'd love to hear your feedback. We welcome external contributors so if you'd like to take part in the project, please read our [CONTRIBUTING.md] and jump in! The project is still in a relatively early stage and there are some key features we'd like to add, such as streamlining the user experience for dune projects (removing the necessity to maintain a separate configuration file for the most common use cases) or support for cross-compilation/cross-platform installer generation. If those features sound interesting to you and you would like to fund their development, please reach out to contact@ocamlpro.com . Finally, we'd like to thank our partner CEA-list who funded the initial development of `oui' from `opam-wix' and made it all possible! Happy installing! [here] [here] [CONTRIBUTING.md] Nixtamal: Fulfilling Input Pinning for Nix ══════════════════════════════════════════ Archive: toastal announced ───────────────── [Nixtamal] is my first serious OCaml project release, now at verison 1.1.4. It was created as a reaction to the lack of features I wanted from its “competitors” `niv' & `npins' while additionally covering features Nix flakes never could support given it’s rigid design philosophy which has more drawbacks than folks initially realize. I have been using it on all projects for a couple months now & had at least a couple folks I didn’t know prior try it out providing feedback & bug reports. *Key features:* • Automate the manual work of input pinning for dependency management • Allow easy ways to lock & refresh those inputs • Declarative [KDL] manifest file over imperative CLI flags • Host, forge, VCS-agnostic • Choose eval time fetchers (builtins) or build time fetchers (Nixpkgs, default) — which opens up fetching now-supported [Darcs], [Pijul], & [Fossil] • Supports mirrors (on kinds that support mirrors) • Override hash algorithm on a per-project & per-input basis — including BLAKE3 support (which _does_ require enabling `blake3-hashes` to opt in) • Custom freshness commands (avoid refetching massive inputs just to check the hash hasn’t changed) • No experimental Nix features required (flakes) Outside the homepage, it would be worth checking the [FAQs] if any /whats/ or /whys/ come up. [Nixtamal] [KDL] [Darcs] [Pijul] [Fossil] [FAQs] OCaml-RDF 1.2.0 ═══════════════ Archive: Zoggy announced ─────────────── Hello, A new release of OCaml-RDF, [1.2.0], is available. The main additions are: • a new [Igraph] module, providing immutable graphs (for functional style). • a new [rdf_rdfa] package implementing a [Rdfa 1.1] processor. It is available from [my own opam repository]. [1.2.0] [Igraph] [rdf_rdfa] [Rdfa 1.1] [my own opam repository] Slipshow! ═════════ Archive: Continuing this thread, Paul-Elliot announced ───────────────────────────────────────────── It is with a blatant denial of the current situation that I announce the next release of Slipshow: Slipshow 0.10.0: Don't look `{up}' ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ The +asteroid+ star of the release is the new warnings that the compiler can raise to help you write a bug-free presentation. Those warnings are visible on the command-line, but also in the hot-reloading preview in `serve' mode! Warnings will hopefully help detect bugs in your presentations and improve the experience, especially of newcomers! This time, I'd like to thanks @Alistair for the incredible [Grace 💅] library. Whenever I look somewhere, I find a new OCaml pearl. Thank you for that! This library, the ecosystem, open-source, are all awesome things. And thanks again to NLNet for [supporting] the development of Slipshow! Here is the full changelog: [Grace 💅] [supporting] Added ╌╌╌╌╌ • Helpful warnings at compile-time (#213): • Action parsing failures, • Missing ID (and `external-ids' frontmatter field to selectively deactivate), • Duplicated ID, • Frontmatter parsing error, • Wrong target type for actions, • Missing file, • Unknown attribute, • … Fixed ╌╌╌╌╌ • Fixed drawing stopping slightly after pauses (#216) • Fixed keyboard shortcuts not working in serve mode until the preview was clicked (#215) • Fix shortcuts not working after saving a drawing (#217) • Fix wrong example links in docs (#218) Is there a public archive for the caml-list? ════════════════════════════════════════════ Archive: Continuing this thread, Calascibetta Romain announced ───────────────────────────────────────────────────── Hello, I am pleased to announce the launch of , a unikernel that provides a search engine for the caml-list. We now have public access to this archive :tada:! Our cooperative is currently working on several fronts, including email, by offering an archiving system. For more details, please see [this article]. Another article describes [the search engine] we use, and a third explains [how we developed this unikernel] (although the latter has evolved considerably since then, the core remains the same). We are therefore delighted to make this service available to the community, and if you would like to help us improve it, the project is currently available [here]. We would like to thank [NLnet] for funding this unikernel, and if you appreciate our work, please do not hesitate to make a donation to our cooperative (via [GitHub] or [directly to our cooperative]) Finally, this example also showcases all our work on unikernels: from what an Ethernet frame is, through the archive system and the extraction of emails from a virtualised hard drive, right up to the HTTP request - *everything is done in OCaml* (and we would once again recommend reading our tutorial on [mnet] if you would like to build up unikernels). So have fun hunting for relics from the history of OCaml! [this article] [the search engine] [how we developed this unikernel] [here] [NLnet] [GitHub] [directly to our cooperative] [mnet] 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]. [Alan Schmitt] [send me a message] [the archive] [RSS feed of the archives] [caml-list] [Alan Schmitt]