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, 30 Dec 2025 10:33:12 +0100	[thread overview]
Message-ID: <m2secsnwkn.fsf@petitepomme.net> (raw)

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

Hello

Here is the latest OCaml Weekly News, for the week of December 23 to 30,
2025.

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

Release of pacomb 1.4
Raven Dev Meetings
Frontmatter_extractor.0.1
QCheck 0.90: The Great Renaming
Other OCaml News
Old CWN


Release of pacomb 1.4
═════════════════════

  Archive: <https://discuss.ocaml.org/t/release-of-pacomb-1-4/17630/1>


Christophe Raffalli announced
─────────────────────────────

  Dear camlers, I am pleased to announce the release of pacomb 1.4.

  Pacomb is a library + ppx to write grammars. It support: self
  extensible grammars, ambiguous grammars (with merge), late rejection
  of rule via raising exception from action code, priority and
  others. Is it relatively fast because it is compiled to efficient
  combinators. More details are available in the [git page] and the
  [documentation].

  As teaser, the usual calculator example:

  ┌────
  │ (* The three levels of priorities *)
  │ type p = Atom | Prod | Sum
  │ 
  │ let%parser rec
  │      (* This includes each priority level in the next one *)
  │      expr p = Atom < Prod < Sum
  │             (* all other rules are selected by their priority level *)
  │             ; (p=Atom) (x::FLOAT)                        => x
  │             ; (p=Atom) '(' (e::expr Sum) ')'             => e
  │             ; (p=Prod) (x::expr Prod) '*' (y::expr Atom) => x*.y
  │             ; (p=Prod) (x::expr Prod) '/' (y::expr Atom) => x/.y
  │             ; (p=Sum ) (x::expr Sum ) '+' (y::expr Prod) => x+.y
  │             ; (p=Sum ) (x::expr Sum ) '-' (y::expr Prod) => x-.y
  └────

  Here is a list of the main changes from 1.3:

  • Add a "not charset combinator" for regexp `\[!...\]', it is distinct
    from `\[^...\]' as it parses nothing.
  • File was not closed by Grammar.parse_file in case of parse error
  • New Grammar.set_debug_merge to allow debugging ambiguous grammars
    (report by Matthieu Lemerre)
  • Compatibility with latest ocaml and ppxlib
  • Travis action to check compilation
  • Various documentation fix

  Possible roadmap for future version:

  • 1.5 : integrate a lexical entry for ocaml code with call back for
    specific {xxx| … |xxx}. This is code existing in simple_httpd’s
    chaml parser (equivalent to php but in cocaml), that I wish to
    integrate in pacomb.
  • 2.0 : rewrite the combinators with algebraic effects. The semantics
    will be much better than the current implementation using
    references.

  Cheers,

  Christophe


[git page] <https://github.com/craff/pacomb>

[documentation] <https://raffalli.eu/pacomb/pacomb>


Raven Dev Meetings
══════════════════

  Archive: <https://discuss.ocaml.org/t/ann-raven-dev-meetings/17596/3>


Continuing this thread, Thibaut Mattio announced
────────────────────────────────────────────────

  We'll be skipping the dev meeting on the 29th for the holidays, so the
  next Raven dev meeting will be on *Monday, January 5, 2026, at 10:00
  AM CET (2:30 PM IST)*.

  Link: <https://meet.google.com/giw-bsdy-sjf>


Frontmatter_extractor.0.1
═════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-frontmatter-extractor-0-1/17634/1>


Mikhail announced
─────────────────

  Hi there! :waving_hand:

  I am writing again about my new library, which I must create, because
  there is simply no alternative available.

  [Frontmatter_extractor] is a small library that extracts the front
  matter section of a text file. It is commonly used in static content
  generators (blog engines, etc), such as those that convert Markdown
  files into HTML or other formats.

  *Example of usage*

  ┌────
  │ let some_text = {|
  │ ---
  │ title: "My First Blog Post"
  │ date: 2025-12-1
  │ ---
  │ 
  │ Hello! It's just some text...
  │ |};;
  └────

  Extract frontmatter as plain text.
  ┌────
  │ # Frontmatter_extractor.of_string some_text;;
  │ 
  │ - : Frontmatter_extractor.extracted =
  │ {Frontmatter_extractor.matter =
  │   Some "\ntitle: \"My First Blog Post\"\ndate: 2025-12-1\n";
  │  body = "\n\nHello! It's just some text...\n"}
  └────

  Extract the front matter as parsed YAML values. The yaml library needs
  to be installed.

  ┌────
  │ # Frontmatter_extractor_yaml.of_string_exn some_text;;
  │ 
  │ - : Frontmatter_extractor_yaml.extracted =
  │ {Frontmatter_extractor_yaml.attrs =
  │   Some
  │    (`O [("title", `String "My First Blog Post"); ("date", `String "2025-12-1")]);
  │  body = "\n\nHello! It's just some text...\n"}
  └────

  *P.S.*

  It's not fully tested, but it's usable as a first version.


[Frontmatter_extractor]
<https://github.com/dx3mod/frontmatter_extractor>


QCheck 0.90: The Great Renaming
═══════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-qcheck-0-90-the-great-renaming/17613/2>


Continuing this thread, Jan Midtgaard announced
───────────────────────────────────────────────

  Version 0.91 of the QCheck packages is now available:

  <https://github.com/c-cube/qcheck/releases/tag/v0.91>

  This release adds [ocamlmig] annotations to most of the renamed
  combinators, in an attempt to ease migration for users. From my
  experiments so far, these work pretty well and allowed me to port
  [multicoretests] with little effort. Thanks to @raphael-proust for the
  suggestion and @v-gb for a nice tool! :folded_hands:

  Happy migration and testing! :smiley:


[ocamlmig] <https://github.com/v-gb/ocamlmig>

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


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

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

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

  • [AoAH Day 25: Claude OCaml Marketplace for all your festive coding
    needs]
  • [AoAH Day 24: Tuatara, an evolving Atom aggregator that mutates]
  • [AoAH Day 23: Unpac unifies git branching with package management]
  • [AoAH Day 22: Assembling monorepos for agentic OCaml development]
  • [AoAH Day 21: Complete dynamic HTML5 validation in OCaml and the
    browser]


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

[AoAH Day 25: Claude OCaml Marketplace for all your festive coding
needs] <https://anil.recoil.org/notes/aoah-2025-25>

[AoAH Day 24: Tuatara, an evolving Atom aggregator that mutates]
<https://anil.recoil.org/notes/aoah-2025-24>

[AoAH Day 23: Unpac unifies git branching with package management]
<https://anil.recoil.org/notes/aoah-2025-23>

[AoAH Day 22: Assembling monorepos for agentic OCaml development]
<https://anil.recoil.org/notes/aoah-2025-22>

[AoAH Day 21: Complete dynamic HTML5 validation in OCaml and the
browser] <https://anil.recoil.org/notes/aoah-2025-21>


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

             reply	other threads:[~2025-12-30  9:33 UTC|newest]

Thread overview: 273+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-30  9:33 Alan Schmitt [this message]
  -- strict thread matches above, loose matches on Subject: below --
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=m2secsnwkn.fsf@petitepomme.net \
    --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