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

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

Hello

Here is the latest OCaml Weekly News, for the week of August 26 to
September 02, 2025.

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

Porting my Toy OCaml Build System to Windows
mlfront-shell - reference implementation of a build system
An experimental branch of Merlin based on Domains and Effects
Ppx_rapper support, Caqti 2.0 port
Outreachy Demo Day August 2025
Other OCaml News
Old CWN


Porting my Toy OCaml Build System to Windows
════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/porting-my-toy-ocaml-build-system-to-windows/17185/1>


Steve Sherratt announced
────────────────────────

  <https://www.gridbugs.org/porting-my-toy-ocaml-build-system-to-windows/>


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

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


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

  I’ve made a reference implementation (“mlfront-shell”) of a build
  system that is mostly working but has zero (0) performance work so
  far. Among the many existing build + package managers, the
  “mlfront-shell” tool sits closest to Nix. It works on Windows, can
  download binary assets, is language-neutral with an easy-to-parse JSON
  build file.

  The reference implementation comes with a specification doc and a JSON
  schema. Since I’ll eventually be integrating the build system features
  into `dk' (my OCaml scripting tool), the docs live there. You’ll find
  a Quick Start guide and a Comparison table (the `opam' and `dune'
  comparisons are pertinent):

  <https://github.com/diskuv/dk/tree/1.0?tab=readme-ov-file>#

  Huge thanks to the a la carte authors, and also to @hbr for
  [fmlib_parse].

  Aside: Wow, another Windows-friendly build system post at
  <https://discuss.ocaml.org/t/porting-my-toy-ocaml-build-system-to-windows/17185>
  !

  Links:

  • JSON schema for JSON build files: Follow the [Quick Start - Build
    Tool] to see how to use it for auto-completion
  • Specification:
    <https://github.com/diskuv/dk/blob/1.0/docs/SPECIFICATION.md>
  • <https://discuss.ocaml.org/t/ocaml-version-of-the-build-systems-a-la-carte-paper/17042>
    topic
  • Source Code: <https://gitlab.com/dkml/build-tools/MlFront> (in
    particular the MlFront_Exec and MlFront_Thunk subprojects)


[fmlib_parse] <https://ocaml.org/p/fmlib_parse/latest>

[Quick Start - Build Tool]
<https://github.com/diskuv/dk/tree/1.0?tab=readme-ov-file#quick-start---build-tool>


