Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Alan Schmitt <alan.schmitt@polytechnique.org>
To: "lwn" <lwn@lwn.net>, caml-list@inria.fr
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 06 Oct 2026 15:15:00 +0200	[thread overview]
Message-ID: <m2v77fx963.fsf@tm.home> (raw)


[-- Attachment #1.1.1: Type: text/plain, Size: 25494 bytes --]

Hello

Here is the latest OCaml Weekly News, for the week of September 29 to
October 06, 2026.

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

tinybox: 150 classic games (Pong to Quake) and Apps, in OCaml, and more
IX, a full OS (kernel, toolchain, vcs, …) in OCaml
Michel Mauny, 1959-2026
dream-html 4.0.0
hegel-ocaml 0.25.0 - concurrent stateful property-based testing
Tutorial on GADTs
OCaml Compiler Implemented in C++: It's Not Just Faster—It Also Increases Trust
Conf.funcp.org is a scam OCaml conference
Vaast 0.0.0 + Design discussion
a2a SDK in OCaml
Old CWN


tinybox: 150 classic games (Pong to Quake) and Apps, in OCaml, and more
═══════════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-tinybox-150-classic-games-pong-to-quake-and-apps-in-ocaml-and-more/18569/1>


Yoann Padioleau announced
─────────────────────────

  Hi,

  I made something. Well Claude made something, my first vibe coded
  project :slight_smile: An ode to code, 150 classic video games (from
  Pong to Quake), 50 classic apps (from VisiCalc and TurboPascal to
  Office and Chrome), all playable online and you can also admire their
  tiny OCaml code.  repo: <https://github.com/aryx/ocaml-elm-playground>

  the tinybox web app to play:
  <https://aryx.github.io/ocaml-elm-playground/tinybox.html>


IX, a full OS (kernel, toolchain, vcs, …) in OCaml
══════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-ix-a-full-os-kernel-toolchain-vcs-in-ocaml/18570/1>


Yoann Padioleau announced
─────────────────────────

  Hi,

  It is my pleasure to announce IX, a full operating system written in
  OCaml (by Claude Code). It is a continuation of two of my past
  projects, principia softwarica and XiX.

  Repo: <https://github.com/aryx/IX>

  website: <https://aryx.github.io/IX/>

  You can even explore the codebase with a nice visualizer, codemapv2
  (itself a rewrite, using Claude, of two of my past projects, codemap
  and codegraph done while at Facebook):
  <https://aryx.github.io/IX/codemap.html> Some literate books
  explaining in detail the code will arrive soon.  Enjoy!


Michel Mauny, 1959-2026
═══════════════════════

  Archive: <https://discuss.ocaml.org/t/michel-mauny-1959-2026/18571/1>


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

  Dear all,

  It is with great sadness that we (the OCaml Software Foundation) are
  sharing the news of the death of Michel Mauny, a long-time member of
  the OCaml community. Michel passed away on September 17th 2026 ([more
  information, in French]).

  During his career as INRIA research scientist, professor at ENSTA and
  CEO of Nomadic Labs, and among his many contributions, Michel:
  • co-authored in 1985 the paper that started Caml: "The Categorical
    Abstract Machine", Cousineau, Curien, Mauny ([PDF]) ;
  • actively contributed in the late 80s to the "Heavy Caml"
    implementation that predated Caml Light and OCaml ( see
    <https://ocaml.org/history> for more details ) ;
  • introduced stream parsers with Daniel de Rauglaudre ([1992 tech
    report]), designed and co-maintained the camlp4 preprocessor ;
  • wrote with Guy Cousineau the first book in English about OCaml, "The
    functional approach to programming" (1998) ;
  • taught (O)Caml in French universities and engineering schools
    throughout his career (Paris 7, Polytechnique, ENSTA) ;
  • advised several PhD students, including several who remained active
    in the OCaml community: Grégoire Henry, Çağdaş Bozman, Benoît Vaugon
    and Pierrick Couderc ;
  • created in 2001 the Caml Consortium, an earlier structure for
    industrial users to participate in and fund the development of OCaml
    at INRIA ;
  • created in 2018 the OCaml Foundation, with the more ambitious goals
    of collecting more funds to also support the broader OCaml software
    ecosystem. Michel had to leave the OCaml Foundation when he moved
    from INRIA to Nomadic Labs, and we try our best to follow his
    vision.

  This solemn moment is also an occasion to reflect on the rich history
  of our OCaml ecosystem, which grows by a collection of individual
  contributions. As we mark Michel’s passing, we celebrate and thank
  him, as well as the many individuals who dedicate their time and
  effort, often over decades, to building our programming commons.


[more information, in French]
<https://www.pfloic.net/P1230.aspx?IdPer=eynJZ8ADn&IdAN=Auto>

[PDF] <https://www.irif.fr/~scherer/doc/others/CAM-1985.pdf>

[1992 tech report] <https://inria.hal.science/inria-00074898/>


dream-html 4.0.0
════════════════

  Archive: <https://discuss.ocaml.org/t/ann-dream-html-4-0-0/18573/1>


Yawar Amin announced
────────────────────

  Hi, dream-html 4.0.0 has been released to opam:
  <https://ocaml.org/p/dream-html/4.0.0>

  Repo: <https://github.com/yawaramin/dream-html> API docs:
  <https://yawaramin.github.io/dream-html/dream-html/Dream_html/index.html>

  Dream-html is a library for generating HTML, closely integrated with
  Dream. It can be used as an alternative to Dream’s built-in Embedded
  ML templating language and comes with all current htmx attributes
  defined out of the box.

  In this release, I made a few breaking changes (hence major version
  bump):

  • Raise exceptions on path parameter parse errors: instead of
    responding with 400 Bad Request. This allows you to hook in your own
    custom response by catching the parse exception.
  • Remove unused form decoder error keys: specifically
    `error_expected_int32' and `error_expected_int64' which are already
    covered by `error_expected_int'.
  • Finally, revert to the previous style of HTML generation, breaking
    lines at the start of each attribute instead of pretty-printing the
    HTML with indentation. This is done for performance reasons.

  Fixes:

  • Router matching on encoded values, eg
    `/accounts/%F0%9F%91%8D/versions/1' is now able to extract the
    second segment, `👍'.

  New additions:

  • Invoker API attributes
  • Some more SVG elements

  Finally, raised the minimum supported OCaml version to 5.3.0 because
  of ppxlib.

  Enjoy!


hegel-ocaml 0.25.0 - concurrent stateful property-based testing
═══════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-hegel-ocaml-0-25-0-concurrent-stateful-property-based-testing/18575/1>


Ethan Chou announced
────────────────────

  Hello, we excited to announce hegel-ocaml 0.25.0!

  Since our last announcement of hegel-ocaml 0.14.1, we've added
  concurrent stateful property-based testing and nondeterminism handling
  to Hegel. Stateful property based testing sequences actions (which we
  call rules) that mutate the state of some model and the system under
  test. The concurrent part comes from running rules concurrently. Hegel
  spins up some number of workers and distributes some number of rules
  to each worker. Rules within a worker run sequentially, but rules in
  different workers may run concurrently. Of course, this introduces
  nondeterminism since the workers can run in any order or suspend. To
  handle this, Hegel repeatedly replays failures and outputs the number
  of times the failure was reproduced. Nondeterminism handling can also
  be turned off, so any nondeterministic failure produces a flaky test
  error instead. Of course, running Hegel inside of [Antithesis] will
  give reproducible failures.

  For an example of concurrent stateful testing, see the [docs].

  The unique feature of Hegel concurrent stateful tests is the ability
  to pass in different concurrency capabilities. Workers can be on
  threads, domains, or anything of the [`Concurrency.t' type.] We have
  included a thread capability and domains capability for your
  convenience. Hegel defaults to using threads.

  With the [`hegel_jane_async'] sublibrary, Jane Street ecosystem users
  can also run sequential stateful tests whose rules are async
  (returning `unit Deferred.t').

  For OxCaml users, hegel-ocaml is fully compatible with OxCaml
  5.2.0-minus39. With the [`hegel_jane_concurrent'] sublibrary, OxCaml
  users can also pass in concurrency capabilities from the `Concurrent'
  library. and run concurrent async stateful tests with
  `hegel_jane_async'.

  Happy testing and contributing!


[Antithesis] <https://antithesis.com>

[docs]
<https://hegel.dev/ocaml/hegel/Hegel/Stateful#concurrent-stateful-testing>

[`Concurrency.t' type.]
<https://hegel.dev/ocaml/hegel/Hegel/Concurrency#type-t.spawn_join_n>

[`hegel_jane_async'] <https://hegel.dev/ocaml/hegel/hegel_jane_async>

[`hegel_jane_concurrent']
<https://hegel.dev/ocaml/hegel/hegel_jane_concurrent>


Tutorial on GADTs
═════════════════

  Archive: <https://discuss.ocaml.org/t/tutorial-on-gadts/14040/33>


Continuing this thread, Raphaël Proust announced
────────────────────────────────────────────────

  I've written a supplement to the tutorial:

  <https://raphael-proust.gitlab.io/code/gadt-what-about-phantom-types.html>

  It compares GADTs and Phantom Types. It includes a (compulsory?)
  mention of Tyxml in discussion of Phantom Types. If anyone has other
  good examples to share I might add them.


OCaml Compiler Implemented in C++: It's Not Just Faster—It Also Increases Trust
═══════════════════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-compiler-implemented-in-c-its-not-just-faster-it-also-increases-trust/18576/1>


Michael Bacarella announced
───────────────────────────

  You're absolutely right to be skeptical of your compiler binaries. In
  this post, we'll explore how a comprehensive C++ reimplementation
  unlocks DDC verification for OCaml — while delivering meaningful
  compile-time improvements. 🚀

  —

  Wait! Don't leave yet! The rest of this was typed character by
  character by a human.

  We had some fun here recently talking about an unrelated project, [the
  OCaml runtime ported to Rust], and this led to an interesting
  side-channel discussion that surfaced a paper on [Debootstrapping
  without Archeology] by Nathanaëlle Courant, Julien Lepiller and
  Gabriel Scherer. I somehow had never come across this before!

  Background brief on trusting trust: once upon a time, UNIX god Ken
  Thompson trolled the world during an acceptance speech by asking
  "wouldn't it be *hilarious* if your beloved compiler authors had
  introduced a backdoor years (decades) ago that was still lurking
  today???" (paraphrased). The crux of the matter was that, to compile a
  C compiler which is implemented in C, you need an existing C compiler
  binary and that's an opportunity to introduce malware that wakes up
  when it recognizes it's compiling a target program (like `login').

  Ever since then, the infosec community has been… curious… about
  trusting trust and they breathed a huge sigh of relief when [David
  A. Wheeler proposed diverse double compilation (DDC)] as a
  mitigation. So, has anyone done this for our favorite language?

  Yes! In the Debootstrapping OCaml paper, the authors describe writing
  an OCaml interpreter in MiniML (an OCaml subset) and a compiler for
  MiniML in Scheme to do DDC, which proved that OCaml 4.07.1 has no
  trusting trust backdoors when compiling itself. But notice this part
  in their paper:

        If we assume unlimited work resources, tailored
        debootstrapping is a trivial problem: just port your
        programming-language implementation to another language
        that has already been debootstrapped (for example C). But
        this is a massive effort that may never happen in practice
        – especially as you have to first convince your language
        implementors to work in a different programming language.

  Tee hee.

  I present [this independent OCaml compiler implemented in C++]. It
  runs a OOMs faster than the MiniML/Scheme debootstrapper, solves DDC
  for OCaml 5.5.1 release (and 5.6+trunk), produces *identical* byte
  outputs to the OCaml compiler, and it even runs faster than the
  official OCaml compiler(!)

  *NOTE for quick skimmers*: this project does *not* make your OCaml
   programs faster. It may only let you compile OCaml programs faster.

  Regarding byte-identical outputs. There's a few documented minor
  divergences that could be closed if there's interest. The divergences
  do not preclude DDC and they're minor enough that I am claiming byte
  identical.

  Most importantly: because we have done DDC, we can conclude the OCaml
  5.5.1 (and 5.6+trunk) bootstrap has no back doors when compiling the
  compiler. Furthermore, because we *do* produce byte identical outputs
  as upstream, arguably no back door is lurking outside of the
  source-available views.[1]

  Regrettably, not only is there no backdoor in the OCaml compiler,
  there isn't even an easter egg. Sad! I would have at least snuck in
  something like `mb4c4rell4_waz_here', but that's probably why the good
  people behind OCaml have commit bits and I don't.


[the OCaml runtime ported to Rust]
<https://discuss.ocaml.org/t/a-line-by-line-translation-of-the-ocaml-runtime-from-c-to-rust>

[Debootstrapping without Archeology] <https://arxiv.org/pdf/2202.09231>

[David A. Wheeler proposed diverse double compilation (DDC)]
<https://dwheeler.com/trusting-trust/>

[this independent OCaml compiler implemented in C++]
<https://github.com/mbacarella/cxx-ocaml>

How to run DDC yourself
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  Clone the repo `git clone https://github.com/mbacarella/cxx-ocaml' and
  follow the instructions in `cxx/DDC.md'.

  Install an opam switch that uses the C++-based OCaml compiler

  Do this to get a switch whose `ocamlc' and `ocamlopt' are the C++
  version.

  ┌────
  │ opam switch create cxx-5.5 --empty
  │ opam pin add -n ocaml-variants.5.5.1 'git+https://github.com/mbacarella/cxx-ocaml#cxx-5.5'
  │ opam pin add -n ocaml-option-cxx.1   'git+https://github.com/mbacarella/cxx-ocaml#cxx-5.5'
  │ opam install ocaml-option-cxx ocaml-variants
  │ opam switch set-invariant --packages=ocaml-variants,ocaml-option-cxx
  └────

  To check that you're actually running the C++ version, do `ocamlc
  -cxx-version'. The stock compiler stays available in the switch as
  `ocaml*.stock'.

  Requirements: clang++ 18 or newer, cmake, ninja, and libzstd's dev
  files.

  Don't @ me that this is all a big hoax because you're missing some
  dependencies. [We have all seen how that goes].


[We have all seen how that goes]
<https://github.com/anthropics/claudes-c-compiler/issues/1>


Next steps
╌╌╌╌╌╌╌╌╌╌

  Minimize the extra dependencies needed above, like swapping clang for
  gcc to match OCaml upstream.

  I've only tested this on x86-64 on Linux, so ARM64 is an obvious next
  addition. Also probably should add support for flambda.

  There's still some low hanging performance-fruit wins that don't
  involve doing anything too obscene[2] to go after.

  I'm happy to hear your feedback! We can chat here or on the OCaml
  Discord's `#ai' channel.

  Let me know what you'd like to see!


Benchmarks
╌╌╌╌╌╌╌╌╌╌

  Take these with a grain of salt. Benchmarks are easy to embarass
  yourself with. That said.

  My benchmark host was a Desktop Ryzen 9 7950X with 128GB of RAM
  running Linux.

  I'd prepare an opam switch with each compiler and all project
  dependencies first.

  The benchmark itself is a full build of awso, an AWS library that has
  coverage for all of 300+ AWS services, including some very huge
  auto-generated modules with ppx.

  It builds byte code, native and assembles a gigantic awso-cli that
  links every aws library. I timed `dune build' and took the best of 3.

  I think this is a good real world test because it contains about
  100,000 build artifacts and it was a major quality of life issue to
  both do full rebuilds every time I tinkered with something. opam-ci
  certainly didn't appreciate how huge it was either.

  dune selected up to 32 cores on my host.

  *Results*

  • ocaml 5.5.1: 4998.41s user 1016.62s system 1904% cpu 5:15.91 total
  • c++ocaml 5.5.1: 3281.87s user 990.02s system 1984% cpu 3:35.30 total

  As we can see, both the CPU time and wall clock time are lower in the
  C++ version. In terms of wall time we are 1.47x faster.

  Every build artifact is bitwise identical to upstream: .cmi, .cmo,
  .cmx, .o, .cma, .cmxa. So are executables built in the same switch (in
  the C++ switch the stock compiler is `ocamlopt.stock' and the C++
  version is renamed over `ocamlopt'). The one difference is the
  .cmt/.cmti files, which are used by editor tooling. They decode to the
  same data but stock OCaml's marshalling has a form of structural
  sharing we didn't completely reproduce the layout of.[3]

  Note there's more than just the ocaml compiler itself running a
  build. A ton of time is spent in the gcc toolchain (like `as'). The
  improvement in individual artifacts is more substantial than the wall
  clock time suggests, but it's also a lot more work to describe. So
  I'll leave that for later if anyone is interested.


AI disclosure
╌╌╌╌╌╌╌╌╌╌╌╌╌

  I obviously didn't implement an OCaml compiler in C++ myself. I used
  Claude Code. This wasn't easy for Claude either: it has been working
  on this project for 4 months now, though progress sped up between the
  releases of Opus 4.8, 5.0 and 5.5, with some guest appearances by
  Fable.


This is not an April fool's
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  Don't confuse this with Stephen Dolan's troll, which [compiled OCaml
  into C++ template metaprograms]. Game respects game though.


[compiled OCaml into C++ template metaprograms]
<https://github.com/ocaml/ocaml/pull/14701>


Conf.funcp.org is a scam OCaml conference
═════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/conf-funcp-org-is-a-scam-ocaml-conference/18577/1>


Cuihtlauac Alvarado announced
─────────────────────────────

  This site:

  <https://conf.funcp.org/>

  Presents as an OCaml/Haskell/FP conference. However:

  • The event is not listed on the venue's official schedule:
    <https://www.javitscenter.com/calendar>
  • The funcp.org domain was registered two weeks ago, yet the oldest
    blog posts are dated from April: <https://rdap.org/domain/funcp.org>
  • The domain has no email routing — the contact addresses cannot
    receive mail: <https://mxtoolbox.com/emailhealth/funcp.org/>
  • Registration routes payment off-site to a third-party platform
    (gomry.com), with a $149+ ticket.
  • Listed speakers or organisers don't seem to have any track record in
    our community
  • Talk's topics don't stand scrutiny
  • Claims to be a second edition, but I can't find a prior edition

  If you registered, I suggest cancelling and getting your money back.

  This has been reported to the OCaml and Haskell security teams, the
  Javits Center, Google Safe Browsing, Cloudflare, dev.events (which
  lists the conference), and Gomry (the payment platform).

  Thanks to @adrien, @mtelvers and @edwin, who helped disclose this.


Vaast 0.0.0 + Design discussion
═══════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-vaast-0-0-0-design-discussion/18583/1>


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

  Hi all,

  This is a bit of mixed post.

  I am excited to announce the 1st prototype of [Vaast] !  Vaast is a
  library to handle multiple versions of the Typedtree at once. It is
  meant as a replacement for the current compiler-version-dependent
  techniques (be it preprocessing or branching).

  Similarly to ppxlib for the Parsetree, it provides a single
  representation of the Typedtree. Unlike ppxlib, it does not select a
  compiler version's representation but provides a form of
  super-representation which embeds the Typedtree from OCaml 4.14 to 5.5
  at once. It does so via a dedicated type encoding which explicitly and
  precisely identifies the differences in-between versions.Vaast's
  Typedtree representation is a shallow replacement for OCaml's
  Typedtree, making it cheap to use and easy to integrate incrementally
  in existing code.

  More details on its design are available on my blog:
  <https://fantazio.eu/articles/designing_vaast.html>

  This leads us to the second part of this post: discussing the design.
  The prototype is usable as a replacement for the compiler's Typedtree
  (and I [experimented it on the dead_code_analyzer]). Overall its
  design resembles the Typedtree but limits the breakages in user-code
  when updating to a more recent OCaml version.

  Here is an example of code in [odoc], relying on `cppo' to handle the
  different versions of the Typedtree:
  ┌────
  │ #if defined OXCAML
  │           | Tpat_alias (_, id, loc, _uid, _, _, _) -> (
  │ #elif OCAML_VERSION >= (5, 4, 0)
  │           | Tpat_alias (_, id, loc, _uid, _ty) -> (
  │ #elif OCAML_VERSION >= (5, 2, 0)
  │           | Tpat_alias (_, id, loc, _uid) -> (
  │ #else
  │           | Tpat_alias (_, id, loc) -> (
  │ #endif
  │               match maybe_localvalue id loc.loc with
  │               | Some x -> poses := x :: !poses
  │               | None -> ())
  └────

  And here is the equivalent using Vaast (and discarding the OxCaml
  case):
  ┌────
  │ | Tpat_alias {id; name; _} -> (
  │     match maybe_localvalue id name.loc with
  │     | Some x -> poses := x :: !poses
  │     | None -> ())
  └────

  There are some rough edges (`Texp_function', flattenable versioned
  types), and, before diving deeper into building the library, I would
  appreciate feedback and participation of those interested in its
  development and its use.  I opened a [dedicated issue] for that
  purpose.

  The mid-term goal is to add utility functions for usual operations,
  support a few mainstream modules of compiler-libs (`Parsetree',
  `Types'), and make Vaast a basic building block for static analyzers.
  The long-term goal is to interface most of compiler-libs.

  Thanks !


[Vaast] <https://github.com/fantazio/vaast>

[experimented it on the dead_code_analyzer]
<https://github.com/LexiFi/dead_code_analyzer/compare/master...fantazio:dead_code_analyzer:vaast>

[odoc]
<https://github.com/ocaml/odoc/blob/6dc58262b276af7e24b92ac5343b9f26d621122b/src/loader/typedtree_traverse.ml#L43>

[dedicated issue] <https://github.com/fantazio/vaast/issues>


a2a SDK in OCaml
════════════════

  Archive: <https://discuss.ocaml.org/t/ann-a2a-sdk-in-ocaml/18584/1>


prudencio announced
───────────────────

  SDK for the A2A protocol WIP

  <https://github.com/GildedHonour/a2a>


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 #1.1.2: Type: text/html, Size: 39027 bytes --]

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 568 bytes --]

             reply	other threads:[~2026-10-06 13:15 UTC|newest]

Thread overview: 313+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-06 13:15 Alan Schmitt [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-09-29  7:10 Alan Schmitt
2026-09-22  7:41 Alan Schmitt
2026-09-15  8:08 Alan Schmitt
2026-09-08 13:20 Alan Schmitt
2026-09-01  9:14 Alan Schmitt
2026-08-25  7:36 Alan Schmitt
2026-08-18  6:56 Alan Schmitt
2026-08-11 12:25 Alan Schmitt
2026-08-04  7:44 Alan Schmitt
2026-07-28 12:44 Alan Schmitt
2026-07-21 16:02 Alan Schmitt
2026-07-14  7:16 Alan Schmitt
2026-07-07 13:29 Alan Schmitt
2026-06-30 13:25 Alan Schmitt
2026-06-23 10:07 Alan Schmitt
2026-06-16 10:51 Alan Schmitt
2026-06-09  7:39 Alan Schmitt
2026-06-02  9:01 Alan Schmitt
2026-05-26  7:36 Alan Schmitt
2026-05-19  8:52 Alan Schmitt
2026-05-12  7:28 Alan Schmitt
2026-05-05  9:35 Alan Schmitt
2026-04-28  7:59 Alan Schmitt
2026-04-21  9:34 Alan Schmitt
2026-04-14  9:50 Alan Schmitt
2026-04-07  9:32 Alan Schmitt
2026-03-31  6:10 Alan Schmitt
2026-03-24  9:58 Alan Schmitt
2026-03-17 14:39 Alan Schmitt
2026-03-10 13:30 Alan Schmitt
2026-03-03 13:54 Alan Schmitt
2026-02-24 13:36 Alan Schmitt
2026-02-17 13:47 Alan Schmitt
2026-02-10 10:36 Alan Schmitt
2026-02-03 10:04 Alan Schmitt
2026-01-27 12:41 Alan Schmitt
2026-01-20  9:19 Alan Schmitt
2026-01-13  8:27 Alan Schmitt
2026-01-06 13:14 Alan Schmitt
2025-12-30  9:33 Alan Schmitt
2025-12-23 11:00 Alan Schmitt
2025-12-16 13:30 Alan Schmitt
2025-12-09 15:04 Alan Schmitt
2025-12-02 10:39 Alan Schmitt
2025-11-25 13:49 Alan Schmitt
2025-11-18 14:01 Alan Schmitt
2025-11-11  9:49 Alan Schmitt
2025-11-04 13:21 Alan Schmitt
2025-10-28 13:30 Alan Schmitt
2025-10-21  9:17 Alan Schmitt
2025-10-14  9:56 Alan Schmitt
2025-10-07 12:22 Alan Schmitt
2025-09-30 13:12 Alan Schmitt
2025-09-23 13:23 Alan Schmitt
2025-09-16 11:52 Alan Schmitt
2025-09-09 12:30 Alan Schmitt
2025-09-02 12:23 Alan Schmitt
2025-08-26 12:34 Alan Schmitt
2025-08-19 12:20 Alan Schmitt
2025-08-12 15:32 Alan Schmitt
2025-08-05  8:17 Alan Schmitt
2025-07-29  9:36 Alan Schmitt
2025-07-22 12:07 Alan Schmitt
2025-07-15 17:14 Alan Schmitt
2025-07-08 12:45 Alan Schmitt
2025-07-01 11:16 Alan Schmitt
2025-06-24 14:02 Alan Schmitt
2025-06-17  6:44 Alan Schmitt
2025-06-10 13:36 Alan Schmitt
2025-06-03  9:19 Alan Schmitt
2025-05-27  9:22 Alan Schmitt
2025-05-20 11:52 Alan Schmitt
2025-05-13  9:40 Alan Schmitt
2025-05-06  7:24 Alan Schmitt
2025-04-29  8:39 Alan Schmitt
2025-04-22 11:50 Alan Schmitt
2025-04-15  9:51 Alan Schmitt
2025-04-08 13:14 Alan Schmitt
2025-04-01  9:12 Alan Schmitt
2025-03-25  8:06 Alan Schmitt
2025-03-18 10:18 Alan Schmitt
2025-03-11 15:00 Alan Schmitt
2025-03-04 14:01 Alan Schmitt
2025-02-25 10:36 Alan Schmitt
2025-02-18 14:33 Alan Schmitt
2025-02-11  7:17 Alan Schmitt
2025-02-04 12:05 Alan Schmitt
2025-01-28 13:24 Alan Schmitt
2025-01-21 15:47 Alan Schmitt
2025-01-14  8:20 Alan Schmitt
2025-01-07 17:26 Alan Schmitt
2024-12-31  8:03 Alan Schmitt
2024-12-24  8:55 Alan Schmitt
2024-12-17 13:05 Alan Schmitt
2024-12-10 13:48 Alan Schmitt
2024-12-03 14:44 Alan Schmitt
2024-11-26  8:30 Alan Schmitt
2024-11-19  6:52 Alan Schmitt
2024-11-12 15:00 Alan Schmitt
2024-11-05 13:22 Alan Schmitt
2024-10-29 13:30 Alan Schmitt
2024-10-22 12:42 Alan Schmitt
2024-10-15 13:31 Alan Schmitt
2024-10-08 10:56 Alan Schmitt
2024-10-01 13:37 Alan Schmitt
2024-09-24 13:18 Alan Schmitt
2024-09-17 14:02 Alan Schmitt
2024-09-10 13:55 Alan Schmitt
2024-09-03  8:24 Alan Schmitt
2024-08-27  9:02 Alan Schmitt
2024-08-20  9:29 Alan Schmitt
2024-08-13 13:21 Alan Schmitt
2024-08-06  9:00 Alan Schmitt
2024-07-30 13:26 Alan Schmitt
2024-07-23 13:30 Alan Schmitt
2024-07-16  6:24 Alan Schmitt
2024-07-09  9:19 Alan Schmitt
2024-07-02  7:30 Alan Schmitt
2024-06-25 13:58 Alan Schmitt
2024-06-18 13:05 Alan Schmitt
2024-06-11 15:04 Alan Schmitt
2024-06-04 13:26 Alan Schmitt
2024-05-28  9:07 Alan Schmitt
2024-05-21 13:07 Alan Schmitt
2024-05-14 13:25 Alan Schmitt
2024-05-07  7:30 Alan Schmitt
2024-04-30  7:22 Alan Schmitt
2024-04-23 12:17 Alan Schmitt
2024-04-16 12:00 Alan Schmitt
2024-04-09  9:15 Alan Schmitt
2024-04-02 14:31 Alan Schmitt
2024-03-26  6:32 Alan Schmitt
2024-03-19 15:09 Alan Schmitt
2024-03-12 10:31 Alan Schmitt
2024-03-05 14:50 Alan Schmitt
2024-02-27 13:53 Alan Schmitt
2024-02-20  9:12 Alan Schmitt
2024-02-13  8:42 Alan Schmitt
2024-02-06 15:14 Alan Schmitt
2024-01-30 14:16 Alan Schmitt
2024-01-23  9:45 Alan Schmitt
2024-01-16 10:01 Alan Schmitt
2024-01-09 13:40 Alan Schmitt
2024-01-02  8:59 Alan Schmitt
2023-12-26 10:12 Alan Schmitt
2023-12-19 10:10 Alan Schmitt
2023-12-12 10:20 Alan Schmitt
2023-12-05 10:13 Alan Schmitt
2023-11-28  9:09 Alan Schmitt
2023-11-21  7:47 Alan Schmitt
2023-11-14 13:42 Alan Schmitt
2023-11-07 10:31 Alan Schmitt
2023-10-31 10:43 Alan Schmitt
2023-10-24  9:17 Alan Schmitt
2023-10-17  7:46 Alan Schmitt
2023-10-10  7:48 Alan Schmitt
2023-10-03 13:00 Alan Schmitt
2023-09-19  8:54 Alan Schmitt
2023-09-12 13:21 Alan Schmitt
2023-09-05  9:00 Alan Schmitt
2023-08-29 13:04 Alan Schmitt
2023-08-22  9:20 Alan Schmitt
2023-08-15 16:33 Alan Schmitt
2023-08-08  8:53 Alan Schmitt
2023-08-01  7:13 Alan Schmitt
2023-07-25  8:45 Alan Schmitt
2023-07-11  8:45 Alan Schmitt
2023-07-04  9:18 Alan Schmitt
2023-06-27  8:38 Alan Schmitt
2023-06-20  9:52 Alan Schmitt
2023-06-13  7:09 Alan Schmitt
2023-06-06 14:22 Alan Schmitt
2023-05-30 15:43 Alan Schmitt
2023-05-23  9:41 Alan Schmitt
2023-05-16 13:05 Alan Schmitt
2023-05-09 11:49 Alan Schmitt
2023-05-02  8:01 Alan Schmitt
2023-04-25  9:25 Alan Schmitt
2023-04-18  8:50 Alan Schmitt
2023-04-11 12:41 Alan Schmitt
2023-04-04  8:45 Alan Schmitt
2023-03-28  7:21 Alan Schmitt
2023-03-21 10:07 Alan Schmitt
2023-03-14  9:52 Alan Schmitt
2023-03-07  9:02 Alan Schmitt
2023-02-28 14:38 Alan Schmitt
2023-02-21 10:19 Alan Schmitt
2023-02-14  8:12 Alan Schmitt
2023-02-07  8:16 Alan Schmitt
2023-01-31  6:44 Alan Schmitt
2023-01-24  8:57 Alan Schmitt
2023-01-17  8:37 Alan Schmitt
2022-11-29 14:53 Alan Schmitt
2022-09-27  7:17 Alan Schmitt
2022-09-20 14:01 Alan Schmitt
2022-09-13  8:40 Alan Schmitt
2022-08-23  8:06 Alan Schmitt
2022-08-16  8:51 Alan Schmitt
2022-08-09  8:02 Alan Schmitt
2022-08-02  9:51 Alan Schmitt
2022-07-26 17:54 Alan Schmitt
2022-07-19  8:58 Alan Schmitt
2022-07-12  7:59 Alan Schmitt
2022-07-05  7:42 Alan Schmitt
2022-06-28  7:37 Alan Schmitt
2022-06-21  8:06 Alan Schmitt
2022-06-14  9:29 Alan Schmitt
2022-06-07 10:15 Alan Schmitt
2022-05-31 12:29 Alan Schmitt
2022-05-24  8:04 Alan Schmitt
2022-05-17  7:12 Alan Schmitt
2022-05-10 12:30 Alan Schmitt
2022-05-03  9:11 Alan Schmitt
2022-04-26  6:44 Alan Schmitt
2022-04-19  5:34 Alan Schmitt
2022-04-12  8:10 Alan Schmitt
2022-04-05 11:50 Alan Schmitt
2022-03-29  7:42 Alan Schmitt
2022-03-22 13:01 Alan Schmitt
2022-03-15  9:59 Alan Schmitt
2022-03-01 13:54 Alan Schmitt
2022-02-22 12:43 Alan Schmitt
2022-02-08 13:16 Alan Schmitt
2022-02-01 13:00 Alan Schmitt
2022-01-25 12:44 Alan Schmitt
2022-01-11  8:20 Alan Schmitt
2022-01-04  7:56 Alan Schmitt
2021-12-28  8:59 Alan Schmitt
2021-12-21  9:11 Alan Schmitt
2021-12-14 11:02 Alan Schmitt
2021-11-30 10:51 Alan Schmitt
2021-11-16  8:41 Alan Schmitt
2021-11-09 10:08 Alan Schmitt
2021-11-02  8:50 Alan Schmitt
2021-10-19  8:23 Alan Schmitt
2021-09-28  6:37 Alan Schmitt
2021-09-21  9:09 Alan Schmitt
2021-09-07 13:23 Alan Schmitt
2021-08-24 13:44 Alan Schmitt
2021-08-17  6:24 Alan Schmitt
2021-08-10 16:47 Alan Schmitt
2021-07-27  8:54 Alan Schmitt
2021-07-20 12:58 Alan Schmitt
2021-07-06 12:33 Alan Schmitt
2021-06-29 12:24 Alan Schmitt
2021-06-22  9:04 Alan Schmitt
2021-06-01  9:23 Alan Schmitt
2021-05-25  7:30 Alan Schmitt
2021-05-11 14:47 Alan Schmitt
2021-05-04  8:57 Alan Schmitt
2021-04-27 14:26 Alan Schmitt
2021-04-20  9:07 Alan Schmitt
2021-04-06  9:42 Alan Schmitt
2021-03-30 14:55 Alan Schmitt
2021-03-23  9:05 Alan Schmitt
2021-03-16 10:31 Alan Schmitt
2021-03-09 10:58 Alan Schmitt
2021-02-23  9:51 Alan Schmitt
2021-02-16 13:53 Alan Schmitt
2021-02-02 13:56 Alan Schmitt
2021-01-26 13:25 Alan Schmitt
2021-01-19 14:28 Alan Schmitt
2021-01-12  9:47 Alan Schmitt
2021-01-05 11:22 Alan Schmitt
2020-12-29  9:59 Alan Schmitt
2020-12-22  8:48 Alan Schmitt
2020-12-15  9:51 Alan Schmitt
2020-12-01  8:54 Alan Schmitt
2020-11-03 15:15 Alan Schmitt
2020-10-27  8:43 Alan Schmitt
2020-10-20  8:15 Alan Schmitt
2020-10-06  7:22 Alan Schmitt
2020-09-29  7:02 Alan Schmitt
2020-09-22  7:27 Alan Schmitt
2020-09-08 13:11 Alan Schmitt
2020-09-01  7:55 Alan Schmitt
2020-08-18  7:25 Alan Schmitt
2020-07-28 16:57 Alan Schmitt
2020-07-21 14:42 Alan Schmitt
2020-07-14  9:54 Alan Schmitt
2020-07-07 10:04 Alan Schmitt
2020-06-30  7:00 Alan Schmitt
2020-06-16  8:36 Alan Schmitt
2020-06-09  8:28 Alan Schmitt
2020-05-19  9:52 Alan Schmitt
2020-05-12  7:45 Alan Schmitt
2020-05-05  7:45 Alan Schmitt
2020-04-28 12:44 Alan Schmitt
2020-04-21  8:58 Alan Schmitt
2020-04-14  7:28 Alan Schmitt
2020-04-07  7:51 Alan Schmitt
2020-03-31  9:54 Alan Schmitt
2020-03-24  9:31 Alan Schmitt
2020-03-17 11:04 Alan Schmitt
2020-03-10 14:28 Alan Schmitt
2020-03-03  8:00 Alan Schmitt
2020-02-25  8:51 Alan Schmitt
2020-02-18  8:18 Alan Schmitt
2020-02-04  8:47 Alan Schmitt
2020-01-28 10:53 Alan Schmitt
2020-01-21 14:08 Alan Schmitt
2020-01-14 14:16 Alan Schmitt
2020-01-07 13:43 Alan Schmitt
2019-12-31  9:18 Alan Schmitt
2019-12-17  8:52 Alan Schmitt
2019-12-10  8:21 Alan Schmitt
2019-12-03 15:42 Alan Schmitt
2019-11-26  8:33 Alan Schmitt
2019-11-12 13:21 Alan Schmitt
2019-11-05  6:55 Alan Schmitt
2019-10-15  7:28 Alan Schmitt
2019-09-03  7:35 Alan Schmitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2v77fx963.fsf@tm.home \
    --to=alan.schmitt@polytechnique.org \
    --cc=caml-list@inria.fr \
    --cc=lwn@lwn.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox