From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Authentication-Results: plum.tunbury.org; dkim=pass (1024-bit key; unprotected) header.d=inria.fr header.i=@inria.fr header.a=rsa-sha256 header.s=dc header.b=cJMC7F3G; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=polytechnique.org header.i=@polytechnique.org header.a=rsa-sha256 header.s=svoboda header.b=jEaaBbmC; dkim-atps=neutral Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=192.134.164.83; helo=mail2-relais-roc.national.inria.fr; envelope-from=caml-list-owner@inria.fr; receiver=tunbury.org Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by plum.tunbury.org (Postfix) with ESMTPS id 50D0640083 for ; Tue, 9 Sep 2025 12:30:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=from:to:date:message-id:mime-version:subject:reply-to: sender:list-id:list-help:list-subscribe:list-unsubscribe: list-post:list-owner:list-archive; bh=BdPjvM2yrI01y+y2xLrE70WS3xIn9zdb0bLU8GTSxtI=; b=cJMC7F3GLjeM7H83ilaH66/acpKysQyOeL29FVCL+SMNLXa1yzGrrz5N VqaUsiIep8QuPn8g0x1sPiE+g0khiwt+vwL5BhxGm2rnBk4S1LYbou+ZN apPb6CaPnWoLI90nRuoeADMv/jloECFJ7aM9z62DP1GEIhBGU6ajfuKdB I=; X-CSE-ConnectionGUID: vl+dMjgOQZajwTAhsV8DnQ== X-CSE-MsgGUID: dGfUA4kDS9WH5f+qKt0gFQ== Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr designates 128.93.162.160 as permitted sender) identity=mailfrom; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="caml-list-owner@inria.fr"; x-conformance=spf_only; x-record-type="v=spf1"; x-record-text="v=spf1 include:mailout.safebrands.com a:basic-mail.safebrands.com a:basic-mail01.safebrands.com a:basic-mail02.safebrands.com ip4:128.93.142.0/24 ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:128.93.162.3 ip4:128.93.162.88 ip4:89.107.174.7 mx ~all" Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@sympa.inria.fr) identity=helo; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="postmaster@sympa.inria.fr"; x-conformance=spf_only Authentication-Results: mail2-relais-roc.national.inria.fr; spf=Pass smtp.mailfrom=caml-list-owner@inria.fr; spf=None smtp.helo=postmaster@sympa.inria.fr; dkim=hardfail (body hash did not verify [final]) header.i=@polytechnique.org X-IronPort-AV: E=Sophos;i="6.18,251,1751234400"; d="scan'208,217";a="238216547" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 09 Sep 2025 14:30:56 +0200 Received: by sympa.inria.fr (Postfix, from userid 20132) id 5D550E0171; Tue, 9 Sep 2025 14:30:56 +0200 (CEST) Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 5767AE0171 for ; Tue, 9 Sep 2025 14:30:50 +0200 (CEST) X-CSE-ConnectionGUID: IIR8QeMUQX6qFUgnu8BPRw== X-CSE-MsgGUID: J0xC7bIrTryua/sO3VIY0w== IronPort-SDR: 68c01df7_BWT0V09z6yBrhkRNdGphKZakjEuwhAO9tLUVDd0MxZcLPph zO+GtUHU60VmiqMoVqOPRYtVbEMrOJ8f0HJOjug== X-ThreatScanner-Verdict: Negative X-IPAS-Result: =?us-ascii?q?A0HzAgAbHcBohSIeaIFaHgESCwEMg1BbKBkBaFozBwhJA?= =?us-ascii?q?4QWPINPjiKRTYhLgjCDFRYjFQEDAQ0uARsEAQIEAQEDAQIBhQACjC4CHwYBB?= =?us-ascii?q?DQTAQIEAQEBAQMCAwEBAQEBAQEBAQ0BAQUBAQECAQECBAYBAhABAQEBQEmGF?= =?us-ascii?q?QEFBS8NgkUZOHFRFAk3AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAgQIAQIKFwgWHTIOAQgKEwEBOBgjAxQBBgMCEQE1AwETA?= =?us-ascii?q?RIUBoJoAYIgAgJOAwUMBj+UIptMeoEygQGCDAEBBoEIPgMBAQIHAgICAQEOC?= =?us-ascii?q?SUB2gyBZAmBSYVsgkoaASpJawKER4Q8Jw+BVUSBSoFzSgdvgj8LFwEBAQEVA?= =?us-ascii?q?4EDIQEBCAk7AQmDJYJpgg0EFUQ+FB2BBjKCOYIogSFAghMEhgKCXIFbhxqBR?= =?us-ascii?q?EszLAFVExcLBwVbgQgDKjQxbjIdgSeFDYQdK0+FAoEXg1MRE2sPBoEVg12Ee?= =?us-ascii?q?0ADC209NxQblWsXKhlqF4E0AisIBgoBMwImBhAPFRoTAQkSDgEBCRkuAQMEB?= =?us-ascii?q?QMBDwsWChgBJgUJFQYBAgcHFAoJAgIEAQQCLZJGJBgqA3SOZY4Yk1kdbTQHh?= =?us-ascii?q?B+BXgYMiQiBJpYGhASBV4s8hwKSUiKYZCKCNoYngQAKgRwJB4Foa4xgiFQsB?= =?us-ascii?q?AQZhTiBfyOBKwEdDAczGjBDDQQCC4IVAQEyCQo8HA+LSIIBLwEOJxWBEgECg?= =?us-ascii?q?WtMEkF9gSaBdDu0PUE1AgEBDCwCBwEKAQEDCYViAQFpix8tBYFLAQE?= IronPort-PHdr: A9a23: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 IBzsPtXEU9Z1vpbnUsuKahqJu8XpIGY6le1 IronPort-Data: A9a23:Q5e2aqAf9VJrYxVW/27ow5YqxClBgxIJ4kV8jS/XYbTApGwq0TIOy GsYDD+EM6zbZmCnLookPou/o0JS6sLcydViOVdlrnsFo1Bi+ZOUX4zBRqvTF3rPdZObFBoPA +E2MISowBUcFyeEzvuVGuG86yQ6jOfQG+eU5NfsYkhZXRVjRDoqlSVtkus4hp8AqdWiCmthg /uryyHkEAHjgm4c3l48sfrZ9Us+5KWq5Fv0g3RnDRx1lA+G/5UqJMlHTU2BByOQapVZGOe8W 9HCwNmRlkvF/w0gA8+Sib3ydEsHWNb6ZWBiXVILM0QKqkEqSh0ais7XBtJEAatko2nhc+RK9 Tl4ncfYpTHFkUH7sL91vxFwS0mSNEDdkVPNCSDXXce7lyUqf5ZwqhnH4Y5f0YAwo45K7W9yG fMwCRE3PimOot+P8OyiZNRjgNlzBvHRI9ZK0p1g5Wmx4fcORICaBb3N4c5E0TwwgMFXAPuYY NAWAdZtRE2aMlsWYgtRU8p4x7vAanrXK1W0rHqun5FvtlXK7BMki4W4KN3Ra8CHTsVTn1+Fq yTB5WusCxUTMpqEwjqA826wruXIgCXwVZlUEeGosPlwjzV/w0RKUkBOCQXk/KbRZkiWeYpPA BMe2zASt7kv/QuwaYLDfizgvyvR1vIbc4ENT7Nht1nlJrDvyw2QA2xBSj9adPQ9pcouTHor0 EWIlpXnH1RSXKa9TGLEsK+TqSKuNCMVK24beCJCShEKizX+nG0tpjPudIZaHYuIt+2rAB/Nz DaX/AIGvapG2KbnyJ6H1VzAhjutoL3AQQg0+hjbUwqZAuVRONfNi2uAtQSz0BpQELt1WGVtq 1AqoaCjAA0mCIHU0jSKRPQREbqp4fecLTCahkRgd3XAy9hP0yD/FWyzyGggTKuMDiriUWW5C KM0kVkAjKK/xFPwMcdKj3uZUqzGN5TIG9X/TezzZdFTeJV3fwLv1HgxOBHLgj62zBd0yPxX1 XKnnSCEUS9y5UNPkGbeegvh+eZDKt0Wmz6OHs6TI+qPjub2iIGppUctawbSMLtmtMtoUS3Y+ NFbOoOSzBFOTOD1Yi/W6JMeZV0SNnMjba0aWOQKHtNv1jFOQTl7Y9eImONJU9I+xcx9yLyXl kxRr2cDkzITc1Wccl3SMhiOqdrHAf5CkJ7MFXd9ZQ/0gSl8MdzHAWV2X8JfQITLPddLlZZcJ 8Tpse3dahiWYmWWo2YuftPmoZZ8dR+mowuLMmD3KHI8ZpNsDUiBsNPtYgKlpmFEAzuVpPkOh eSq9jraZp4fGCVkLsLdM8y0w32L4HMypeNVXmnzGOd1RnnCyoZRBhLUsu4WOOAJcBXK+Sub3 V2ZADAevuj8nLU2+9jo24GB9tuMKLZhFBBKQmX007S/GnTC9VqdxatFAfe6bBHGdWbO4K75T /5k//L9F/wmnVhxrIt3FYhw/58+/9fCo7x7zBxuOWfiNnCHK+pHDCGd/M9tsqZt+OdoiTGuU BjSxugAaKS7Bsz1NXUweiwnV72n/tMJkGDw6f8VHh3L1BVv9uDabXQIbgi+sw0DHr5bK4h// PwAvvQR4AmBihYHFNaKoyRX1maUJEw7TKQVmcAGMbDvlzYU5AlOUb7EBg/yxaO/WdFGH00pA z2T3Y7ppbBXwGjceHsSS1nJ+8dghqo1hRMb929aemy1mefEiMQngzxX0zA8FTpOwjt9julcB 2lMNm9OH5uowQtGvsZ4clqXK1lzPyHBok3V4HkVpVLdVHitBzDsLnViGOOj/3I50mN7fxpE9 uuIlWrKbzTjU5zp1RsMXWpg+u3RXP1q1wj4gMv8Nd+0L5o7RjvEg6GVemsDrSX8M/4xnEHqo epL/v56TK/GaR4rvKwwDreF2YQqSByrIHJIRddj9vgrGV7wVS6T2z/UDWyMYeJIeuL39HGnB /xUJs5gUwq00ACMpGs5AY8OO7pFo+471uEde7/EJX80jJXHl2BH6KnvzynZgHMnZ/5Mksxnc 4PYSG+kI1yq3HBRnzfAkdlANm+GeuI7XQzb3t2u0eA3BpkG4fBNc0Yz7+OOhE+rEjBbpjCag ACSQJXt7b1G6Z9tlI7SAKl8F12KCdfsZt+priG3kfpzNO3qD+mfmT8RmFfdOyZuAYAwQPVyz LSEj8721hjKvZEwSGHopKOCHKhou+S3fvRbDZ/1Hkl/gCG+YpPI5koSyXGZMr1MqstWveO8d ju7aeyxVN8bYMhcz3trcBpjEw4RJqD0T6X4rwa/kqi8MQcc2gn5M9+Xz3/lQmVFfCsuOZelK AvLl9uxx9Jf9qJgOQQlAqx4PppGP1PTY6sqWNnvvz2+DGPzoFejuKPnpCUw+wPwFXiIP8br0 63rHiGkWkyJh5jJ69VFv6hZnB4dVi99iNZtWHMtwYd9jjTiAVMWKegYD449NahVtS7Pz7D9W iDGaTozKCf6XAkcSy7G3vbYYl69CNANa/DDHR54z3PMPm3yTMmFDaB6/yht32Zud3GxhKu7I NUZ4TvrMgL33phtQv0J6+emhft8gMnX3W8M5Vu3hvma78zy2lnW/CcJ8MtxuS37/wXlkVWSY 3AyQXFYTUq7T0/oDMsmfGRacP3clC261C0mNE9j3/6G07h3DsUZoBE8Bw03+rcEccIBKaVIQ C/nAWyX7Ah6H1QN7LAxtYtBbbBcUJq28wvTEEMnbRUVm7Cs528nOcIbgCdJS9stkOKa/5Uxi RH0i0UD6I+5xIy9FVFYJcjlO368b57UMwz0sQ== IronPort-HdrOrdr: A9a23:oro0xqoi4ghatI1R9fhJOkcaV5oWeYIsimQD101hICG9E/bo9P xG+c5w6faaslgssR0b9OxoW5PhfZq/z/9ICOAqVN/IYOCMggSVxe9ZgbfK8nnJJGnV9+JW16 tsGpIOauHYPBxdlsi/xAG5Fr8bsb26GU2T9ILj80s= X-Talos-CUID: 9a23:77q24W2vfwtajFZFVhTEgrxfO+EfIkTQ6UrpExGhJ1tmTqDFY2eq5/Yx X-Talos-MUID: 9a23:cWE9IQmZffepDyhm6QhfdnpAbNdDvK6PEnwXgIgP/NKjbhJRCm+C2WE= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.18,251,1751234400"; d="scan'208,217";a="125046757" X-MGA-submission: =?us-ascii?q?MDF5HA6thgiLlX7N9zHi9PnywYv+m0JpPefZxn?= =?us-ascii?q?hA38SlYdTkinDoO4jceAUxr+6AvCBrPz+2eoS0MX+z3Fze2alEuZZ4+j?= =?us-ascii?q?cYCwhvYqL/Z6Eps1AysA1DzSvv45p+zsLJSBuuk7xEl0qgmp1nOKGg6l?= =?us-ascii?q?M67U/Jwd0XsI8J+SgH+LJ8DA=3D=3D?= Received: from mx1.polytechnique.org ([129.104.30.34]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Sep 2025 14:30:48 +0200 Received: from mac-03220211.irisa.fr (mac-03220211.irisa.fr [131.254.21.249]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id 211391A2D1; Tue, 9 Sep 2025 14:30:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=polytechnique.org; s=svoboda; t=1757421047; bh=aoCgRi7qqPNTffOKWoYgZ+5nsRMSBLZnW7yWz5w5sJ8=; h=From:To:Subject:Date:Message-ID; b=jEaaBbmCKlQ8hqs53DI2Y1ArXVtr1jiMgTbapXx6fdfj9rOInAlla0eJ93JtCfNww T5Nr697X5jej5a+fVJq0tor87Qa3QknChgP3Va44cZ7ZDS42MPWTrI6sgdws7oN3hM A6WH/r94ctrfKaZekMwth+zDF8OqyFdov1ZGks7I= From: Alan Schmitt To: "lwn" , caml-list@inria.fr Date: Tue, 09 Sep 2025 14:30:46 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Sep 9 14:30:47 2025 +0200 (CEST)) X-Spam-Flag: Unsure, tests=bogofilter, spamicity=0.459522, queueID=40E0B1A736 X-Org-Mail: alan.schmitt.1995@polytechnique.org Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News Reply-To: Alan Schmitt X-Loop: caml-list@inria.fr X-Sequence: 19375 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello Here is the latest OCaml Weekly News, for the week of September 02 to 09, 2025. Table of Contents =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80 OCaml Platform Newsletter: May to August 2025 ppx_format New release of Menhir (20250903) Chat plugin activated, and adding more site categories Outreachy Mentors Wanted Other OCaml News Old CWN OCaml Platform Newsletter: May to August 2025 =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90 Archive: Sabine Schmaltz announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Welcome to the fifteenth edition of the OCaml Platform newsletter! In this May to August 2025 edition, we are excited to bring you the latest on the OCaml Platform, continuing our tradition of highlighting recent developments as seen in [previous editions]. To understand the direction we're headed, especially regarding development workflows and user experience improvements, check out our [roadmap]. You can [subscribe to this newsletter on LinkedIn]! *Highlights:* =E2=80=A2 *Enhanced Editor Integration*: OCaml-LSP 1.23.0 and Merlin 5.5 provide improved project navigation and error reporting. New ocaml-eglot brings modern LSP support to Emacs users. Continued work on project-wide features brings OCaml's development experience closer to modern IDEs. =E2=80=A2 *Enhanced Package Management*: opam 2.4.0 stable release elimin= ates GNU patch/diff dependencies, improves newcomer experience by avoiding problematic system compilers by default, and provides better handling of deprecated packages. This addresses common setup issues that previously complicated OCaml adoption. =E2=80=A2 *Improved Testing Workflows*: Dune 3.20 introduces concurrent w= atch mode operations, named test aliases for running specific tests (`@runtest-testname'), and timeout support for cram tests. =E2=80=A2 *Documentation and Tooling Maturity*: Odoc 3.1.0 refines cross-package linking capabilities. =E2=80=A2 *OCaml 5.4.0-beta1:* you can help test upcoming compiler improvements! *Announcements:* =E2=80=A2 [Emacs Integration for OCaml LSP Server: Introducing ocaml-eglo= t] (August 26, 2025) =E2=80=A2 [Dune Developer Preview: Portable External Dependencies for Dune Package Management] (June 5, 2025) =E2=80=A2 [Dune Developer Preview: Portable Lock Directories for Dune Pac= kage Management] (May 19, 2025) *Stable Releases:* =E2=80=A2 [Dune 3.20.1] (August 26, 2025) =E2=80=A2 [Dune 3.20.0] (August 21, 2025) =E2=80=A2 [Utop 2.16.0] (July 25, 2025) =E2=80=A2 [opam 2.4.1] (July 23, 2025) =E2=80=A2 [opam 2.4.0] (July 18, 2025) =E2=80=A2 [Odoc 3.1.0] (July 15, 2025) =E2=80=A2 [Ppxlib 0.36.1] (July 10, 2025) =E2=80=A2 [OCaml-LSP 1.23.0] (June 24, 2025) =E2=80=A2 [Merlin 5.5-503] (June 24, 2025) =E2=80=A2 [OCaml-LSP 1.21.0-4.14 for OCaml 4.14] (June 23, 2025) =E2=80=A2 [Merlin 4.19-414] (June 23, 2025) =E2=80=A2 [Dune 3.19.1] (June 11, 2025) =E2=80=A2 [Dune 3.19.0] (May 23, 2025) *Unstable Releases:* =E2=80=A2 [Dune 3.20.0~alpha4] (August 12, 2025) =E2=80=A2 [Dune 3.20.0~alpha3] (August 6, 2025) =E2=80=A2 [Dune 3.20.0~alpha2] (August 5, 2025) =E2=80=A2 [Dune 3.20.0~alpha1] (July 30, 2025) =E2=80=A2 [Dune 3.20.0~alpha0] (July 28, 2025) =E2=80=A2 [OCaml 5.4.0-beta1] (July 22, 2025) =E2=80=A2 [opam 2.4.0~rc1] (July 4, 2025) =E2=80=A2 [opam 2.4.0~beta1] (June 19, 2025) =E2=80=A2 [OCaml 5.4.0-alpha1] (May 22, 2025) =E2=80=A2 [Dune 3.19.0~alpha0] (May 20, 2025) =E2=80=A2 [opam 2.4.0~alpha2] (May 5, 2025) [previous editions] [roadmap] [subscribe to this newsletter on LinkedIn] [Emacs Integration for OCaml LSP Server: Introducing ocaml-eglot] [Dune Developer Preview: Portable External Dependencies for Dune Package Management] [Dune Developer Preview: Portable Lock Directories for Dune Package Management] [Dune 3.20.1] [Dune 3.20.0] [Utop 2.16.0] [opam 2.4.1] [opam 2.4.0] [Odoc 3.1.0] [Ppxlib 0.36.1] [OCaml-LSP 1.23.0] [Merlin 5.5-503] [OCaml-LSP 1.21.0-4.14 for OCaml 4.14] [Merlin 4.19-414] [Dune 3.19.1] [Dune 3.19.0] [Dune 3.20.0~alpha4] [Dune 3.20.0~alpha3] [Dune 3.20.0~alpha2] [Dune 3.20.0~alpha1] [Dune 3.20.0~alpha0] [OCaml 5.4.0-beta1] [opam 2.4.0~rc1] [opam 2.4.0~beta1] [OCaml 5.4.0-alpha1] [Dune 3.19.0~alpha0] [opam 2.4.0~alpha2] Dune =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C *Roadmap*: [Develop / (W4) Build a Project] The release introduces the `dune describe location' command for printing the path to executables. `dune runtest' now understands absolute paths and can run tests in specific build contexts. Improvements to cram test handling fix issues where tests attached to multiple aliases would run multiple times. [Develop / (W4) Build a Project] =E2=97=8A Testing Workflow Improvements Dune 3.20 significantly improves testing workflows with named test aliases. Tests declared with `(test (name a))' can now be run individually using `dune build @runtest-a'. Inline test libraries produce aliases like `@runtest-name_of_lib', allowing targeted execution of specific test suites without running the entire test battery. The new `(timeout )' field for cram tests prevents runaway tests from blocking CI pipelines. Combined with the ability to run `dune promote' while watch mode is active, these features remove common friction points in test-driven development workflows. =E2=97=8A Performance and Watch Mode Enhancements Dune's watch mode now supports concurrent `dune exec' operations and file promotion without requiring restarts, maintaining development flow during iterative changes. The introduction of the 'empty' alias containing no targets provides more flexible build target management. New `--alias' and `--alias-rec' flags offer alternatives to the `@@' and `@' command-line syntax. Dune 3.20 switches from MD5 to BLAKE3 for digesting targets and rules, providing both performance improvements and better cryptographic properties. *Activities:* =E2=80=A2 Enhanced implicit transitive dependency handling for OCaml 5.2+ compatibility ([#11866]) =E2=80=A2 Improved alias system with new 'empty' alias support ([#11556], [#11952], [#11955], [#11956]) =E2=80=A2 Better integration between promotion workflows and watch mode ([#12010]) =E2=80=A2 Fixed cram test duplicate execution issues ([#11547]) =E2=80=A2 Added timeout support for cram tests ([#12041]) =E2=80=A2 Added `dune describe location' command ([#11905]) =E2=80=A2 Named test aliases for targeted test execution ([#11558], [#111= 09]) =E2=80=A2 BLAKE3 migration for improved performance ([#11735]) *Maintained by*: Rudi Grinberg (@rgrinberg, Jane Street), Nicol=C3=A1s Ojeda B=C3=A4r (@nojb, LexiFi), Marek Kubica (@Leonidas-from-XIV, Tarides), Ali Caglayan (@Alizter), Etienne Millon (@emillon), Stephen Sherratt (@gridbugs, Tarides), Antonio Nuno Monteiro (@anmonteiro), Etienne Marais (@maiste, Tarides) [#11866] [#11556] [#11952] [#11955] [#11956] [#12010] [#11547] [#12041] [#11905] [#11558] [#11109] [#11735] =E2=97=8A Dune Package Management Portable lock directories appear as an experimental feature. This is a major prospective enhancement for teams working across different platforms. Lockfile naming in the experimental feature now includes version numbers (e.g., `ocaml-compiler.5.3.0.pkg' instead of `ocaml-compiler.pkg') to handle cases where different platforms require different package versions in the same project. The portable external dependencies feature extends this capability to system-level dependencies, ensuring consistent build environments across development, testing, and production systems. Combined with the existing binary cache system, this could reduce the complexity of managing OCaml projects in diverse environments. Note however, that the outcome of these experiments, and whether they mature into features on the stable version of Dune is still open. If you would like to help test and give feedback: run `dune pkg lock' and, if you encounter issues, please report them! At [dune.check.ci.dev], continuous monitoring shows ecosystem compatibility progress, with a large part of Dune-based packages in opam-repository now building successfully with Dune package management. *Activities:* =E2=80=A2 Enhanced ecosystem compatibility testing and monitoring at [dune.check.ci.dev] =E2=80=A2 ["Opam Health Check: or How we Got to 90+% of Packages Building= with Dune Package Management"] - detailed analysis of ecosystem compatibility progress [dune.check.ci.dev] ["Opam Health Check: or How we Got to 90+% of Packages Building with Dune Package Management"] =E2=97=8A Dune Developer Preview [Dune Developer Preview] continues to serve as an experimental channel for cutting-edge OCaml development features. The tooling includes built-in LSP support, formatting capabilities, and a shared cache that improves build performance. The team has expanded testing beyond initial projects to include broader ecosystem validation. The binary repository provides static Linux binaries (built with musl) that work across distributions, along with native binaries for macOS on both x86_64 and aarch64 architectures. *Activities:* =E2=80=A2 Enhanced LSP integration through automated tool management =E2=80=A2 Expanded ecosystem compatibility testing as documented in the [= Opam Health Check blog post] [Dune Developer Preview] [Opam Health Check blog post] Package Management =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C =E2=97=8A Opam The stable release of opam 2.4.0 represents a significant improvement in cross-platform reliability and user experience. The elimination of GNU `patch' and `diff' as runtime dependencies removes a major source of configuration issues that previously complicated deployment and CI/CD pipelines. The package manager now uses the native OCaml `patch' library instead. The default compiler selection during `opam init' no longer uses `ocaml-system', which was a common source of setup problems across different development environments. This change provides a more consistent onboarding experience for newcomers to OCaml. Package lifecycle management receives clearer visibility through enhanced handling of deprecated packages. The `opam show' command displays deprecated packages in gray, while `opam upgrade' removes confusing "not up-to-date" messages for packages being phased out. Development workflows benefit from the new `OPAMSOLVERTOLERANCE' environment variable, which addresses persistent solver timeout issues. The enhanced pinning system now displays current revisions of pinned repositories, providing better transparency in development workflows that rely on unreleased versions. For Windows users, the prebuilt binaries now include Cygwin's setup executable as a fallback when cygwin.com is inaccessible, improving reliability in restricted network environments. *Notable Activity:* =E2=80=A2 [opam 2.4.0 stable release] with comprehensive improvements =E2=80=A2 Use `patch' OCaml library instead of the `patch' command ([#589= 2]) =E2=80=A2 UX improvements: remove `ocaml-system' from default compiler at= init ([#6307]) =E2=80=A2 Provide a way to avoid solver timeouts ([#5510]) =E2=80=A2 Add `opam lock --keep-local' ([#6411]) *Maintained by*: Raja Boujbel (@rjbou, OCamlPro), Kate Deplaix (@kit-ty-kate, Ahrefs), David Allsopp (@dra27, Tarides) [opam 2.4.0 stable release] [#5892] [#6307] [#5510] [#6411] Editor Tools =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C *Roadmap*: [Edit / (W19) Navigate Code], [Edit / (W20) Refactor Code] [Edit / (W19) Navigate Code] [Edit / (W20) Refactor Code] =E2=97=8A OCaml LSP Server and Merlin The release of OCaml-LSP 1.23.0 and Merlin 5.5 brings enhanced project navigation and error reporting capabilities. The release addresses several long-standing issues with jump-to-definition, occurrences reporting, and inlay hints while adding new utilities for working with typed holes. Project-wide features continue to evolve, with cross-project symbol search and refactoring capabilities bringing OCaml's editor support in line with other modern programming languages. The features work by building an index with `dune build @build-index -w' and provide comprehensive symbol searching across entire codebases. By the way: we are currently working on a refactor feature that enables automatically extracting and inlining function parameters! Support for OCaml 4.14 continues with dedicated releases (OCaml-LSP 1.21.0-4.14 and Merlin 4.19-414). *Activities:* =E2=80=A2 Enhanced project navigation and symbol search capabilities =E2=80=A2 Better integration with Dune package management workflows =E2=80=A2 ["Internship Report: Refactoring Tools Coming to Merlin"] - new extract command for refactoring *Notable Activity:* =E2=80=A2 Release of [OCaml-LSP 1.23.0] =E2=80=A2 Release of [Merlin 5.5-503] =E2=80=A2 OCaml 4.14 support with [OCaml-LSP 1.21.0-4.14] and [Merlin 4.19-414] *OCaml LSP Server maintained by*: Ulysse G=C3=A9rard (@voodoos, Tarides), Xavier Van de Woestyne (@xvw, Tarides), Rudi Grinberg (@rgrinberg, Jane Street) *Merlin maintained by*: Ulysse G=C3=A9rard (@voodoos, Tarides), Xavier Van de Woestyne (@xvw, Tarides) ["Internship Report: Refactoring Tools Coming to Merlin"] [OCaml-LSP 1.23.0] [Merlin 5.5-503] [OCaml-LSP 1.21.0-4.14] [Merlin 4.19-414] =E2=97=8A Emacs Integration The introduction of ocaml-eglot provides Emacs users with modern LSP-based OCaml support as an alternative to the traditional merlin.el. This package leverages Emacs 29's built-in eglot LSP client, offering simplified configuration and access to project-wide features previously unavailable in Emacs. ocaml-eglot provides feature parity with other editors through ocaml-lsp-server, including project-wide search and rename capabilities. For users migrating from merlin.el, existing keybindings work immediately. The package is actively maintained, while merlin.el enters maintenance-only mode. The integration works with any OCaml major mode (tuareg, caml-mode, or neocaml) and provides error navigation, type information display, code generation through the "destruct" feature, and enhanced navigation between language constructs. *Notable Activity:* =E2=80=A2 [ocaml-eglot 1.0.0 release] bringing LSP to Emacs =E2=80=A2 Subsequent releases 1.1.0 and 1.2.0 adding flycheck support and Emacs 30.1 compatibility =E2=80=A2 Active development replacing maintenance-only merlin.el [ocaml-eglot 1.0.0 release] =E2=97=8A Visual Studio Code Plugin We're happy to announce that the Visual Studio Code editor plugin now integrates seamlessly with Dune package management! This is an important milestone for [Dune package management], and if you haven't tried it, or have been waiting for it to mature, now is a great time to get started! Development continues on improving the OCaml VSCode editor plugin experience. For example, when using opam to manage your project's dependencies and `ocaml-lsp-server' is not found in the opam switch, the plugin will now prompt users to install it. *Notable Activity:* =E2=80=A2 Automatically installing/updating ocaml-lsp-server ([#1725]) =E2=80=A2 Automatically configuring dune package management ([#1791]) [Dune package management] [#1725] [#1791] Documentation Tools =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95= =8C=E2=95=8C=E2=95=8C *Roadmap*: [Share / (W25) Generate Documentation] [Share / (W25) Generate Documentation] =E2=97=8A Odoc Odoc 3.1.0 continues to refine the modern documentation experience introduced with Odoc 3.0. The cross-package linking system and multimedia support capabilities help teams create comprehensive and discoverable documentation for complex systems. The improved documentation tooling addresses ecosystem discoverability and maintainability. The ability to generate interconnected documentation across multiple packages makes large OCaml codebases more accessible for new team members and external collaborators. Work continues on integrating Odoc 3.x with the OCaml.org documentation pipeline to provide a unified documentation experience across the ecosystem. As of July 2025, Odoc 3 is now live on OCaml.org, bringing the new features to the entire package ecosystem. The improved pipeline addresses dependency complexities by using new tooling that archives and restores opam packages, eliminating redundant builds that previously occurred thousands of times. *Notable Activity:* =E2=80=A2 [Release of Odoc 3.1.0] =E2=80=A2 ["Odoc 3 is now live on OCaml.org!"] - Jon Ludlam's blog post a= bout the deployment of Odoc 3 to ocaml.org =E2=80=A2 ["Odoc 3: So what?"] - in-depth explanation of Odoc 3's manual-focused features =E2=80=A2 Continued work on OCaml.org documentation pipeline integration through new package archiving tools *Maintained by*: Jon Ludlam (@jonludlam, Tarides), Daniel B=C3=BCnzli (@dbuenzli), Jules Aguillon (@julow, Tarides), Paul-Elliot Angl=C3=A8s d'Auriac (@panglesd, Tarides), Emile Trotignon (@EmileTrotignon, Tarides, then Ahrefs) [Release of Odoc 3.1.0] ["Odoc 3 is now live on OCaml.org!"] ["Odoc 3: So what?"] Ppxlib =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C Ppxlib 0.36.1 refines the improvements introduced in version 0.36.0, which updated the internal AST to target OCaml 5.2. This enables ppx authors to leverage features from OCaml 5.2 while maintaining compatibility with OCaml 4.08.0 and newer. The update includes changes to the representation of functions, and package authors are encouraged to consult [the upgrade guide] as some ppxes may require updates. *Notable Activity:* =E2=80=A2 [Release of Ppxlib 0.36.1] =E2=80=A2 Enhanced support for OCaml 5.2 AST features and compatibility improvements *Maintained by*: Patrick Ferris ([@patricoferris]) [the upgrade guide] [Release of Ppxlib 0.36.1] [@patricoferris] OCaml 5.4.0 =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C=E2= =95=8C=E2=95=8C=E2=95=8C OCaml 5.4.0-beta1 provides early access to upcoming compiler improvements and serves as a validation point for the ecosystem. The beta release allows forward-looking projects to begin testing compatibility with the new version while the broader ecosystem prepares for the eventual stable release. The continued parallel maintenance of OCaml 4.14 LTS ensures that projects with longer upgrade cycles maintain access to critical updates without forced compiler upgrades. This dual-track approach provides flexibility for organizations with different risk tolerance levels. *Notable Activity:* =E2=80=A2 [OCaml 5.4.0-beta1 release] for early testing =E2=80=A2 [OCaml 5.4.0-alpha1] provided initial preview =E2=80=A2 Continued LTS support for OCaml 4.14 users [OCaml 5.4.0-beta1 release] [OCaml 5.4.0-alpha1] Utop =E2=95=8C=E2=95=8C=E2=95=8C=E2=95=8C Utop 2.16.0 adds OCaml 5.4 support, restores backtrace functionality, improves preprocessor and Emacs integration, and relocates configuration files to a dedicated utop subdirectory. *Notable Activity:* =E2=80=A2 [Release of Utop 2.16.0] We are seeing continued progress toward making OCaml development more accessible and productive. The maturation of Dune package management, stability improvements in opam 2.4.0, and enhanced editor support provide a solid foundation for teams adopting OCaml or expanding their existing OCaml usage. [Release of Utop 2.16.0] ppx_format =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90 Archive: Emile Trotignon announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 I happy to announce the first release of [ppx_format]. Its a small ppx rewriter that was first written at the mirage retreat in 24 with @PizieDust, and that allows to put values in the middle of format strings: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 let s =3D "World" =E2=94=82 let x =3D 123 =E2=94=82 let () =3D Format.printf {%i|Hello {%s s} {%a Format.pp_print_c= har % Char.chr 65} {%d x}%!|} =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Its compatible with any function that takes format strings. The only constraint is that the format string has to be the last argument. I have used at in some of my projects, and it will be available on opam as soon as the release PR is merged. [ppx_format] New release of Menhir (20250903) =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 Archive: Fran=C3=A7ois Pottier announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80 It is my pleasure to announce a new release of Menhir. The main change is improved parser construction time in `--table' mode. =E2=80=A2 The table back-end uses a new table compression algorithm. This algorithm is significantly faster than the previous algorithm: in our tests, it can be up to 8 times faster. This results in observably faster compilation: for example, the time required to compile the OCaml parser drops from 1.2 seconds to 0.6 seconds. Compared with the previous algorithm, the new algorithm produces results of roughly similar quality: the size of the compressed tables can increase or decrease by a few percent, up to 20% in the most dramatic cases. On average, we observe a 1% increase in size. The use of the previous algorithm can be requested by the command line switch `--pack-classic'. This command line switch may disappear in the future. (Contributed by Fr=C3=A9d=C3=A9ric Bour; reviewed by Fran=C3=A7ois Pott= ier.) To install this release, please type: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80 =E2=94=82 opam update && opam install menhir.20250903 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Happy parsing, Fran=C3=A7ois. Chat plugin activated, and adding more site categories =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90= =E2=95=90=E2=95=90=E2=95=90=E2=95=90 Archive: Anil Madhavapeddy announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80 Following the discussion in , I=E2=80=99ve activated the chat functionality on this site, with one new channel ( ). Join in and experiment with it, and give feedback on this thread! We=E2=80=99ve also not refreshed the site categories here for some time. = Back in about 2019, we experimented with a private maintainers category, but others are possible: =E2=80=A2 Discourse has RSS/Atom auto-posting support. We can add the to this, which seems like a good place to make that more visible. I propose a new category =E2=80=9CChangeLog= =E2=80=9D for this (other names welcome). =E2=80=A2 I=E2=80=99m also knocking up a script to do weekly reports from= the opam repository, which was originally for my own use, but I could make this public. Would others be interested in a weekly digest post here about =E2=80=9Cnew and updated packages=E2=80=9D? =E2=80=A2 Any other categories you=E2=80=99d like to see? I can=E2=80=99t= see an easy way to bridge GitHub discussions with this forum, unfortunately, but please do poke around the Discourse docs and see if you can find something. Outreachy Mentors Wanted =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95= =90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 Archive: Patrick Ferris announced =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 I'm excited to share that the OCaml community has secured funding for the next round of Outreachy. Thanks to [Jane Street] and [Tarides], we have funding for 3 mentees in the next cohort of Outreachy internships alongside 3/4 mentors. *We are actively seeking mentors and projects for the OCaml community*. If you haven't already, please do read our previous post about becoming an Outreachy mentor: . If you have any questions please reach out to me directly or here on this thread. To sign up, [please use this link to the Outreachy signup page]. If you would like to co-mentor (i.e. support a project but not lead that project), let people know by commenting on this thread. Thanks! [Jane Street] [Tarides] [please use this link to the Outreachy signup page] Other OCaml News =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2= =95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 >>From the ocaml.org blog =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. =E2=80=A2 [Upcoming OCaml Events] =E2=80=A2 [Giving hub.cl an upgrade] =E2=80=A2 [Outreachy May 2025 Demo Day] =E2=80=A2 [OCaml Weekly 2025 w32 to w35] [the ocaml.org blog] [Upcoming OCaml Events] [Giving hub.cl an upgrade] [Outreachy May 2025 Demo Day] [OCaml Weekly 2025 w32 to w35] Old CWN =E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90=E2=95=90 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] [the archive] [RSS feed of the archives] [caml-list] [Alan Schmitt] --=-=-= Content-Type: text/html; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable OCaml Weekly News

