Hello Here is the latest OCaml Weekly News, for the week of October 21 to 28, 2025. Table of Contents ───────────────── opam 2.5.0~alpha1 Release of Fmlib 0.6.0 MlFront 2.4.2.x Other OCaml News Old CWN opam 2.5.0~alpha1 ═════════════════ Archive: Kate announced ────────────── Hi everyone, We are happy to announce the first alpha release of opam 2.5.0. This version is an alpha, we invite users to test it to spot previously unnoticed bugs as we head towards the stable release. What’s new? Some highlights: ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ • :high_speed_train: Speed up `opam update' up to 70%. Thanks to [@arozovyk], `opam update' now loads opam files incrementally, only parsing the files that have changed since the last time you called `opam update'. Before that, opam files in opam repositories were all loaded from the file system after an update if there was any change. The performance improvement of this change thus depends on how often you call `opam update' and what type of repository and OS you are using. ([#5824]) • :spiral_shell: Improved shell integration. A number of users have been hitting issues with opam's shell integration where parts of a previous environment was kept in the current environment, causing a number of issues. These can be triggered by, for example, nuking your opam root directory (by default `~/.opam' or `%LocalAppData%\opam'). For this particular case we are still working on a fix, but many other users have reported similar issues without nuking their root directory and in that case we believe to have fixed the majority of issues. ([dbuenzli/topkg#142], [#4649], [#5761]) • :spiral_shell:² We've also changed the default file to which `opam init' writes the opam shell integration to be `.bashrc' instead of the previous `.profile' or `.bash_profile' when `bash' is detected. Doing it this way prevents some issues with existing `.profile' files that source the `.bashrc' file and causing an infinite loop when opam asks users to ensure they source their `.bashrc' file in their `.profile' file. ([#5819], [#4201], [#3990]) • :shield: The opam install script now installs an appropriate `apparmor' profile on systems configured with `apparmor' (this is enabled by default on Ubuntu). This change is not strictly speaking related to this release as it is deployed for every version. ([#5968]) • :ocean: Many more UI additions and improvements, bug fixes, … :open_book: You can read our [blog post] for more information about these changes and more, and for even more details you can take a look at the [release note] or the [changelog]. [@arozovyk] [#5824] [dbuenzli/topkg#142] [#4649] [#5761] [#5819] [#4201] [#3990] [#5968] [blog post] [release note] [changelog] Try it! ╌╌╌╌╌╌╌ The upgrade instructions are unchanged: ┌──── │ bash -c "sh <(curl -fsSL https://opam.ocaml.org/install.sh) --version 2.5.0~alpha1" └──── or from PowerShell for Windows systems ┌──── │ Invoke-Expression "& { $(Invoke-RestMethod https://opam.ocaml.org/install.ps1) } -Version 2.5.0~alpha1" └──── Please report any issues to the [bug-tracker]. Happy hacking, <> <> The opam team <> <> :camel: [bug-tracker] Release of Fmlib 0.6.0 ══════════════════════ Archive: Helmut announced ──────────────── I have the pleasure to annouce the release of version 0.6.0 of `fmlib'. The main components of `fmlib' are 1. Web Applications in the Elm style 2. Pretty Printing 3. Combinator Parsing Documentation see [https://hbr.github.io/fmlib/odoc/index.html]. This release is mainly focussed on pretty printing and web applications. The new release has some breaking changes because some function names or function arguments have changed. The breaking changes can be easily fixed by looking into the documentation which contains all functions and the corresponding arguments. Web applications: • Single page applications are now fully supported. I.e. it is possible to manage several virtual pages in one application. The switching between the pages can be done by accessing the browser history. I.e. the user is capable of pressing back and forward buttons and the application remains the same. For an introduction to single page applications see [here]. An example of a single page application can be seen [here]. • Web applications can contain reference elements. These can be used to optimize applications with really big doms (e.g. several hundreds or thousands of elements). Introduction to reference elements see [here]. A simple spreadsheet implemented as a web application can be found [here]. • Files on the local machine can be selected and loaded into the application. • Session and local storage of the browser can be used. Pretty Printing: A new algorithm based on Phil Wadler’s design is used which makes the code more elegant, easy to read and fixes some bugs in the previous algorithm. The new algorithm is in a separate module `Pretty'. The old module `Print' is kept but will be removed in the next release. Combinator Parsing: As a convenience there are lexeme parsers which support languages with some standard syntax (like Haskell’s Parsec). Some bugfixes and minor additional functions. No breaking changes. [https://hbr.github.io/fmlib/odoc/index.html] [here] [here] [here] [here] MlFront 2.4.2.x ═══════════════ Archive: jbeckford announced ─────────────────── MlFront 2.4.2.30, a set of packages centered around language-agnostic build tooling, is available on opam. Changes include: • MlFront_Core: `FilePath.absolute' has flags to create Windows paths longer than 260-characters (`MAX_PATH'). • MlFront_ZipFile: Now has a `deterministic' mode when creating zip files. • MlFront_Cache: Now embeds the sqlite3 C library so you don’t need pkg-config (etc.) to install it. • MlFront_Exec: Supports downloading attested (signed) binary packages from GitHub. Confer with my article on GitHub attestations: • MlFront_Thunk: Its ThunkLexers and ThunkParsers include a JSONC parser that can be used to edit config files. Relies on the fmlib_parser library. I use it to autofix JSONC build files with correct checksums and file sizes. (Ping/reply if you would use it so I can separate it) Other OCaml News ════════════════ >From the ocaml.org blog ─────────────────────── Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. • [Setting up Open Telemetry (OTel) with OCaml and Azure Monitor Integration] • [Hacking OCaml] [the ocaml.org blog] [Setting up Open Telemetry (OTel) with OCaml and Azure Monitor Integration] [Hacking OCaml] 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]