[Caml-list] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt
2025-10-28T13:31:02Z

[-- Attachment #1: Type: text/plain, Size: 9542 bytes --]

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: <https://discuss.ocaml.org/t/ann-opam-2-5-0-alpha1/17411/1>

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] <https://github.com/arozovyk>

[#5824] <https://github.com/ocaml/opam/issues/5824>

[dbuenzli/topkg#142] <https://github.com/dbuenzli/topkg/issues/142>

[#4649] <https://github.com/ocaml/opam/issues/4649>

[#5761] <https://github.com/ocaml/opam/issues/5761>

[#5819] <https://github.com/ocaml/opam/issues/5819>

[#4201] <https://github.com/ocaml/opam/issues/4201>

[#3990] <https://github.com/ocaml/opam/issues/3990>

[#5968] <https://github.com/ocaml/opam/issues/5968>

[blog post] <https://opam.ocaml.org/blog/opam-2-5-0-alpha1/>

[release note] <https://github.com/ocaml/opam/releases/tag/2.5.0-alpha1>

[changelog] <https://github.com/ocaml/opam/blob/2.5.0-alpha1/CHANGES>

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] <https://github.com/ocaml/opam/issues>

Release of Fmlib 0.6.0
══════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-release-of-fmlib-0-6-0/17412/1>

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]
<https://hbr.github.io/fmlib/odoc/index.html>

[here]
<https://hbr.github.io/fmlib/odoc/fmlib_browser/doc_single_page_application.html>

[here] <https://hbr.github.io/fmlib/webapp/single_page.html>

[here]
<https://hbr.github.io/fmlib/odoc/fmlib_browser/doc_reference_elements.html>

[here] <https://hbr.github.io/fmlib/webapp/spreadsheet.html>

MlFront 2.4.2.x
═══════════════

Archive: <https://discuss.ocaml.org/t/ann-mlfront-2-4-2-x/17427/1>

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:
<https://github.com/diskuv/dk/blob/V2_4/docs/posts/2025-10-24-overview-ci-attestations.md>
• 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] <https://ocaml.org/blog/>

[Setting up Open Telemetry (OTel) with OCaml and Azure Monitor
Integration]
<https://fearful-odds.rocks/blog/setting-up-otel-with-ocaml-and-azure-monitor>

[Hacking OCaml] <https://www.youtube.com/watch/HVE9WWC0hbQ?version=3>

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] <mailto:alan.schmitt@polytechnique.org>

[the archive] <https://alan.petitepomme.net/cwn/>

[RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss>

[caml-list] <https://sympa.inria.fr/sympa/info/caml-list>

[Alan Schmitt] <https://alan.petitepomme.net/>

[-- Attachment #2: Type: text/html, Size: 19664 bytes --]