OCaml Weekly News

Previous Week<= /a> Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of September 02 to 09, 2= 025.

OCaml Platform Newsletter: May to August 2025

Sabine Schmaltz announced

Welcome to the fifteenth edition of the OCaml Platform newsletter!

In this May to August 2025 edition, we are excited to bring you the latest = on the OCaml Platform, continuing our tradition of highlighting recent deve= lopments as seen in previous editions. To understand the direction we're headed, esp= ecially regarding development workflows and user experience improvements, c= heck out our roadmap.

You can subscribe to this newsletter on LinkedIn!

Highlights:

  • Enhanced Editor Integration: OCaml-LSP 1.23.0 and Merlin 5.5 pro= vide improved project navigation and error reporting. New ocaml-eglot bring= s modern LSP support to Emacs users. Continued work on project-wide feature= s brings OCaml's development experience closer to modern IDEs.
  • Enhanced Package Management: opam 2.4.0 stable release eliminate= s GNU patch/diff dependencies, improves newcomer experience by avoiding pro= blematic system compilers by default, and provides better handling of depre= cated packages. This addresses common setup issues that previously complica= ted OCaml adoption.
  • Improved Testing Workflows: Dune 3.20 introduces concurrent watc= h mode operations, named test aliases for running specific tests (@ru= ntest-testname), and timeout support for cram tests.
  • Documentation and Tooling Maturity: Odoc 3.1.0 refines cross-pac= kage linking capabilities.
  • OCaml 5.4.0-beta1: you can help test upcoming compiler improveme= nts!

