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, 23 Sep 2025 15:23:59 +0200	[thread overview]
Message-ID: <m2jz1puwsw.fsf@mac-03220211.irisa.fr> (raw)

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

Hello

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

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

Introduction to the Dune build system, by OCamlPro
memprof-limits (first official release): Memory limits, allocation limits, and thread cancellation, with interrupt-safe resources
mlfront-shell - reference implementation of a build system
Zanuda – OCaml linter experiment
YOCaml, a framework for static site generator
Lwt.6.0.0~beta (direct-style, multi-domain parallelism)
schm-ocaml
detri cmd
seven ocaml tutorials
Ortac/Wrapper: a new plugin for specification driven unit testing
Other OCaml News
Old CWN


Introduction to the Dune build system, by OCamlPro
══════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/blog-introduction-to-the-dune-build-system-by-ocamlpro/17279/1>


OCamlPro announced
──────────────────

  *Greetings Cameleers,*

  We’ve just released a new blog post: [OCaml Onboarding: Introduction
  to the Dune build system]

  This is a practical, compact guide for those starting their OCaml and
  Dune journey — or helping others do so. Instead of diving into
  internals, we focus on what you need to know to get up and running
  with Dune confidently.

  We walk through:
  • How Dune thinks about builds and directories
  • The role of dune files and static declarations
  • The tooling one interacts with day-to-day

  The post keeps things hands-on and beginner-focused, with just enough
  theory to make the practical bits stick. We end by circling back to
  `dune init' — showing how understanding the basics makes the
  scaffolding tool far more intuitive.

  📝 Read it on the [OCamlPro Blog]

  Perfect for sharing with colleagues or newcomers dipping their toes
  into OCaml and Dune.

  As always, feedback welcome!  Until next time, — The OCamlPro Team


[OCaml Onboarding: Introduction to the Dune build system]
<https://ocamlpro.com/blog/2025_07_29_ocaml_onboarding_introduction_to_dune/>

[OCamlPro Blog] <https://ocamlpro.com/blog/>


memprof-limits (first official release): Memory limits, allocation limits, and thread cancellation, with interrupt-safe resources
═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-memprof-limits-first-official-release-memory-limits-allocation-limits-and-thread-cancellation-with-interrupt-safe-resources/8135/3>


Guillaume Munch-Maccagnoni announced
────────────────────────────────────

  I am pleased to announce the version `0.3.0' of the package
  `memprof-limits'. The main contribution of this release is the
  *support for OCaml 5 with multiple parallel domains*.

  Memprof-limits can henceforth be used to conveniently interrupt
  (CPU-bound) domains in your parallel computations, using /cancellation
  tokens/, with the support of features to ensure interrupt-safety and
  resource-safety.

  As example of uses, plans are underway to use memprof-limits to ensure
  the resource-safety of user interrupts in the Rocq prover (eliminating
  a class of bugs) and to add tactics for portable timeouts (that count
  allocations rather than elapsed time).

  • Read more:
    <https://guillaume.munch.name/software/ocaml/memprof-limits.0.3.0/>
  • Report bugs and suggestions:
    <https://gitlab.com/gadmm/memprof-limits>


mlfront-shell - reference implementation of a build system
══════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-mlfront-shell-reference-implementation-of-a-build-system/17186/2>


jbeckford announced
───────────────────

  There have been many improvements since the last update. Here are some
  of them:

  1. The trace store (needed to not rebuild everything from scratch) has
     been implemented.
  2. Build file ASTs are parsed, marshalled and put into a key-value
     directory (which can be shared or cached in CI).
  3. Build keys are generated and used to protect sharing of the parsed
     AST.
  4. A full walkthrough of “building” the 7zip executable from 7zip
     binary assets (it is more complicated than it sounds) is on the
     [documentation page]
  5. An `–autofix' option to update build files with checksums, and
     allowing SHA1 checksum for local files (both are for eventual
     support of Meta’s watchman tool)
  6. A new format for the JSON files (many functions versus one). The
     old format is deprecated.
  7. Many many bug fixes, including specification updates.


[documentation page]
<https://github.com/diskuv/dk?tab=readme-ov-file#using-the-build-tool-to-create-a-multi-platform-package>


Zanuda – OCaml linter experiment
════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-zanuda-ocaml-linter-experiment/11784/13>


Continuing this thread, Kakadu announced
────────────────────────────────────────

  Zanuda 2.0.0 with OCaml 5.3 support have hit opam.