An experimental branch of Merlin based on Domains and Effects
═════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-an-experimental-branch-of-merlin-based-on-domains-and-effects/17195/1>


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

  /The Merlin Team/ :man_mage: is very happy to announce an experimental
  version of Merlin: [Merlin Domains]!

  As a reminder, [Merlin] is an /editor service/ that provides advanced
  IDE features for OCaml. It can be used as a standalone binary or as a
  library, and is notably used by [OCaml LSP Server]. In other words, if
  you are using the [OCaml Platform extension] with Visual Studio Code,
  or [ocaml-eglot] with Emacs, you are already using Merlin *under the
  hood*.

  Even though over the years we’ve had relatively few complaints about
  Merlin’s performance, in some contexts (notably very large /files/),
  Merlin’s mechanism (`parsing file' (with recovery) -> `typing file'
  (with recovery) -> `performing analysis') could sometimes cause
  slowdowns!

  To address these slowdowns, we started an experimental branch that
  uses [domains] and [effects], which allow us *to interrupt the typing
  process at the right moment* when an analysis request comes in.

  In practice, let’s say you run an analysis command on a very large
  file: *the type-checker will progress up to the location that makes
  the analysis possible, run the analysis phase, return the result, and
  then continue typing the file*. This separation is possible thanks to
  control flow management enabled by effects, and by having two domains
  interact with each other.

  In practice, this makes the analysis phases much more efficient! We
  think this is a great example of migrating a regular OCaml application
  to one that takes advantage of multicore. For a more technical
  explanation of *how this experimental branch works internally*, @pitag
  and @Lyrm will talk about it at [Lambda World], in their talk [When
  magic meets multicore - OCaml and its elegant era of parallelism].

  Currently, the branch is still in its incubation phase, and *we’d be
  delighted to get your feedback*!


[Merlin Domains] <https://github.com/ocaml/merlin/tree/merlin-domains>

[Merlin] <https://ocaml.github.io/merlin/>

[OCaml LSP Server] <https://github.com/ocaml/ocaml-lsp>

[OCaml Platform extension]
<https://marketplace.visualstudio.com/items?itemName=ocamllabs.ocaml-platform>

[ocaml-eglot] <https://github.com/tarides/ocaml-eglot>

[domains] <https://ocaml.org/manual/5.2/api/Domain.html>

[effects] <https://ocaml.org/manual/5.3/effects.html>

[Lambda World] <https://lambda.world/>

[When magic meets multicore - OCaml and its elegant era of parallelism]
<https://lambda.world/speakers/?speaker=Sonja%20Heinze>

How to test the branch
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  To avoid installing this version of `merlin' unintentionally, we
  suggest /pinning/ this branch in the switches where you want to
  experiment with this new version (compatible with Merlin’s `main'):

  ┌────
  │ opam pin add https://github.com/ocaml/merlin#merlin-domains
  └────

  Although this experimental branch passes the /test-suite/, *your
  feedback is very important* to help collect potential bugs we may have
  missed.  We’ve added a `Bug/Merlin-domains' label to organize tickets
  related to this experimental branch.


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

  In the future, the goal of this branch (which will be regularly
  rebased on `main') is to *become the main branch*, so that all users
  can benefit from these improvements.  At the same time, the rest of
  the ecosystem depending on Merlin (such as the *OCaml LSP Server*)
  will be adapted to also take full advantage of these new features!


  /Happy Hacking!/ The Merlin Team :man_mage:


Ppx_rapper support, Caqti 2.0 port
══════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ppx-rapper-support-caqti-2-0-port/17194/3>


Continuing this thread, Chukwuma announced
──────────────────────────────────────────

  I recently implemented a database connection using caqti last 2 weeks
  and wrote a blog about it.  Here it is,
  <https://fearful-odds.rocks/blog/postgres-caqti-pooling-ocaml-2025/>

  I would like to listen to your feedback or comments regarding my
  approach.  Cheers


Outreachy Demo Day August 2025
══════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/outreachy-demo-day-august-2025/17167/7>


Continuing this thread, Patrick Ferris announced
────────────────────────────────────────────────

  For those that could not join us live, the presentations [have now
  been uploaded to watch.ocaml.org] – thank you everyone who attended
  and congratulations once again to our fantastic Outreachy interns
  @pawaskar-shreya and @kemsguy7, and a big thanks to our mentors
  @gridbugs and [Michael Dales] :two_hump_camel: !


[have now been uploaded to watch.ocaml.org]
<https://watch.ocaml.org/w/kZJRFM6iw9ug9BLNjEgKeH>

[Michael Dales] <https://digitalflapjack.com/>


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

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

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

  • [Upcoming OCaml Events]
  • [GeoTessera Python library released for geospatial embeddings]
  • [Mosaic Terminal User Interface]
  • [Building Database Layer in OCaml: From UUID v7 to Standardized
    Error Handling]
  • [Rust for Everyone!]
  • [Using ocaml-lsp-server via an MCP server]
  • [Terminal GUI for ocluster monitoring]
  • [Modern PostgreSQL Connection Pooling in OCaml (2025): Caqti + Dream
    + Lwt]
  • [A ZFS Scaling Adventure]
  • [Label Maker in js_of_ocaml using Claude]


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

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

[GeoTessera Python library released for geospatial embeddings]
<https://anil.recoil.org/notes/geotessera-python>

[Mosaic Terminal User Interface]
<https://www.tunbury.org/2025/08/31/mless/>

[Building Database Layer in OCaml: From UUID v7 to Standardized Error
Handling]
<https://fearful-odds.rocks/blog/database-service-layer-sprint>

[Rust for Everyone!]
<https://www.youtube.com/watch/R0dP-QR5wQo?version=3>

[Using ocaml-lsp-server via an MCP server]
<https://jon.recoil.org/blog/2025/08/ocaml-lsp-mcp.html>

[Terminal GUI for ocluster monitoring]
<https://www.tunbury.org/2025/08/24/ocluster-monitor/>

[Modern PostgreSQL Connection Pooling in OCaml (2025): Caqti + Dream +
Lwt] <https://fearful-odds.rocks/blog/postgres-caqti-pooling-ocaml-2025>

[A ZFS Scaling Adventure]
<https://www.tunbury.org/2025/08/23/zfs-scaling/>

[Label Maker in js_of_ocaml using Claude]
<https://www.tunbury.org/2025/08/22/label-maker/>


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

             reply	other threads:[~2025-09-02 12:23 UTC|newest]

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