Announcements:

Stable Releases:

Unstable Releases:

Dune

Roadmap: Develop / (W4) Build a Project

The release introduces the dune describe location command for = printing the path to executables.

dune runtest now understands absolute paths and can run tests = in specific build contexts. Improvements to cram test handling fix issues w= here tests attached to multiple aliases would run multiple times.

  • Testing Workflow Improvements

    Dune 3.20 significantly improves testing workflows with named test aliases.= Tests declared with (test (name a)) can now be run individual= ly using dune build @runtest-a. Inline test libraries produce = aliases like @runtest-name_of_lib, allowing targeted execution= of specific test suites without running the entire test battery.

    The new (timeout <float>) field for cram tests prevents = runaway tests from blocking CI pipelines. Combined with the ability to run = dune promote while watch mode is active, these features remove= common friction points in test-driven development workflows.

  • Performance and Watch Mode Enhancements

    Dune's watch mode now supports concurrent dune exec operations= and file promotion without requiring restarts, maintaining development flo= w during iterative changes.

    The introduction of the 'empty' alias containing no targets provides more f= lexible build target management. New --alias and --alias= -rec flags offer alternatives to the @@ and @ command-line syntax.

    Dune 3.20 switches from MD5 to BLAKE3 for digesting targets and rules, prov= iding both performance improvements and better cryptographic properties.

    Activities:

    • Enhanced implicit transitive dependency handling for OCaml 5.2+ compati= bility (#11866)
    • Improved alias system with new 'empty' alias support (#11556, #11952, #11955, #11956)
    • Better integration between promotion workflows and watch mode (#12010)
    • Fixed cram test duplicate execution issues (#11547)
    • Added timeout support for cram tests (#12041)
    • Added dune describe location command (#11905)
    • Named test aliases for targeted test execution (#11558, #11109)
    • BLAKE3 migration for improved performance (#11735)

    Maintained by: Rudi Grinberg (@rgrinberg, Jane Street), Nicol=C3=A1s= Ojeda B=C3=A4r (@nojb, LexiFi), Marek Kubica (@Leonidas-from-XIV, Tarides)= , Ali Caglayan (@Alizter), Etienne Millon (@emillon), Stephen Sherratt (@gr= idbugs, Tarides), Antonio Nuno Monteiro (@anmonteiro), Etienne Marais (@mai= ste, Tarides)

  • Dune Package Management

    Portable lock directories appear as an experimental feature. This is a majo= r prospective enhancement for teams working across different platforms. Loc= kfile naming in the experimental feature now includes version numbers (e.g.= , ocaml-compiler.5.3.0.pkg instead of ocaml-compiler.pkg= ) to handle cases where different platforms require different packag= e versions in the same project.

    The portable external dependencies feature extends this capability to syste= m-level dependencies, ensuring consistent build environments across develop= ment, testing, and production systems. Combined with the existing binary ca= che system, this could reduce the complexity of managing OCaml projects in = diverse environments.

    Note however, that the outcome of these experiments, and whether they matur= e into features on the stable version of Dune is still open. If you would l= ike to help test and give feedback: run dune pkg lock and, if = you encounter issues, please report them!

    At dune.check.ci.dev, continuous = monitoring shows ecosystem compatibility progress, with a large part of Dun= e-based packages in opam-repository now building successfully with Dune pac= kage management.

    Activities:

  • Dune Developer Preview

    Dune Developer Preview continues t= o serve as an experimental channel for cutting-edge OCaml development featu= res. The tooling includes built-in LSP support, formatting capabilities, an= d a shared cache that improves build performance.

    The team has expanded testing beyond initial projects to include broader ec= osystem validation. The binary repository provides static Linux binaries (b= uilt with musl) that work across distributions, along with native binaries = for macOS on both x86_64 and aarch64 architectures.

    Activities:

    • Enhanced LSP integration through automated tool management
    • Expanded ecosystem compatibility testing as documented in the Opam Health Check blo= g post

Package Management

  • Opam

    The stable release of opam 2.4.0 represents a significant improvement in cr= oss-platform reliability and user experience. The elimination of GNU = patch and diff as runtime dependencies removes a major = source of configuration issues that previously complicated deployment and C= I/CD pipelines. The package manager now uses the native OCaml patch library instead.

    The default compiler selection during opam init no longer uses= ocaml-system, which was a common source of setup problems acr= oss different development environments. This change provides a more consist= ent onboarding experience for newcomers to OCaml.

    Package lifecycle management receives clearer visibility through enhanced h= andling of deprecated packages. The opam show command displays= deprecated packages in gray, while opam upgrade removes confu= sing "not up-to-date" messages for packages being phased out.

    Development workflows benefit from the new OPAMSOLVERTOLERANCE= environment variable, which addresses persistent solver timeout issues. Th= e enhanced pinning system now displays current revisions of pinned reposito= ries, providing better transparency in development workflows that rely on u= nreleased versions.

    For Windows users, the prebuilt binaries now include Cygwin's setup executa= ble as a fallback when cygwin.com is inaccessible, improving reliability in= restricted network environments.

    Notable Activity:

    • opam 2.4.0 stable r= elease with comprehensive improvements
    • Use patch OCaml library instead of the patch = command (#5892)
    • UX improvements: remove ocaml-system from default compiler= at init (#6307)
    • Provide a way to avoid solver timeouts (#5510)
    • Add opam lock <pkg> --keep-local (#6411)

    Maintained by: Raja Boujbel (@rjbou, OCamlPro), Kate Deplaix (@kit-t= y-kate, Ahrefs), David Allsopp (@dra27, Tarides)

Editor Tools

  • OCaml LSP Server and Merlin

    The release of OCaml-LSP 1.23.0 and Merlin 5.5 brings enhanced project navi= gation and error reporting capabilities. The release addresses several long= -standing issues with jump-to-definition, occurrences reporting, and inlay = hints while adding new utilities for working with typed holes.

    Project-wide features continue to evolve, with cross-project symbol search = and refactoring capabilities bringing OCaml's editor support in line with o= ther modern programming languages. The features work by building an index w= ith dune build @build-index -w and provide comprehensive symbo= l searching across entire codebases.

    By the way: we are currently working on a refactor feature that enables aut= omatically extracting and inlining function parameters!

    Support for OCaml 4.14 continues with dedicated releases (OCaml-LSP 1.21.0-= 4.14 and Merlin 4.19-414).

    Activities:

    Notable Activity:

    OCaml LSP Server maintained by: Ulysse G=C3=A9rard (@voodoos, Taride= s), Xavier Van de Woestyne (@xvw, Tarides), Rudi Grinberg (@rgrinberg, Jane= Street)

    Merlin maintained by: Ulysse G=C3=A9rard (@voodoos, Tarides), Xavier= Van de Woestyne (@xvw, Tarides)

  • Emacs Integration

    The introduction of ocaml-eglot provides Emacs users with modern LSP-based = OCaml support as an alternative to the traditional merlin.el. This package = leverages Emacs 29's built-in eglot LSP client, offering simplified configu= ration and access to project-wide features previously unavailable in Emacs.

    ocaml-eglot provides feature parity with other editors through ocaml-lsp-se= rver, including project-wide search and rename capabilities. For users migr= ating from merlin.el, existing keybindings work immediately. The package is= actively maintained, while merlin.el enters maintenance-only mode.

    The integration works with any OCaml major mode (tuareg, caml-mode, or neoc= aml) and provides error navigation, type information display, code generati= on through the "destruct" feature, and enhanced navigation between language= constructs.

    Notable Activity:

    • ocaml-eglot 1.0.0 release bringing LSP to Emacs
    • Subsequent releases 1.1.0 and 1.2.0 adding flycheck support and Emacs 3= 0.1 compatibility
    • Active development replacing maintenance-only merlin.el
  • Visual Studio Code Plugin

    We're happy to announce that the Visual Studio Code editor plugin now integ= rates seamlessly with Dune package management! This is an important milesto= ne for Dune package management, and if you haven't = tried it, or have been waiting for it to mature, now is a great time to get= started!

    Development continues on improving the OCaml VSCode editor plugin experienc= e. For example, when using opam to manage your project's dependencies and <= code>ocaml-lsp-server is not found in the opam switch, the plugin wi= ll now prompt users to install it.

    Notable Activity:

    • Automatically installing/updating ocaml-lsp-server (#1725)
    • Automatically configuring dune package management (#1791)

Documentation Tools

  • Odoc

    Odoc 3.1.0 continues to refine the modern documentation experience introduc= ed with Odoc 3.0. The cross-package linking system and multimedia support c= apabilities help teams create comprehensive and discoverable documentation = for complex systems.

    The improved documentation tooling addresses ecosystem discoverability and = maintainability. The ability to generate interconnected documentation acros= s multiple packages makes large OCaml codebases more accessible for new tea= m members and external collaborators.

    Work continues on integrating Odoc 3.x with the OCaml.org documentation pip= eline to provide a unified documentation experience across the ecosystem. A= s of July 2025, Odoc 3 is now live on OCaml.org, bringing the new features = to the entire package ecosystem. The improved pipeline addresses dependency= complexities by using new tooling that archives and restores opam packages= , eliminating redundant builds that previously occurred thousands of times.

    Notable Activity:

    Maintained by: Jon Ludlam (@jonludlam, Tarides), Daniel B=C3=BCnzli = (@dbuenzli), Jules Aguillon (@julow, Tarides), Paul-Elliot Angl=C3=A8s d'Au= riac (@panglesd, Tarides), Emile Trotignon (@EmileTrotignon, Tarides, then = Ahrefs)

Ppxlib

Ppxlib 0.36.1 refines the improvements introduced in version 0.36.0, which = updated the internal AST to target OCaml 5.2. This enables ppx authors to l= everage features from OCaml 5.2 while maintaining compatibility with OCaml = 4.08.0 and newer.

The update includes changes to the representation of functions, and package= authors are encouraged to consult the upgrade guide as some ppxes= may require updates.

Notable Activity:

Maintained by: Patrick Ferris (@patricoferris)

OCaml 5.4.0

OCaml 5.4.0-beta1 provides early access to upcoming compiler improvements a= nd serves as a validation point for the ecosystem. The beta release allows = forward-looking projects to begin testing compatibility with the new versio= n while the broader ecosystem prepares for the eventual stable release.

The continued parallel maintenance of OCaml 4.14 LTS ensures that projects = with longer upgrade cycles maintain access to critical updates without forc= ed compiler upgrades. This dual-track approach provides flexibility for org= anizations with different risk tolerance levels.

Notable Activity:

Utop

Utop 2.16.0 adds OCaml 5.4 support, restores backtrace functionality, impro= ves preprocessor and Emacs integration, and relocates configuration files t= o a dedicated utop subdirectory.

Notable Activity:

We are seeing continued progress toward making OCaml development more acces= sible and productive. The maturation of Dune package management, stability = improvements in opam 2.4.0, and enhanced editor support provide a solid fou= ndation for teams adopting OCaml or expanding their existing OCaml usage.

ppx_format

Emile Trotignon announced

I happy to announce the first release of ppx_format.

Its a small ppx rewriter that was first written at the mirage retreat in 24= with @PizieDust, and that allows to put values in the middle of format str= ings:

let s =3D "World"
let x =3D 123
let () =3D Format.printf {%i|H=
ello {%s s} {%a Format.pp_=
print_char % Char.chr 65} {%d x}<=
span style=3D"color: #a52a2a;">%!|}

Its compatible with any function that takes format strings. The only constr= aint is that the format string has to be the last argument.

I have used at in some of my projects, and it will be available on opam as = soon as the release PR is merged.

New release of Menhir (20250903)

Fran=C3=A7ois Pottier announced

It is my pleasure to announce a new release of Menhir. The main change is i= mproved parser construction time in --table mode.

  • The table back-end uses a new table compression algorithm.

    This algorithm is significantly faster than the previous algorithm: in our = tests, it can be up to 8 times faster. This results in observably faster co= mpilation: for example, the time required to compile the OCaml parser drops= from 1.2 seconds to 0.6 seconds.

    Compared with the previous algorithm, the new algorithm produces results of= roughly similar quality: the size of the compressed tables can increase or= decrease by a few percent, up to 20% in the most dramatic cases. On averag= e, we observe a 1% increase in size.

    The use of the previous algorithm can be requested by the command line swit= ch --pack-classic. This command line switch may disappear in t= he future.

    (Contributed by Fr=C3=A9d=C3=A9ric Bour; reviewed by Fran=C3=A7ois Pottier.)

To install this release, please type:

opam update && opam install menhir.20250903

Happy parsing, Fran=C3=A7ois.

Chat plugin activated, and adding more site categories

Anil Madhavapeddy announced

Following the discussion in https://discuss.oca= ml.org/t/synchronous-discussion-channel-for-compiler-contributors/17198= , I=E2=80=99ve activated the chat functionality on this site, with one new= channel ( https://d= iscuss.ocaml.org/chat/c/general/2 ). Join in and experiment with it, a= nd give feedback on this thread!

We=E2=80=99ve also not refreshed the site categories here for some time. Ba= ck in about 2019, we experimented with a private maintainers category, but = others are possible:

  • Discourse has RSS/Atom auto-posting support. We can add the https://ocaml.org/changelog to this, which= seems like a good place to make that more visible. I propose a new categor= y =E2=80=9CChangeLog=E2=80=9D for this (other names welcome).
  • I=E2=80=99m also knocking up a script to do weekly reports from the opa= m repository, which was originally for my own use, but I could make this pu= blic. Would others be interested in a weekly digest post here about =E2=80= =9Cnew and updated packages=E2=80=9D?
  • Any other categories you=E2=80=99d like to see? I can=E2=80=99t see an = easy way to bridge GitHub discussions with this forum, unfortunately, but p= lease do poke around the Discourse docs and see if you can find something.<= /li>

Outreachy Mentors Wanted

Patrick Ferris announced

I'm excited to share that the OCaml community has secured funding for the n= ext round of Outreachy. Thanks to J= ane Street and Tarides, we have fu= nding for 3 mentees in the next cohort of Outreachy internships alongside 3= /4 mentors. We are actively seeking mentors and projects for the OCaml c= ommunity. If you haven't already, please do read our previous post abou= t becoming an Outreachy mentor: https://discuss.ocaml.org/t/become-an-outreachy-mentor-support-th= e-growth-and-diversity-of-the-ocaml-community/8213.

If you have any questions please reach out to me directly or here on this t= hread. To sign up, please use this l= ink to the Outreachy signup page. If you would like to co-mentor (i.e. = support a project but not lead that project), let people know by commenting= on this thread.

Thanks!

Other OCaml News

From the ocaml.org blog

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 loo= k at the archive or the <= a href=3D"https://alan.petitepomme.net/cwn/cwn.rss">RSS feed of the archive= s.

If you also wish to receive it every week by mail, you may subscribe to the= caml-list.

--=-=-=--