YOCaml, a framework for static site generator
═════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-yocaml-a-framework-for-static-site-generator/15393/9>


Xavier Van de Woestyne announced
────────────────────────────────

Release `2.5.0'
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  We are delighted to present the new release of YOCaml: `2.5.0'!  As
  you can see, there have been a few intermediate versions since our
  last announcement. However, we have reached a new milestone: YOCaml
  can now be used seamlessly with an Applicative API (instead of the
  Arrow one), making many tasks much easier to express!

  We have also finally taken the time to write [a tutorial that explains
  how to use YOCaml to create a complete blog], step by step, and our
  goal is to expand it over time to add more and more guides! (The
  documentation/guide generator (<https://github.com/yocaml/yocaml-www>
  is also written in YOCaml and gives an idea of what can be done fairly
  quickly.)

  • [Repository]
  • [YOCaml packages]
  • [Complete release note]

  We look forward to receiving your feedback! YOCaml is a free and
  collaborative project, so any contributions (including the guide) are
  more than welcome! We would also be DELIGHTED to see your creations
  with YOCaml!

  /Happy Hacking!/


[a tutorial that explains how to use YOCaml to create a complete blog]
<https://yocaml.github.io/tutorial>

[Repository] <https://github.com/xhtmlboi/yocaml>

[YOCaml packages] <https://ocaml.org/packages/search?q=yocaml>

[Complete release note]
<https://github.com/xhtmlboi/yocaml/releases/tag/v2.5.0>


Lwt.6.0.0~beta (direct-style, multi-domain parallelism)
═══════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-lwt-6-0-0-beta-direct-style-multi-domain-parallelism/17283/1>


Raphaël Proust announced
────────────────────────

  After some feedback and some work, I'm happy to announce the release
  of `lwt.6.0.0~beta00' and `lwt_direct.6.0.0~beta00'!
  (<https://github.com/ocaml/opam-repository/pull/28558>)

  major CHANGES are:
  • direct style mode (see [alpha release announce]): use `await : 'a
    Lwt.t -> 'a' to transform any promises into a simple value. This
    allows you to break out of the monad which makes it possible to use
    libraries previously incompatible with Lwt.
  • multi-domain support: run separate schedulers in separate domains
    (some of the more advanced functions on Lwt are now
    domain-dependent, e.g., `run_in_main' becomes `run_in_domain' and
    takes one additional parameter)

  Feedback is very welcome. Happy beta-testing and good luck with the
  parallel-programming!


[alpha release announce]
<https://discuss.ocaml.org/t/ann-lwt-6-0-0-alpha-direct-style/16972/32>


schm-ocaml
══════════

  Archive: <https://discuss.ocaml.org/t/ann-schm-ocaml/17293/1>


Florent Monnier announced
─────────────────────────

  schm-ocaml provides a scheme-like syntax.

  schm3 integrates nicely with the rescript-version that provides the
  ocaml syntax.

  schm4 integrates with one of the later ocaml 4 versions, and tries to
  be accessible from .c

  <http://decapode314.free.fr/ocaml2/schm/>

  There is a tutorial:

  <http://decapode314.free.fr/ocaml2/schm/schm-tut.html>

  <http://decapode314.free.fr/ocaml2/schm/dl/schm4-0.03.zip>

  The oo got lost in a computer crash.

  So there is no oo.


detri cmd
═════════

  Archive: <https://discuss.ocaml.org/t/ann-detri-cmd/17301/1>


Florent Monnier announced
─────────────────────────

  There is now a fifth variant for detri:

  <http://decapode314.free.fr/ocaml/detris.html>

  This fifth one outputs .html, in-stead of console.

  If you took a previous version for the console, it was already
  something you could do by-yourself easily rewriting the console
  esc-chars to html, but now there is a ready-made one.

  (There is also a small tutorial, but it should be re-written,

  <http://decapode314.free.fr/ocaml/detri/tut/detri-tut.html>

  )


seven ocaml tutorials
═════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-s-tut-seven-ocaml-tutorials/17302/1>


Florent Monnier announced
─────────────────────────

  You will find seven new ocaml-tutorials on this page that I wrote
  recently:

  <http://decapode314.free.fr/ocaml2/blog/>

  It was not writen with a chat-bot, but you will maybe notice a
  difference in the style of writing, since I’m using a chat-bot.


Ortac/Wrapper: a new plugin for specification driven unit testing
═════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-ortac-wrapper-a-new-plugin-for-specification-driven-unit-testing/17304/1>


Charlène_Gros announced
───────────────────────

  Hello everyone,

  We, at Tarides, are excited to announce the release of a new plugin
  for `ortac': [Ortac/Wrapper]!

  This plugin is part of the Gospel project, a contract-based
  behavioural specification language for OCaml. `ortac' is a tool that
  converts an OCaml module interface with [Gospel] specifications into
  code to check those specifications. There are various ways to check
  specifications, all provided by plugins, and this post announces the
  new plugin: Ortac/Wrapper!

  This plugin is designed to generate a wrapped module that exposes the
  same interface as the original module but instruments all function
  calls with assertions corresponding to the Gospel specifications.  The
  main objective is to assist with unit testing. You provide the Gospel
  specification for your file, and Ortac will instrument it. When you
  run the unit tests on the wrapped version, if a specification is
  violated, Ortac will crash with an explicit error, telling you which
  portion of your code is incorrect and which specifications were
  violated.

  This work has been started by Clément Pascutto during his PhD at LMF
  and Tarides <https://theses.hal.science/tel-04696708v1>.  I continued
  his work to support some Gospel features such as the `old' operator
  and models.


[Ortac/Wrapper]
<https://github.com/ocaml-gospel/ortac/tree/main/plugins/wrapper>

[Gospel] <https://github.com/ocaml-gospel/gospel>

Installation
╌╌╌╌╌╌╌╌╌╌╌╌

  To install the Wrapper plugin, use the following command: `opam
  install ortac-wrapper'

  This will install the following OPAM packages:

  • `ortac-core.opam' which provides the `ortac' command-line tool and
    the core functionalities used by all plugins,
  • `ortac-runtime.opam' which provides the support library for the code
    generated by the Wrapper Ortac plugin,
  • `ortac-wrapper.opam' which provides the Wrapper plugin for the
    `ortac' command-line tool.


◊ To automatically generate dune files

  If you need dune rules to integrate Ortac into your project, you can
  install the Dune plugin: `opam install ortac-dune' This will install
  the following OPAM packages:

  • `ortac-core.opam' which provides the `ortac' command-line tool and
    the core functionalities used by all plugins,
  • `ortac-dune.opam' which provides the Dune plugin for the `ortac'
    command-line tool.


Try it!
╌╌╌╌╌╌╌

  Let’s dive into a mini tutorial to see how the Ortac/Wrapper plugin
  can be used to enhance your unit testing with Gospel
  specifications. We’ll walk through creating a simple polymorphic
  container type with limited capacity and see how to specify and test
  its behavior using Gospel.


◊ 1- Define the type and models

  First, we define a polymorphic container type `'a t' with Gospel
  specifications. This type will have a fixed capacity and a mutable
  list of contents.

  ┌────
  │ type 'a t
  │ (*@ model capacity: int
  │         mutable model contents: 'a list
  │         with t
  │         invariant t.capacity > 0
  │         invariant List.length t.contents <= t.capacity *)
  └────

  Here, we define two models:

  • `capacity': Represents the fixed size of the container.
  • `contents': Represents the mutable list of elements currently stored
    in the container.

  The invariants ensure that the capacity is always positive and that
  the contents list never exceeds the declared capacity.


◊ 2- Specify function behavior

  Next, we specify the behavior of functions that manipulate the type
  `'a t'. We’ll define a `create' function to initialize the container
  and an `add' function to insert elements into the container.

  ┌────
  │ val create: int -> 'a t
  │ (*@ t = create c
  │         requires c > 0
  │         ensures t.capacity = c
  │         ensures t.contents = [] *)
  │ val add: 'a t -> 'a -> unit
  │ (*@ add t x
  │         modifies t.contents
  │         ensures t.contents = x :: (old t.contents) *)
  └────

  Here the functions `create' and `add' are specified in Gospel.

  • The `create' function requires the capacity `c' to be strictly
    positive and ensures that the model of the new container has the
    specified capacity and an empty list of contents.
  • The `add' function modifies the contents of the container and
    ensures that the new element `x' is added to the list of contents.


◊ 3- Define projection functions

  To validate these specifications at runtime, you need to provide
  projection functions that link OCaml values to their Gospel
  models. Projection functions can be defined in two ways.

  • Using the same name as the model.
  • Using a different name, annotated with the attribute
    `@@projection_for' and the name of its Gospel model.

  For our example, we define the projection functions as follows.

  ┌────
  │ val capacity : 'a t -> int
  │ val to_list : 'a t -> 'a list [@@projection_for contents]
  └────

  Where we encounter the two types of naming.

  • The `capacity' function directly corresponds to the `capacity'
    model.
  • The `to_seq' function is explicitly declared as the projection for
    the `contents' model using the `@@projection_for' attribute.

  These projection functions are mandatory for the Wrapper plugin to
  instrument the specifications. If any projection function is missing,
  nothing will be generated and an error will be printed.


◊ 4- Generate the wrapped version

  Once you have both of the interface file annotated with Gospel and
  your implementation, you can start the generation.  If you have
  installed the `ortac-dune' package (which is recommended), you need to
  add the following in the dune file where you want to put the tests.

  ┌────
  │ (rule
  │  (alias runtest)
  │  (mode promote)
  │  (action
  │   (with-stdout-to
  │    dune.wrapper.inc
  │    (setenv
  │     ORTAC_ONLY_PLUGIN
  │     dune-rules
  │     (run ortac dune wrapper <path to lib/lib.mli>)))))
  └────

  This will generate an additional Dune file called `dune.wrapper.inc'
  that you will need to include once created: `(include
  dune.wrapper.inc)'. Also, add the name of the wrapped module to the
  `libraries' stanza of the test folder.


◊ 5- Add unit tests

  In order to test the `Lib' module, we can now simply write a program
  using the wrapped version. No need to specify the expected behaviour
  as the instrumentation will take care of that.

  For example, if you run the following program:

  ┌────
  │ open Lib_wrapped
  │ let () =
  │   let q = create 3 in
  │   add q 1;
  │   let q2 = create (-1) in
  │   add q2 1;
  │   ()
  └────

  You will obtain the following result:

  ┌────
  │ File "lib.mli", line 8, characters 0-175:
  │ Runtime error in function ~create'
  │   - the pre-condition
  │       `c > 0'
  │     was violated.
  │ Fatal error: exception Ortac_runtime.Error(_)
  └────

  This process helps ensure that your code adheres to the specified
  behavior, making your unit tests more robust and informative.


Feel free to report
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  For more information here is the link of the [dedicated README].  If
  you encounter any bugs or misunderstandings, please feel free to
  report them as an issue on [GitHub].

  We hope this plugin will be useful to you and look forward to your
  feedback!


[dedicated README]
<https://github.com/ocaml-gospel/ortac/blob/main/plugins/wrapper/README.md>

[GitHub] <https://github.com/ocaml-gospel/ortac/issues>


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

  This work is partly founded by the ANR grant ANR-22-CE48-0013.


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

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

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

  • [Upcoming OCaml Events]
  • [Database Testing in OCaml: From CRUD to Connection Pool Stress
    Testing]
  • [Vulkan graphics in OCaml vs C]
  • [Apache Parquet Files]
  • [Optimising Data Access in Parquet Files]
  • [FreeBSD unionfs deadlock]
  • [A first foray into agentic coding]
  • [Auto-configuration of MirageOS unikernels]


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

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

[Database Testing in OCaml: From CRUD to Connection Pool Stress Testing]
<https://fearful-odds.rocks/blog/database-testing-for-chaufr>

[Vulkan graphics in OCaml vs C]
<https://roscidus.com/blog/blog/2025/09/20/ocaml-vulkan/>

[Apache Parquet Files]
<https://www.tunbury.org/2025/09/17/parquet-files/>

[Optimising Data Access in Parquet Files]
<https://www.tunbury.org/2025/09/17/optimising-parquet-files/>

[FreeBSD unionfs deadlock]
<https://www.tunbury.org/2025/09/17/freebsd-unionfs/>

[A first foray into agentic coding]
<https://www.dra27.uk/blog/platform/2025/09/17/late-to-the-party.html>

[Auto-configuration of MirageOS unikernels]
<https://blog.robur.coop/articles/mollymawk-autoconfig.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: 36361 bytes --]

             reply	other threads:[~2025-09-23 13:24 UTC|newest]

Thread overview: 261+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-23 13:23 Alan Schmitt [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-10-07 12:22 Alan Schmitt
2025-09-30 13:12 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=m2jz1puwsw.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