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, 29 Sep 2026 09:10:38 +0200	[thread overview]
Message-ID: <m2jyo4h6s1.fsf@mac-03220211.irisa.fr> (raw)


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

Hello

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

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

2nd release elm_playground (a game engine for beginners)
moonpool 0.12
tw 1.1.0, Tailwind CSS in OCaml
Cascade: A Typed CSS Toolkit in OCaml
ppx_deriving_{yaml,ezjsonm,yamlx} 0.5.0
kqueue-ml 0.5.0
Windtrap: one library for all your OCaml tests
Ocsigen Server 8.0.0
Old CWN


2nd release elm_playground (a game engine for beginners)
════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-2nd-release-elm-playground-a-game-engine-for-beginners/18552/1>


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

  It is my pleasure, again, to announce the second release of
  `elm_playground', an OCaml package that allows you to easily create
  /pictures/, /animations/, and even /video games/ in a portable way
  using an API that really simplifies how to view the computer and its
  devices (the screen, keyboard, and mouse). The library offers a native
  backend to run the games from a terminal and a web backend to run the
  games in your browser.

  This is a port of the excellent Elm playground package
  <https://github.com/evancz/elm-playground> to OCaml.

  You can install it via OPAM via

  `opam install elm_playground; opam install elm_playground_native'.

  The main changes are most of the bugs in the first release have been
  fixed (mostly by Claude Code), and that now the native and web backend
  are fully working on all the examples and games. Here is for instance
  how to play Tetris compiled by jsoo:

  <https://aryx.github.io/ocaml-elm-playground/games/Tetris.html>

  Here are a few examples of code using the library.

  First a “picture” app:

  ┌────
  │ (* from https://elm-lang.org/examples/picture *)
  │ open Playground
  │ 
  │ let app =
  │   picture [
  │     rectangle brown 40. 200.
  │       |> move_down 80.;
  │     circle green 100.
  │       |> move_up 100.;
  │   ]
  │ 
  │ let main = Playground_platform.run_app app
  └────

  <https://us1.discourse-cdn.com/flex020/uploads/ocaml/optimized/2X/7/76fc1990fe116911097764df986f64fed41c28a4_2_470x500.png>

  Then an “animation” app:

  ┌────
  │ (* from https://elm-lang.org/examples/animation *)
  │ open Playground
  │ 
  │ let view time = [
  │     octagon darkGray 36.
  │       |> move_left 100.
  │       |> rotate (spin 3. time);
  │     octagon darkGray 36.
  │       |> move_right 100.
  │       |> rotate (spin 3. time);
  │     rectangle red 300. 80.
  │       |> move_up (wave 50. 54. 2. time)
  │       |> rotate (zigzag (-. 2.) 2. 8. time);
  │   ]
  │ 
  │ let app =
  │   animation view
  │ 
  │ let main = Playground_platform.run_app app
  └────

  <https://us1.discourse-cdn.com/flex020/uploads/ocaml/optimized/2X/e/e91563cbb6a0863570bbb19b057f5e8dae7164bf_2_470x500.png>

  And finally a “game” app:

  ┌────
  │ (* from https://elm-lang.org/examples/mouse *)
  │ open Playground
  │ 
  │ let view _computer (x, y) = [ 
  │   square blue 40.
  │    |> move x y
  │  ]
  │ 
  │ let update computer (x, y) =
  │   (x +. to_x computer.keyboard, y +. to_y computer.keyboard)
  │ 
  │ let app = 
  │   game view update (0., 0.)
  │ 
  │ let main = Playground_platform.run_app app
  └────

  <https://us1.discourse-cdn.com/flex020/uploads/ocaml/optimized/2X/2/24e8ffe672cda66c6a49e02013347cda0640f771_2_470x500.png>

  Note that you can write more complex games. For example here is a
  screenshot of a toy tetris app:

  <https://us1.discourse-cdn.com/flex020/uploads/ocaml/original/2X/4/4ded1d55c9994935c5ec3786ae549ba3a71b8eb6.png>

  For more information, follow the README at
  <https://github.com/aryx/ocaml-elm-playground>

  See also the code of some classic examples and try them online thx to
  jsoo: <https://aryx.github.io/ocaml-elm-playground/games/>


moonpool 0.12
═════════════

  Archive: <https://discuss.ocaml.org/t/ann-moonpool-0-12/18553/1>


Simon Cruanes announced
───────────────────────

  Howdy, I just released moonpool 0.12, now coming to an opam repository
  near you.

  Moonpool (first announced [here]) is a threadpool library for OCaml 5,
  leveraging domains to actually go brrrrrrr on multiple cores. The
  (still unique‽) design of moonpool allows the user to create multiple
  pools, whose cumulative size exceeds
  `Domain.recommended_domain_count()' without slowdown. It does that by
  using… threads… instead of domains. Yep.

  Anyway there's a whole bunch of bugfixes (including one to correct
  pathological memory usage in #45, big up @gasche as usual
  :heart_hands:), support for `ambient-context', some cleanup, dscheck
  for tests, etc.

  Cheerios on you and your cereal bowls


[here] <https://discuss.ocaml.org/t/ann-moonpool-0-1/12387>


tw 1.1.0, Tailwind CSS in OCaml
═══════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-tw-1-1-0-tailwind-css-in-ocaml/18554/1>


Thomas Gazagnaire announced
───────────────────────────

  I am happy to announce the release of [tw] 1.1.0 (available on brew
  already and soon in [opam]).

  ┌────
  │ $ brew install samoht/tap/tw
  │ $ opam install tw.1.1.0
  └────

  `tw' is an implementation of [Tailwind CSS v4] in pure OCaml. This is
  the first version I would advise people to use: the previous ones only
  partially supported some features, and it was unclear where things
  were breaking. The 1.1.0 release now covers /all/ the Tailwind v4
  utilities, variants and official plugins, and more importantly it
  comes with a proper, mechanical way to check that its output has no
  visual difference from Tailwind's.

  `tw' now comes with a CLI that is a drop-in replacement for the
  Tailwind CLI. It builds whole Tailwind projects from their CSS
  entrypoint (`tw -i src/app.css -o dist/app.css'), including `@theme',
  `@source', `@apply', custom utilities and variants, and the typography
  and forms plugins, *without Node.js*. It works for any project
  configured in CSS, whatever language generates the HTML.

  If you are using OCaml you can directly use an OCaml API with
  [Tw_html] that lets you build HTML components carrying their own
  styles. It exposes [htmlit]'s API but attaches `tw' classes to every
  node so you can query what CSS a given HTML fragment needs to be
  displayed.

  You can read more about the process to get to this release in my [blog
  post]. Feedback greatly appreciated in the [issue tracker] or in DMs!


[tw] <https://github.com/samoht/tw/>

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

[Tailwind CSS v4] <https://tailwindcss.com/>

[Tw_html] <https://github.com/samoht/tw/blob/main/lib/html/tw_html.mli>

[htmlit] <https://github.com/dbuenzli/htmlit>

[blog post]
<https://gazagnaire.org/blog/2026-09-23-tailwind-parity.html>

[issue tracker] <https://github.com/samoht/tw/issues>


Cascade: A Typed CSS Toolkit in OCaml
═════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/cascade-a-typed-css-toolkit-in-ocaml/18383/6>


Continuing this thread, Thomas Gazagnaire announced
───────────────────────────────────────────────────

  I am happy to announce the release of `cascade' 1.2.1 in `opam' and
  Homebrew. It mostly contains (many) bug fixes, a lot of them found by
  rendering stylesheets in headless Chrome and comparing the pixels.

  If you shipped minified CSS built with 1.1.0, please regenerate it and
  check the difference:

  ┌────
  │ $ cascade diff --diff=canonical old.css new.css
  └────

  If you want to check pixel-level differences of the rendering on a
  given page, you can now use:

  ┌────
  │ $ cascade diff --browser --html page.html a.css b.css
  └────

  This new command helped to identify and fix numerous issues; hence the
  (way too long) list of fixes in [CHANGES.md].


[CHANGES.md]
<https://github.com/samoht/cascade/blob/main/CHANGES.md#120>


ppx_deriving_{yaml,ezjsonm,yamlx} 0.5.0
═══════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-ppx-deriving-yaml-ezjsonm-yamlx-0-5-0/18556/1>


Patrick Ferris announced
────────────────────────

  Hello!

  I'm happy to announce the release of `ppx_deriving_yaml' and
  `ppx_deriving_ezjsonm' version `0.5.0' alongside the first release of
  `ppx_deriving_yamlx' which uses [YAMLx] as a backend (thank you to
  @raphael-proust and @mjambon for their work and input). All three
  derivers use the same core codec with each specialising to their
  particular representation.

  This release also contains a bug fix for deriving `_ array' types
  which was completely broken (so broken, your code wouldn't compile).


[YAMLx] <https://github.com/mjambon/yamlx>

Installing
╌╌╌╌╌╌╌╌╌╌

  ┌────
  │ opam update
  │ opam install ppx_deriving_yaml
  │ opam install ppx_deriving_ezjsonm
  │ opam install ppx_deriving_yamlx
  └────


Documentation
╌╌╌╌╌╌╌╌╌╌╌╌╌

  Please find the documentation on ocaml.org, for example [docs for
  ppx_deriving_yamlx].

  Happy deriving :two_hump_camel:


[docs for ppx_deriving_yamlx]
<https://ocaml.org/p/ppx_deriving_yamlx/latest/doc/index.html>


kqueue-ml 0.5.0
═══════════════

  Archive: <https://discuss.ocaml.org/t/ann-kqueue-ml-0-5-0/17835/2>


Continuing this thread, Anurag Soni announced
─────────────────────────────────────────────

  I've published a couple of new releases since 0.5.

  • Added support for `EVFILT_USER' and `EVFILT_SIGNAL'
  • Change the interface for registering events to avoid needing to
    allocate a record

  The new update can be found on [opam]


[opam] <https://opam.ocaml.org/packages/kqueue/kqueue.0.7.0/>


Windtrap: one library for all your OCaml tests
══════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-windtrap-one-library-for-all-your-ocaml-tests/18561/1>


Thibaut Mattio announced
────────────────────────

  Hi everyone!

  I'm happy to announce the release of [Windtrap], a testing framework
  for OCaml that brings the different testing methods of the ecosystem
  into one library:

  • Unit tests, with an Alcotest-like API.
  • Expect and snapshot tests, with a companion PPX compatible with
    `ppx_expect' and `ppx_inline_test', but usable without it.
  • Property tests as seen in [QCheck], with a library of textbook laws
    (round trips, orders, associativity, and more).
  • Stateful and differential tests, as seen in [qcheck-stm] and
    [Monolith], on one domain or several.
  • Test coverage (as with [Bisect_ppx]) and mutation testing (as with
    [mutaml]).

  Every kind of test composes with the others into one suite and one
  output, and the library has *no dependencies* beyond OCaml (the
  optional PPX uses ppxlib).

  Here's a small suite that tests the standard library with a unit test,
  a property stated as a textbook law, and a stateful test of `Stack'
  against a list:

  ┌────
  │ open Windtrap
  │ 
  │ (* A reference for Stack: a list, its top first. *)
  │ module Model = struct
  │   type t = int list ref
  │ 
  │   let create () = ref []
  │   let push x m = m := x :: !m
  │   let length m = List.length !m
  │ 
  │   let pop m =
  │     match !m with
  │     | [] -> raise Stack.Empty
  │     | x :: rest ->
  │         m := rest;
  │         x
  │ end
  │ 
  │ let stack = abstract "s" ~pp:(fun ppf m -> Testable.pp (list int) ppf !m)
  │ 
  │ let lists =
  │   group "list"
  │     [
  │       test "rev reverses a list" (fun () ->
  │           equal (list int) [ 3; 2; 1 ] (List.rev [ 1; 2; 3 ]));
  │       prop "rev is an involution" (Gen.list Gen.int)
  │         (Law.involutive (list int) List.rev);
  │     ]
  │ 
  │ let stacks =
  │   group "stack"
  │     [
  │       stateful "behaves like a list"
  │         [
  │           command "create" (Gen.unit @-> makes stack) Model.create Stack.create;
  │           command "push"
  │             (Gen.int @-> stack ^-> returns unit)
  │             Model.push Stack.push;
  │           command "pop" (stack ^-> returns int) Model.pop Stack.pop;
  │           command "length" (stack ^-> returns int) Model.length Stack.length;
  │         ];
  │     ]
  │ 
  │ let () = exit (run "stdlib" [ lists; stacks ])
  └────

  We built Windtrap at [Invariant] as part of our work on making code
  written by agents more trustworthy. Agents replicate what they find in
  a repository, so a project full of strong tests gets more of
  them. Windtrap comes with an [agent skill] that guides agents towards
  the right kind of test, but we care just as much about humans, and put
  a lot of effort into making the API and output ergonomic and
  delightful.

  You can read more about it in the [announcement post]. It walks
  through an example suite, what a failure looks like, coverage and
  mutation testing, and an experiment where we used Windtrap to test the
  OCaml standard library.

  To install it (when [the PR] is merged on opam-repository):

  ┌────
  │ opam install windtrap ppx_windtrap 
  └────

  The [manual] (written by agents with my guidance, I hope you'll find
  the writing voice bearable, but if enough people complain I'll look
  into rewriting it by hand) has one page per kind of test. Feedback is
  very welcome, here or on the [issue tracker].

  Happy hacking!

  —


[Windtrap] <https://github.com/invariant-hq/windtrap>

[QCheck] <https://github.com/c-cube/qcheck>

[qcheck-stm] <https://github.com/ocaml-multicore/multicoretests>

[Monolith] <https://gitlab.inria.fr/fpottier/monolith>

[Bisect_ppx] <https://github.com/aantron/bisect_ppx>

[mutaml] <https://github.com/jmid/mutaml>

[Invariant] <https://invarianthq.dev/>

[agent skill]
<https://github.com/invariant-hq/windtrap/blob/main/SKILL.md>

[announcement post] <https://invarianthq.dev/blog/announcing-windtrap/>

[the PR] <https://github.com/ocaml/opam-repository/pull/30817>

[manual] <https://github.com/invariant-hq/windtrap/tree/main/doc/manual>

[issue tracker] <https://github.com/invariant-hq/windtrap/issues>

Acknowledgments
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  Windtrap builds on ideas and code from several OCaml projects:

  • *[Alcotest]* by Thomas Gazagnaire: test structure and runner design.
  • *Craig Ferguson's Alcotest PRs* ([#294], [#247]): API design,
     subcomponent diffing.
  • *[QCheck2]* by Simon Cruanes et al.: generator design and integrated
     shrinking.
  • *[Monolith]* by François Pottier, and *[qcheck-stm]* by Jan
     Midtgaard et al.: stateful testing against a reference, on one
     domain or several.
  • *[ppx_expect]* and *[ppx_inline_test]* by Jane Street: expect test
     paradigm and dune integration, and ppx_expect's test corpus.
  • *[Bisect_ppx]* by Anton Bachin et al.: coverage instrumentation and
     runtime.
  • *[mutaml]* by Jan Midtgaard: mutation testing for OCaml as a PPX.
  • *[mtime]* by Daniel Bünzli: the monotonic clock.


[Alcotest] <https://github.com/mirage/alcotest>

[#294] <https://github.com/mirage/alcotest/pull/294>

[#247] <https://github.com/mirage/alcotest/pull/247>

[QCheck2] <https://github.com/c-cube/qcheck>

[Monolith] <https://gitlab.inria.fr/fpottier/monolith>

[qcheck-stm] <https://github.com/ocaml-multicore/multicoretests>

[ppx_expect] <https://github.com/janestreet/ppx_expect>

[ppx_inline_test] <https://github.com/janestreet/ppx_inline_test>

[Bisect_ppx] <https://github.com/aantron/bisect_ppx>

[mutaml] <https://github.com/jmid/mutaml>

[mtime] <https://erratique.ch/software/mtime>


Ocsigen Server 8.0.0
════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-ocsigen-server-8-0-0/18564/1>


Vincent Balat announced
───────────────────────

  Hi everyone!

  Ocsigen Server 8.0.0 is out, the web server written in OCaml, usable
  as an executable or as a library. Some highlights:

  • *One command, no config file*: `ocsigenserver ./public' serves a
     directory, and `ocsigenserver --reverse-proxy
     http://localhost:9000' puts a proxy in front of your app, with
     compression and security headers already on.
  • *Static files* now answer conditional requests (ETag, 304) and byte
     ranges, so seeking in a video or resuming a download just works.
  • *zstd compression*, on a new bytesrw backend.
  • A new *Securityheaders* extension.
  • Access logs in the standard *Combined Log Format*, readable by the
    usual tools.
  • The public modules were renamed (`Ocsigen.Server', `Ocsigen.Config',
    …). The new `ocsigenserver-compat' package keeps the old names, so
    existing code still builds.

  `opam install ocsigenserver'

  A release of Eliom and other projects compatible with this version
  will follow in a few weeks.

  All the details are in the blog post:
  <https://ocsigen.org/blog/posts/ocsigenserver-8.0.0.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 #1.1.2: Type: text/html, Size: 37671 bytes --]

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

             reply	other threads:[~2026-09-29  7:10 UTC|newest]

Thread overview: 312+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-29  7:10 Alan Schmitt [this message]
  -- strict thread matches above, loose matches on Subject: below --
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=m2jyo4h6s1.fsf@mac-03220211.irisa.fr \
    --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