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

Alan Schmitt
2025-09-16T11:53:02Z

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

Hello

Here is the latest OCaml Weekly News, for the week of September 09 to
16, 2025.

Table of Contents
─────────────────

Dune dev meeting
Dune 3.20
OCaml compiler office hours? (preparation thread)
Second beta release of OCaml 5.4.0
Unicode 17.0.0 update for Uucd, Uucp, Uunf and Uuseg
Scope Image File Viewer
OCaml security team
Testo 0.2.0 - test library with support for snapshots, parallel runs, xfails, timeouts
tinyfiledialogs bindings
RFC: `for...in' construct
dead_code_analyzer 1.0.0
Relocatable OCaml
FUN OCaml is live on YouTube and Twitch
Other OCaml News
Old CWN

Dune dev meeting
════════════════

Archive: <https://discuss.ocaml.org/t/ann-dune-dev-meeting/14994/34>

Shon announced
──────────────

Hi everyone! :camel:

Starting tomorrow, Wednesday September 9th, 2025, *we will begin
holding our Dune dev meeting WEEKLY, every Wednesday*, at alternating
time slots.

Whether you are a maintainer, a regular contributor, a new joiner or
just curious, you are always welcome to join: these discussions are
open! The goal of these meetings is to provide a place to discuss the
ongoing work together and synchronize between the Dune developers
:smile:

However, we will no longer be manually announcing these meetings, as
they are at set recurring times, and the meeting times and ways to
participate are well documented.

:calendar: Agenda and Notes
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

If there is a prior agenda, it will be available on the dedicated
meeting page [available from or dev wiki]. Feel free to ask if you
want to add more items in it.

You may review the meeting notes for any past meetings from the very
same pages.

[available from or dev wiki] <https://github.com/ocaml/dune/wiki/>

:computer: Links
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

• Meeting link:[ zoom]
• Calendar event:[ google calendar]
• Wiki with information and previous notes: [dune wiki on GitHub]

:heart:

[ zoom]
<https://us06web.zoom.us/j/85096877776?pwd=cWNhU1dHQ1ZNSjZuOUZCQ0h2by9Udz09>

[ google calendar]
<https://calendar.google.com/calendar/embed?src=c_5cd698df6784e385b1cdcdc1dbca18c061faa96959a04781566d304dc9ec7319%40group.calendar.google.com>

[dune wiki on GitHub] <https://github.com/ocaml/dune/wiki>

Dune 3.20
═════════

Archive: <https://discuss.ocaml.org/t/ann-dune-3-20/17150/13>

Etienne Marais announced
────────────────────────

The Dune Team is happy to announce the release of Dune `3.20.2'.

This release comes with some fixes regarding `js_of_ocaml' and `cram'
test. It also fixes `dune' when using Cygwin.

Changelog
╌╌╌╌╌╌╌╌╌

◊ Fixed

• Fix jsoo separate compilation with
modules_without_implementation. Regression introduced in
ocaml/dune#10767. (ocaml/dune#12320, fixes ocaml/dune#12306 @hhugo)

• Fix `runtest-js' mistakenly using wrong dependencies
(ocaml/dune#12324, @vouillon)

• Remove empty `.cram.test.t' directory during the running of a cram
test. (ocaml/dune#12329, fixes ocaml/dune#12321, @Alizter)

• Fix Cygwin bootstrap (ocaml/dune#12325, fixes ocaml/dune#12316,
@Alizter)

OCaml compiler office hours? (preparation thread)
═════════════════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/ocaml-compiler-office-hours-preparation-thread/17230/1>

gasche announced
────────────────

Following our current discussion on making participation to the OCaml
compiler development more inviting
(<https://discuss.ocaml.org/t/why-lean-4-replaced-ocaml-as-my-primary-language/17109/45?u=gasche>,
<https://discuss.ocaml.org/t/synchronous-discussion-channel-for-compiler-contributors/17198/1>
), I propose to give a try to "OCaml compiler office hours". My idea
is to do this once during a week day around the end of September (and
then we see how it goes).

• Format: a synchronous remote meeting (voice with optional video),
backed by a collaborative pad to record questions, take notes, share
links etc.
• Topic: anything related to the development of the OCaml compiler,
that is, the github/ocaml/ocaml project. (All topics and questions
are welcome, at all levels of knowledge and familiarity with the
compiler.)
• Duration: probably one to two hours, but the idea of "office hours"
is that people can of course join late and leave at any time.

I am including below a poll to ask which time slots would be possible
/ comfortable for prospective attendants. (As the organizer, I
pre-selected slots that are comfortable for me.) Please only answer
the poll if you are motivated to attend such a meeting (the
preferences may different from the general timezone of the OCaml
community).

/Editor’s note: please follow the archive link above to access the
poll./

(If we do this several time we will of course think of a rotation to
accomodate people from different timezones.)

Second beta release of OCaml 5.4.0
══════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/second-beta-release-of-ocaml-5-4-0/17235/1>

octachron announced
───────────────────

After an extended summer break, the release of OCaml 5.4.0 is getting
close.

Since there have been a handful of meaningful bug fixes this summer,
we are releasing a second beta version of OCaml 5.4.0 to help you
update your software and libraries ahead of the release (see below for
the installation instructions). More information about the whole
release process is now available in the [compiler repository].

Compared to the first beta release, this beta release contains four
notable bug fixes:
• one type system bugfix for variance annotation on private types
• one memory concurrency safety fix for weak pointers
• two Windows fixes

Those fixes are complemented by:
• one runtime performance fix
• three tools and compiler-libs related fixes
• one error message fix.

The full list of fixes for this second beta is available below.

Overall, this beta release is already quite stable. If the tests for
this beta release go well, we are expecting to have a first release
candidate in the week of the 22 September, and the full release in the
beginning of October.

If you find any bugs, please report them on [OCaml's issue tracker].

The last progresses on stabilising the ecosystem are still tracked on
the [opam readiness for 5.4.0 meta-issue].

If you are interested in full list of features and bug fixes of the
new OCaml version, the updated change log for OCaml 5.4.0 is available
[on GitHub].

Happy hacking, Florian Angeletti for the OCaml team

[compiler repository]
<https://github.com/ocaml/ocaml/blob/trunk/release-info/introduction.md>

[OCaml's issue tracker] <https://github.com/ocaml/ocaml/issues>

[opam readiness for 5.4.0 meta-issue]
<https://github.com/ocaml/opam-repository/issues/27916>

[on GitHub] <https://github.com/ocaml/ocaml/blob/5.4/Changes>

Installation Instructions
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

The base compiler can be installed as an opam switch with the
following commands on opam 2.1 and later:

┌────
│ opam update
│ opam switch create 5.4.0~beta2
└────

The source code for the beta is also available at these addresses:

• [GitHub]
• [OCaml archives at Inria]

[GitHub] <https://github.com/ocaml/ocaml/archive/5.4.0-beta2.tar.gz>

[OCaml archives at Inria]
<https://caml.inria.fr/pub/distrib/ocaml-5.4/ocaml-5.4.0~beta2.tar.gz>

◊ Fine-Tuned Compiler Configuration

If you want to tweak the configuration of the compiler, you can switch
to the option variant with:

┌────
│ opam update
│ opam switch create <switch_name> ocaml-variants.5.4.0~beta2+options <option_list>
└────

where `option_list' is a space separated list of `ocaml-option-*'
packages. For instance, for a flambda and no-flat-float-array switch:

┌────
│ opam switch create 5.4.0~beta2+flambda+nffa ocaml-variants.5.4.0~beta2+options ocaml-option-flambda ocaml-option-no-flat-float-array
└────

All available options can be listed with `opam search ocaml-option'.

Changes since the first beta
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

◊ Type system fix

• [#14200], [#14202] : bad variance check with private aliases
(Jacques Garrigue, report and review by Stephen Dolan)

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

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

◊ Windows fixes

• #13504, #13625, +[#14223]: Add `Thread.set_current_thread_name'.
(Romain Beauxis, review by Gabriel Scherer and Antonin Décimo)

• [#13541], [#13777]: Using C++11 `thread_local' causes name-mangling
issues when linking with flexlink on Cygwin. (Antonin Décimo and
David Allsopp, report by Kate Deplaix)

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

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

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

◊ Runtime fixes

• [#14061], [#14209]: fix a memory-ordering bug in Weak.set that could
result in uninitialized memory seen by Weak.get on another domain.
(Damien Doligez, review by Gabriel Scherer)

• [#14169]: runtime, fix cache miss within the stack fragments cache
(Florian Angeletti, review by Gabriel Scherer)

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

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

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

◊ Tooling fixes

• #13302, +[#14236]: Store locations of longidents components (Ulysse
Gérard and Jules Aguillon, review by Jules Aguillon and Florian
Angeletti)

• #12642, #13536, +[#14184], +[#14192]: in the toplevel, print shorter
paths for constructors and labels when only some modules along their
path are open. (Gabriel Scherer, review by Florian Angeletti)

• [#14196], [#14197]: ocamlprof: do not instrument unreachable clauses
(Gabriel Scherer, review by Nicolás Ojeda Bär, report by Ali
Caglayan)

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

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

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

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

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

◊ Error messages

• [#14214], [#14221]: fix a confused error message for module
inclusions, functor error messages were missing some type equalities
potentially leading to nonsensical "type t is not compatible with
type t" submessage (Florian Angeletti, report by Basile Clément,
review by Gabriel Scherer)

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

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

Unicode 17.0.0 update for Uucd, Uucp, Uunf and Uuseg
════════════════════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-unicode-17-0-0-update-for-uucd-uucp-uunf-and-uuseg/17236/1>

Daniel Bünzli announced
───────────────────────

Hello,

Unicode 17.0.0 was released on September 9th. It adds 4803 new
characters for a total of 159'801 characters.

Among other interesting scripts, this adds support for the [Beria Erfe
script], a modern-use script from Africa which coincidentally is also
refered to as the *camel alphabet*.

For more information about other additions see [this page].

Accordingly these libraries had to be updated (aggregated, boring,
release notes [here])

• [Uucd] 17.0.0 Unicode character database decoder for OCaml, [docs]
• [Uucp] 17.0.0 Unicode character properties for OCaml, [docs]
• [Uunf] 17.0.0 Unicode text normalization for OCaml, [docs]
• [Uuseg] 17.0.0 Unicode text segmentation for OCaml, [docs]

Both `Uucd' and `Uucp' are incompatible releases sinces new block and
script enumerants were added.

Other than that the minimal Unicode introduction and Unicode OCaml
tips is still [here] and remember that despite the myths OCaml :heart:
Unicode.

A big thanks for funding from the [OCaml Software Foundation] and from
my [donors].

Daniel

[Beria Erfe script] <https://en.wikipedia.org/wiki/Zaghawa_alphabet>

[this page]
<https://blog.unicode.org/2025/09/unicode-170-release-announcement.html>

[here] <https://github.com/ocaml/opam-repository/pull/28502>

[Uucd] <http://erratique.ch/software/uucd>

[docs] <http://erratique.ch/software/uucd/doc>

[Uucp] <http://erratique.ch/software/uucp>

[docs] <http://erratique.ch/software/uucp/doc>

[Uunf] <http://erratique.ch/software/uunf>

[docs] <http://erratique.ch/software/uunf/doc>

[Uuseg] <http://erratique.ch/software/uuseg>

[docs] <http://erratique.ch/software/uuseg/doc>

[here] <https://erratique.ch/software/uucp/doc/unicode.html>

[OCaml Software Foundation] <http://ocaml-sf.org/>

[donors] <https://github.com/sponsors/dbuenzli>

Scope Image File Viewer
═══════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-scope-image-file-viewer/17237/1>

Charles Averill announced
─────────────────────────

I wanted to mess around with image file parsing and ended up building
a small image viewer application using SDL. Includes a few
hand-written parsers as well as calls to SDL_Image for more
complicated formats. Not super performant but working on it.

<https://opam.ocaml.org/packages/scope/>

OCaml security team
═══════════════════

Archive: <https://discuss.ocaml.org/t/ann-ocaml-security-team/16902/5>

Hannes Mehnert announced
────────────────────────

Dear everyone,

we’ve accomplished several tasks:

• <https://ocaml.org/security> is now live
• The public mailing list for security advisories is
sympa.inria.fr/sympa/info/ocsf-ocaml-security-announcements – please
subscribe if you’d like to receive security announcements
• There’ll be a brief introduction at [Fun OCaml] and a talk at [OCaml
workshop (ICFP)] )16:00 - 16:30
• We will have a public meeting for discussions on Oct 22nd 14:00 -
16:00 CEST (online, yet to be announced where)
• There’s already the OCaml security advisory database
<https://github.com/ocaml/security-advisories> (still empty, we’ll
fill it over the next weeks)

[Fun OCaml] <https://fun-ocaml.org>

[OCaml workshop (ICFP)]
<https://conf.researchr.org/details/icfp-splash-2025/ocaml-2025-papers/9/Toward-a-More-Secure-OCaml-Ecosystem>

Testo 0.2.0 - test library with support for snapshots, parallel runs, xfails, timeouts
══════════════════════════════════════════════════════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-testo-0-2-0-test-library-with-support-for-snapshots-parallel-runs-xfails-timeouts/17242/1>

Martin Jambon announced
───────────────────────

Testo was designed as a feature-rich testing framework that makes
common tasks easy and unusual ones possible. It is similar to Alcotest
but supports more options including notably:

• snapshotting: large output capture and diffing
• test-driven development: write tests first, make them pass later
(`~expected_outcome' option)
• review test results without re-running them (`status' subcommand)
• fast parallel execution supporting Windows and older OCaml versions
(>= 4.08)
• complete [documentation]: [tutorial], [howto guides], [OCaml API
reference]
• timeouts (new!)

We’ve been using Testo at [Semgrep] where we need the snapshotting
feature to track the output of the `semgrep' command in end-to-end
tests.

[Changes since the last release] include bugfixes, a few new
command-line options, and support for timeouts. Install it now with

┌────
│ $ opam install testo
└────

Testo development is an open-source community effort that [happens on
GitHub]. It has been funded by Semgrep, my employer and fine purveyor
of application security software. We're planning for a 1.0 release
once the known Windows-specific bugs are gone. No major breaking
changes are in sight.

For reference, the previous announcement from last year is [here].

Enjoy your free software!

[documentation] <https://semgrep.github.io/testo/>

[tutorial] <https://semgrep.github.io/testo/tutorial/>

[howto guides] <https://semgrep.github.io/testo/howtos/>

[OCaml API reference]
<https://semgrep.github.io/testo/reference/testo/Testo/index.html>

[Semgrep] <https://github.com/semgrep/semgrep>

[Changes since the last release]
<https://github.com/semgrep/testo/releases/tag/0.2.0>

[happens on GitHub] <https://github.com/semgrep/testo>

[here]
<https://discuss.ocaml.org/t/ann-testo-0-1-0-a-new-testing-framework-for-ocaml/15624>

tinyfiledialogs bindings
════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-tinyfiledialogs-bindings/17243/1>

Charles Averill announced
─────────────────────────

Bindings to the cross-platform tinyfiledialogs library, providing an
API for (you guessed it) simple graphical file/directory/color
selection using what the host operating system provides.

<https://opam.ocaml.org/packages/tinyfiledialogs/>

RFC: `for...in' construct
═════════════════════════

Archive: <https://discuss.ocaml.org/t/rfc-for-in-construct/17250/1>

Sacha Ayoun announced
─────────────────────

Hello,

Here's [an RFC] I drafted for adding a `for...in' construct to the
language. Feedback is welcome here :slight_smile:

Some reservations were already voiced [here], and acknowledged in the
RFC.

[an RFC] <https://github.com/ocaml/RFCs/pull/56>

[here]
<https://caml.zulipchat.com/#narrow/channel/527805-compiler/topic/.60for.20.2E.2E.20in.60.20in.20OCaml/with/539419833>

dead_code_analyzer 1.0.0
════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-dead-code-analyzer-1-0-0/17251/1>

fantazio announced
──────────────────

Hello everyone,

Almost 10 years later, the [dead_code_analyzer] is coming back !

Thanks to all the more or less recent contributors and reviewers (I am
not allowed to tag you all as a new user).

The tool has been updated to *OCaml 5.2*. It is available on `opam'.
There is planned work to update it to OCaml 5.3. There is planned
work to offer a version compatible with OCaml 4.14. However, there is
no intent to maintain the `dead_code_analyzer' on any OCaml version
other than the latest.

This static analyzer is a complement to the compiler’s warnings on
unused code constructs. It reads *.cmi* and *.cmt* files, produced by
using `-keep-locs' (on by default) on *.mli* files and `-bin-annot' on
*.ml* files.

It scans a compiled OCaml project and reports various warnings about
suspicious code:

• exported values never used,
• class fields never used,
• constructors and record fields never used,
• optional arguments always or never used,
• some stylistic issues.

By default, only the 3 first elements of the above list are reported.
More details available in the project’s /[README]/. A more thorough
documentation is in progress.

[dead_code_analyzer] <https://github.com/LexiFi/dead_code_analyzer>

[README]
<https://github.com/LexiFi/dead_code_analyzer/blob/master/README.md>

Relocatable OCaml
═════════════════

Archive: <https://discuss.ocaml.org/t/relocatable-ocaml/17253/1>

David Allsopp announced
───────────────────────

It is my great pleasure, 3 years to the day since I finalised the
first full demonstration of it in Ljubljana for the OCaml Workshop in
2022, to announce the general availability of Relocatable OCaml for
testing and review.

For example, this creates a 5.4.0 switch (the good old-fashioned slow
way):
┌────
│ $ time opam switch create --repos=relocatable=git+https://github.com/dra27/opam-repository.git#relocatable,default original-compiler ocaml.5.4.0
│ real 1m27.646s
└────
But, having run that, subsequent switches are a just a tad quicker:
┌────
│ $ eval $(opam env)
│ $ ocamlopt -where
│ /home/opam/.opam/original-compiler/lib/ocaml
│ $ time opam switch create . --repos=relocatable,default ocaml.5.4.0
│ real 0m5.105s
│ $ eval $(opam env)
│ $ ocamlopt -where
│ /home/opam/myproject/_opam/lib/ocaml
└────
And, um, that's it really!

Oh, there are a few other things bundled into the [relocatable branch]
on dra27/opam-repository:
• It's available for all versions of OCaml since 4.08. They install
using their "trunk" versions - i.e. the version number of what would
be the next release of OCaml (4.08.2, 4.09.2, 4.10.3, 4.11.3,
4.12.2, 4.13.2, 4.14.3, 5.0.1, 5.1.2, 5.2.2, 5.1.3, pre-release
5.4.0 and, for completeness, trunk OCaml is present as 5.5.0)
• Relocatable versions of `ocamlbuild' and `ocamlfind' are included,
along with patches for `omod' and `stdcompat'
• The `ocaml-option-' packages work for all of the older versions, too
• They all work on Windows (including 4.08-4.12, which aren't yet
available in opam-repository)
• They all work on Apple silicon (including 4.08, 4.09 and 4.11)

I have literally just opened the PRs on ocaml/ocaml
([ocaml/ocaml#14243], [ocaml/ocaml#14244], [ocaml/ocaml#14245] and
[ocaml/ocaml#14246]). In the interests of those of us who maintain
libraries and tools which have to target multiple versions of OCaml,
there will be some kind of story for keeping these older versions
available, but the focus for now will be reaching a consensus for
merging the feature itself into OCaml 5.5.

Please do test and report any issues at
<https://github.com/dra27/relocatable/issues>. Over-zealous lock-file
systems notwithstanding, the compiler should be as "drop-in" a
replacement as updating to any "point release" of the compiler
(i.e. if you have something which works in OCaml 5.3.0 but doesn't
work in Relocatable OCaml 5.3.1, that's a bug, and I'd _love_ to hear
about it a.s.a.p., please!)

[relocatable branch]
<https://github.com/dra27/opam-repository/tree/relocatable/packages>

[ocaml/ocaml#14243] <https://github.com/ocaml/ocaml/pull/14243>

[ocaml/ocaml#14244] <https://github.com/ocaml/ocaml/pull/14244>

[ocaml/ocaml#14245] <https://github.com/ocaml/ocaml/pull/14245>

[ocaml/ocaml#14246] <https://github.com/ocaml/ocaml/pull/14246>

FUN OCaml is live on YouTube and Twitch
═══════════════════════════════════════

Archive:
<https://discuss.ocaml.org/t/fun-ocaml-is-live-on-youtube-and-twitch/17254/1>

Sabine Schmaltz announced
─────────────────────────

We're at FUN OCaml and having some awesome OCaml talks today! And you
can join us remotely. 🧡🐫

For the schedule and links to the live streams of FUN OCaml 2025 from
Warsaw, see

<https://fun-ocaml.com>

We also have a discord server for FUN OCaml here:

<https://discord.gg/DxAghYKqn4>

Other OCaml News
════════════════

>From the ocaml.org blog
───────────────────────

Here are links from many OCaml blogs aggregated at [the ocaml.org
blog].

• [Relocatable OCaml - from concept to demo to PRs]
• [Upcoming OCaml Events]
• [Shipping a robust DB migration runner for Chaufr (OCaml + Caqti +
Lwt)]
• [FUN OCaml 2025 - Join us in Warsaw, Poland on September 15 for a
day full of presentations!]
• [Dynamic Formal Verification in OCaml: An Ortac/QCheck-STM Tutorial]
• [Caching opam solutions]
• [Build IDs for Day10]

[the ocaml.org blog] <https://ocaml.org/blog/>

[Relocatable OCaml - from concept to demo to PRs]
<https://www.dra27.uk/blog/platform/2025/09/15/relocatable-ocaml.html>

[Upcoming OCaml Events] <https://ocaml.org/events>

[Shipping a robust DB migration runner for Chaufr (OCaml + Caqti + Lwt)]
<https://fearful-odds.rocks/blog/db-migration-runner-for-chaufr>

[FUN OCaml 2025 - Join us in Warsaw, Poland on September 15 for a day
full of presentations!]
<https://www.youtube.com/watch/L_rTHhIEfVM?version=3>

[Dynamic Formal Verification in OCaml: An Ortac/QCheck-STM Tutorial]
<https://tarides.com/blog/2025-09-10-dynamic-formal-verification-in-ocaml-an-ortac-qcheck-stm-tutorial>

[Caching opam solutions]
<https://jon.recoil.org/blog/2025/09/caching-opam-solutions.html>

[Build IDs for Day10]
<https://jon.recoil.org/blog/2025/09/build-ids-for-day10.html>

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: 41217 bytes --]