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, 09 Sep 2025 14:30:46 +0200	[thread overview]
Message-ID: <m2348vyfih.fsf@mac-03220211.irisa.fr> (raw)

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

Hello

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

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

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
═════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-platform-newsletter-may-to-august-2025/17208/1>


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 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:*

  • *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.

  • *Enhanced Package Management*: opam 2.4.0 stable release eliminates
     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.

  • *Improved Testing Workflows*: Dune 3.20 introduces concurrent watch
     mode operations, named test aliases for running specific tests
     (`@runtest-testname'), and timeout support for cram tests.

  • *Documentation and Tooling Maturity*: Odoc 3.1.0 refines
     cross-package linking capabilities.

  • *OCaml 5.4.0-beta1:* you can help test upcoming compiler
     improvements!

  *Announcements:*

  • [Emacs Integration for OCaml LSP Server: Introducing ocaml-eglot]
    (August 26, 2025)

  • [Dune Developer Preview: Portable External Dependencies for Dune
    Package Management] (June 5, 2025)

  • [Dune Developer Preview: Portable Lock Directories for Dune Package
    Management] (May 19, 2025)

  *Stable Releases:*

  • [Dune 3.20.1] (August 26, 2025)

  • [Dune 3.20.0] (August 21, 2025)

  • [Utop 2.16.0] (July 25, 2025)

  • [opam 2.4.1] (July 23, 2025)

  • [opam 2.4.0] (July 18, 2025)

  • [Odoc 3.1.0] (July 15, 2025)

  • [Ppxlib 0.36.1] (July 10, 2025)

  • [OCaml-LSP 1.23.0] (June 24, 2025)

  • [Merlin 5.5-503] (June 24, 2025)

  • [OCaml-LSP 1.21.0-4.14 for OCaml 4.14] (June 23, 2025)

  • [Merlin 4.19-414] (June 23, 2025)

  • [Dune 3.19.1] (June 11, 2025)

  • [Dune 3.19.0] (May 23, 2025)

  *Unstable Releases:*

  • [Dune 3.20.0~alpha4] (August 12, 2025)

  • [Dune 3.20.0~alpha3] (August 6, 2025)

  • [Dune 3.20.0~alpha2] (August 5, 2025)

  • [Dune 3.20.0~alpha1] (July 30, 2025)

  • [Dune 3.20.0~alpha0] (July 28, 2025)

  • [OCaml 5.4.0-beta1] (July 22, 2025)

  • [opam 2.4.0~rc1] (July 4, 2025)

  • [opam 2.4.0~beta1] (June 19, 2025)

  • [OCaml 5.4.0-alpha1] (May 22, 2025)

  • [Dune 3.19.0~alpha0] (May 20, 2025)

  • [opam 2.4.0~alpha2] (May 5, 2025)


[previous editions] <https://discuss.ocaml.org/tag/platform-newsletter>

[roadmap] <https://ocaml.org/docs/platform-roadmap>

[subscribe to this newsletter on LinkedIn]
<https://www.linkedin.com/newsletters/ocaml-platform-newsletter-7305270694567661568/>

[Emacs Integration for OCaml LSP Server: Introducing ocaml-eglot]
<https://ocaml.org/changelog/2025-08-26-ocaml-eglot-brings-lsp-support-to-emacs>

[Dune Developer Preview: Portable External Dependencies for Dune Package
Management]
<https://ocaml.org/changelog/2025-06-05-portable-external-dependencies-for-dune-package-management>

[Dune Developer Preview: Portable Lock Directories for Dune Package
Management]
<https://ocaml.org/changelog/2025-05-19-portable-lock-directories-for-dune-package-management>

[Dune 3.20.1] <https://ocaml.org/changelog/2025-08-26-dune3201>

[Dune 3.20.0] <https://ocaml.org/changelog/2025-08-21-dune-3200>

[Utop 2.16.0] <https://ocaml.org/changelog/2025-07-25-utop-2160>

[opam 2.4.1] <http://ocaml.org/changelog/2025-07-23-opam-2-4-1>

[opam 2.4.0] <https://ocaml.org/changelog/2025-07-18-opam-2-4-0>

[Odoc 3.1.0] <https://ocaml.org/changelog/2025-07-15-odoc-310>

[Ppxlib 0.36.1] <https://ocaml.org/changelog/2025-07-10-ppxlib-0361>

[OCaml-LSP 1.23.0]
<https://ocaml.org/changelog/2025-06-24-ocaml-lsp-1230>

[Merlin 5.5-503] <https://ocaml.org/changelog/2025-06-24-merlin-v55-503>

[OCaml-LSP 1.21.0-4.14 for OCaml 4.14]
<https://ocaml.org/changelog/2025-06-23-ocaml-lsp-1210-414>

[Merlin 4.19-414]
<https://ocaml.org/changelog/2025-06-23-merlin-v419-414>

[Dune 3.19.1] <https://ocaml.org/changelog/2025-06-11-dune.3.19.1>

[Dune 3.19.0] <https://ocaml.org/changelog/2025-05-23-dune.3.19.0>

[Dune 3.20.0~alpha4]
<https://ocaml.org/changelog/2025-08-12-dune-3200alpha4>

[Dune 3.20.0~alpha3]
<https://ocaml.org/changelog/2025-08-06-dune-3200alpha3>

[Dune 3.20.0~alpha2]
<https://ocaml.org/changelog/2025-08-05-dune-3200alpha2>

[Dune 3.20.0~alpha1]
<https://ocaml.org/changelog/2025-07-30-dune-3200alpha1>

[Dune 3.20.0~alpha0]
<https://ocaml.org/changelog/2025-07-28-dune-3200alpha0>

[OCaml 5.4.0-beta1]
<https://ocaml.org/changelog/2025-07-22-ocaml-540-beta1>

[opam 2.4.0~rc1] <https://ocaml.org/changelog/2025-07-04-opam-240-rc1>

[opam 2.4.0~beta1]
<https://ocaml.org/changelog/2025-06-19-opam-240-beta1>

[OCaml 5.4.0-alpha1]
<https://ocaml.org/changelog/2025-05-22-ocaml-540-alpha1>

[Dune 3.19.0~alpha0]
<https://ocaml.org/changelog/2025-05-20-dune-3190alpha0>

[opam 2.4.0~alpha2]
<https://ocaml.org/changelog/2025-05-05-opam-240-alpha2>

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
  where tests attached to multiple aliases would run multiple times.


[Develop / (W4) Build a Project]
<https://ocaml.org/docs/platform-roadmap#w4-build-a-project>

◊ 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 <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
  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:*

  • Enhanced implicit transitive dependency handling for OCaml 5.2+
    compatibility ([#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ás
   Ojeda Bär (@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] <https://github.com/ocaml/dune/pull/11866>

  [#11556] <https://github.com/ocaml/dune/issues/11556>

  [#11952] <https://github.com/ocaml/dune/pull/11952>

  [#11955] <https://github.com/ocaml/dune/pull/11955>

  [#11956] <https://github.com/ocaml/dune/pull/11956>

  [#12010] <https://github.com/ocaml/dune/pull/12010>

  [#11547] <https://github.com/ocaml/dune/pull/11547>

  [#12041] <https://github.com/ocaml/dune/pull/12041>

  [#11905] <https://github.com/ocaml/dune/pull/11905>

  [#11558] <https://github.com/ocaml/dune/pull/11558>

  [#11109] <https://github.com/ocaml/dune/pull/11109>

  [#11735] <https://github.com/ocaml/dune/pull/11735>


◊ 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:*

  • Enhanced ecosystem compatibility testing and monitoring at
    [dune.check.ci.dev]

  • ["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] <https://dune.check.ci.dev>

  ["Opam Health Check: or How we Got to 90+% of Packages Building with
  Dune Package Management"]
  <https://tarides.com/blog/2025-06-05-opam-health-check-or-how-we-got-to-90-of-packages-building-with-dune-package-management>


◊ 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:*

  • Enhanced LSP integration through automated tool management

  • Expanded ecosystem compatibility testing as documented in the [Opam
    Health Check blog post]


  [Dune Developer Preview]
  <https://preview.dune.build?utm_source=ocaml.org&utm_medium=referral&utm_campaign=news>

  [Opam Health Check blog post]
  <https://tarides.com/blog/2025-06-05-opam-health-check-or-how-we-got-to-90-of-packages-building-with-dune-package-management>


Package Management
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

◊ 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:*

  • [opam 2.4.0 stable release] 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-ty-kate, Ahrefs), David Allsopp (@dra27, Tarides)


  [opam 2.4.0 stable release] <https://opam.ocaml.org/blog/opam-2-4-0/>

  [#5892] <https://github.com/ocaml/opam/pull/5892>

  [#6307] <https://github.com/ocaml/opam/pull/6307>

  [#5510] <https://github.com/ocaml/opam/pull/5510>

  [#6411] <https://github.com/ocaml/opam/pull/6411>


Editor Tools
╌╌╌╌╌╌╌╌╌╌╌╌

  *Roadmap*: [Edit / (W19) Navigate Code], [Edit / (W20) Refactor Code]


[Edit / (W19) Navigate Code]
<https://ocaml.org/tools/platform-roadmap#w19-navigate-code>

[Edit / (W20) Refactor Code]
<https://ocaml.org/tools/platform-roadmap#w20-refactor-code>

◊ 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:*

  • Enhanced project navigation and symbol search capabilities

  • Better integration with Dune package management workflows

  • ["Internship Report: Refactoring Tools Coming to Merlin"] - new
    extract command for refactoring

  *Notable Activity:*

  • Release of [OCaml-LSP 1.23.0]

  • Release of [Merlin 5.5-503]

  • OCaml 4.14 support with [OCaml-LSP 1.21.0-4.14] and [Merlin
    4.19-414]

  *OCaml LSP Server maintained by*: Ulysse Gérard (@voodoos, Tarides),
   Xavier Van de Woestyne (@xvw, Tarides), Rudi Grinberg (@rgrinberg,
   Jane Street)

  *Merlin maintained by*: Ulysse Gérard (@voodoos, Tarides), Xavier Van
   de Woestyne (@xvw, Tarides)


  ["Internship Report: Refactoring Tools Coming to Merlin"]
  <https://tarides.com/blog/2025-08-20-internship-report-refactoring-tools-coming-to-merlin>

  [OCaml-LSP 1.23.0]
  <https://ocaml.org/changelog/2025-06-24-ocaml-lsp-1230>

  [Merlin 5.5-503]
  <https://ocaml.org/changelog/2025-06-24-merlin-v55-503>

  [OCaml-LSP 1.21.0-4.14]
  <https://ocaml.org/changelog/2025-06-23-ocaml-lsp-1210-414>

  [Merlin 4.19-414]
  <https://ocaml.org/changelog/2025-06-23-merlin-v419-414>


◊ 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:*

  • [ocaml-eglot 1.0.0 release] bringing LSP to Emacs

  • Subsequent releases 1.1.0 and 1.2.0 adding flycheck support and
    Emacs 30.1 compatibility

  • Active development replacing maintenance-only merlin.el


  [ocaml-eglot 1.0.0 release]
  <https://discuss.ocaml.org/t/ann-release-of-ocaml-eglot-1-0-0/15978/14>


◊ 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:*

  • Automatically installing/updating ocaml-lsp-server ([#1725])

  • Automatically configuring dune package management ([#1791])


  [Dune package management]
  <https://dune.readthedocs.io/en/stable/tutorials/dune-package-management/setup.html>

  [#1725] <https://github.com/ocamllabs/vscode-ocaml-platform/pull/1725>

  [#1791] <https://github.com/ocamllabs/vscode-ocaml-platform/pull/1791>


Documentation Tools
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  *Roadmap*: [Share / (W25) Generate Documentation]


[Share / (W25) Generate Documentation]
<https://ocaml.org/tools/platform-roadmap#w25-generate-documentation>

◊ 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:*

  • [Release of Odoc 3.1.0]

  • ["Odoc 3 is now live on OCaml.org!"] - Jon Ludlam's blog post about
    the deployment of Odoc 3 to ocaml.org

  • ["Odoc 3: So what?"] - in-depth explanation of Odoc 3's
    manual-focused features

  • Continued work on OCaml.org documentation pipeline integration
    through new package archiving tools

  *Maintained by*: Jon Ludlam (@jonludlam, Tarides), Daniel Bünzli
   (@dbuenzli), Jules Aguillon (@julow, Tarides), Paul-Elliot Anglès
   d'Auriac (@panglesd, Tarides), Emile Trotignon (@EmileTrotignon,
   Tarides, then Ahrefs)


  [Release of Odoc 3.1.0]
  <https://ocaml.org/changelog/2025-07-15-odoc-310>

  ["Odoc 3 is now live on OCaml.org!"]
  <https://jon.recoil.org/blog/2025/07/odoc-3-live-on-ocaml-org.html>

  ["Odoc 3: So what?"] <https://jon.recoil.org/blog/2025/04/odoc-3.html>


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 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:*

  • [Release of Ppxlib 0.36.1]

  • Enhanced support for OCaml 5.2 AST features and compatibility
    improvements

  *Maintained by*: Patrick Ferris ([@patricoferris])


[the upgrade guide]
<https://github.com/ocaml-ppx/ppxlib/wiki/Upgrading-to-ppxlib-0.36.0>

[Release of Ppxlib 0.36.1]
<https://ocaml.org/changelog/2025-07-10-ppxlib-0361>

[@patricoferris] <https://github.com/patricoferris>


OCaml 5.4.0
╌╌╌╌╌╌╌╌╌╌╌

  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:*

  • [OCaml 5.4.0-beta1 release] for early testing

  • [OCaml 5.4.0-alpha1] provided initial preview

  • Continued LTS support for OCaml 4.14 users


[OCaml 5.4.0-beta1 release]
<https://ocaml.org/changelog/2025-07-22-ocaml-540-beta1>

[OCaml 5.4.0-alpha1]
<https://ocaml.org/changelog/2025-05-22-ocaml-540-alpha1>


Utop
╌╌╌╌

  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:*

  • [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]
<https://ocaml.org/changelog/2025-07-25-utop-2160>


ppx_format
══════════

  Archive: <https://discuss.ocaml.org/t/ann-ppx-format/17211/1>


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 strings:

  ┌────
  │ let s = "World"
  │ let x = 123
  │ let () = Format.printf {%i|Hello {%s s} {%a Format.pp_print_char % Char.chr 65} {%d x}%!|}
  └────

  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] <https://github.com/EmileTrotignon/ppx_format>


New release of Menhir (20250903)
════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-new-release-of-menhir-20250903/17212/1>


François Pottier announced
──────────────────────────

  It is my pleasure to announce a new release of Menhir. The main change
  is improved 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 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édéric Bour; reviewed by François Pottier.)

  To install this release, please type:
  ┌────
  │ opam update && opam install menhir.20250903
  └────

  Happy parsing, François.


Chat plugin activated, and adding more site categories
══════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/chat-plugin-activated-and-adding-more-site-categories/17220/1>


Anil Madhavapeddy announced
───────────────────────────

  Following the discussion in
  <https://discuss.ocaml.org/t/synchronous-discussion-channel-for-compiler-contributors/17198>
  , I’ve activated the chat functionality on this site, with one new
  channel ( <https://discuss.ocaml.org/chat/c/general/2> ).  Join in and
  experiment with it, and give feedback on this thread!

  We’ve 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:

  • 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 category “ChangeLog” for
    this (other names welcome).
  • I’m 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 “new and updated packages”?
  • Any other categories you’d like to see? I can’t 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
════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/outreachy-mentors-wanted/17224/1>


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

  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:
  <https://discuss.ocaml.org/t/become-an-outreachy-mentor-support-the-growth-and-diversity-of-the-ocaml-community/8213>.

  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] <https://www.janestreet.com/>

[Tarides] <https://tarides.com/>

[please use this link to the Outreachy signup page]
<https://www.outreachy.org/outreachy-december-2025-internship-cohort/communities/ocaml/submit-project/>


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

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

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

  • [Upcoming OCaml Events]
  • [Giving hub.cl an upgrade]
  • [Outreachy May 2025 Demo Day]
  • [OCaml Weekly 2025 w32 to w35]


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

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

[Giving hub.cl an upgrade]
<https://jon.recoil.org/blog/2025/09/giving-hub-cl-an-upgrade.html>

[Outreachy May 2025 Demo Day]
<https://watch.ocaml.org/videos/watch/a1ed70d6-f57a-4349-ba85-c12b2054529f>

[OCaml Weekly 2025 w32 to w35]
<https://patrick.sirref.org/ocaml-weekly-2025-w32-w35/>


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

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

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