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, 04 Mar 2025 15:01:43 +0100	[thread overview]
Message-ID: <m2zfi0yjw8.fsf@petitepomme.net> (raw)

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

Hello

Here is the latest OCaml Weekly News, for the week of February 25 to
March 04, 2025.

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

Bytecode debugging in OCaml 5.3
Zanuda – OCaml linter experiment
QCheck 0.24
Bogue, the OCaml GUI
Opam repository archival - next phase
Upcoming Cmdliner 2.0 changes that need your attention
OCaml Editors Plugins Survey
Dune dev meeting
Platform Newsletter: September - December 2024
Other OCaml News
Old CWN


Bytecode debugging in OCaml 5.3
═══════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/bytecode-debugging-in-ocaml-5-3/16177/7>


Continuing this thread, Henry Till said
───────────────────────────────────────

  Probably worth sharing here:
  • [gdb.py]
  • [gdb_ocamlrun.py]
  • [lldb.py]
  • [Getting Started with GDB on OCaml]


[gdb.py]
<https://github.com/ocaml/ocaml/blob/f08e8a1ad48013dbdefc0e5415c2bf48a6881de8/tools/gdb.py>

[gdb_ocamlrun.py]
<https://github.com/ocaml/ocaml/blob/f08e8a1ad48013dbdefc0e5415c2bf48a6881de8/tools/gdb_ocamlrun.py>

[lldb.py]
<https://github.com/ocaml/ocaml/blob/f08e8a1ad48013dbdefc0e5415c2bf48a6881de8/tools/lldb.py>

[Getting Started with GDB on OCaml]
<https://kcsrk.info/ocaml/gdb/2024/01/20/gdb-ocaml/>


Chet Murthy also said
─────────────────────

  For those who (like me) have always been perplexed when they try to
  use ocamldebug, b/c it just doesn't seem to work like gdb or perl's
  debugger, or any other debugger I've tried, this video was immensely
  helpful.

  <https://www.youtube.com/watch?v=DGvJk14sfi8&t=724s>

  Specifically, I learned that at the beginning of the program, to set a
  breakpoint in the main program file, I need to do something like (for
  a file "extract_environments.ml", and line 79):
  ┌────
  │ break @extract_environments 79
  └────
  That was blocking me FOREVER, b/c holy cow there's a ton of
  initialization, and I just didn't know how to run thru all that and
  get to the first meaningful line of my main program.

  Now I do.  I can move forward from here with ocamldebug.  Finally!


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

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


Kakadu announced
────────────────

  I'm using this linter for teaching for two years, and I'm very happy
  that I implemented it. Student's code is much less annoying to read
  :slight_smile:


Release 1.1.0
╌╌╌╌╌╌╌╌╌╌╌╌╌

  • #22: Add 'reviewer' tool to report lint's a Github review.
  • #13: Discourage matching a tuple using 'match' expression with
     single branch
    ┌────
    │ match x with (a,b) -> ...
    └────
  • #18: Warn about unneeded mutually recursive types
  • #23: Implement a trial version of the Fix module for auto-correction
    of lints.  It produces a diff that could be applied later. Dune
    support is lacking
  • Add command line switch '-skip-level-allow <bool>' to enable/disable
    lints with level=Allow. False has higher priority than per-lint
    command line switch (for example, `-no-string_concat')
  • #28: Warn about too many nested `if' expressions.
  • #32: Warn about constructor names that hide default constructor
     names
  • #35: Detect manual implementations of List.map/fold functions
  • #50: Propose eta reduction when available
  • #51: Warn about pattern matching on boolean values
  • #53: Warn about `"%s"' in formatted strings
  • #54: Detection of unused public declarations in .mli file.
  • #56: Simplify lint about missing license. We look for required
     doc-comments anywhere in the file, not only in the beginning.
  • #60: Skip some checks for some source files (configured via
     '.zanuda' config file).
  • #15: Split 'string_concat' lint to check separately patterns 'a^b^c'
     (level=Allow) and 'List.fold_left (^)' (level=Warn).


QCheck 0.24
═══════════

  Archive: <https://discuss.ocaml.org/t/ann-qcheck-0-24/16198/1>


Jan Midtgaard announced
───────────────────────

  I'm happy to announce the 0.24 release of `qcheck', `qcheck-core',
  `qcheck-alcotest', and `qcheck-ounit', along with a 0.6 release of
  `ppx_deriving_qcheck' :tada:

  `QCheck' is a library for randomized property-based testing, inspired
  by Haskell's seminal QuickCheck library. The 0.24 release contains a
  range of improvements to the integrated shrinking of `QCheck2',
  initially introduced in the 0.18 release. As a consequence, its
  shrinking algorithms should act more predictably, reduce faster, and
  report smaller counterexamples. In essence, the 0.24 release is what
  we hoped 0.18 would be. The release also adds missing `result',
  `int32', and `int64' combinators, as well as more documentation.

  If you've previously given `QCheck2''s integrated shrinking a spin, I
  encourage you to try it again with the patched 0.24 release. For new
  users, the 0.24 release is also a good candidate to check out!
  :smiley: Please share any problems you encounter on the `qcheck' repo:
  <https://github.com/c-cube/qcheck>

  Full change log:

  • [qcheck-alcotest] Add an optional `speed_level' parameter to
    `to_alcotest'
  • Adjust the `QCheck2.Gen.list' shrinker to produce minimal
    counterexamples at size 3 too
  • Replace the `QCheck2' OCaml 4 `Random.State.split' hack with a
    faster one
  • Improve the `QCheck2.Gen.list' shrinker heuristic and utilize the
    improved shrinker in other `QCheck2'
    `{list,array,bytes,string,function}*' shrinkers
  • Use `split' and `copy' in `Random.State' underlying `QCheck2' to
    avoid non-deterministic shrinking behaviour
  • Add missing documentation strings for
    `QCheck.{Print,Iter,Shrink,Gen}' and `QCheck2.Gen'.
  • Add `result' combinators to `QCheck',
    `QCheck.{Gen,Print,Shrink,Observable}', and
    `QCheck2.{Gen,Print,Observable}'.
  • Add missing combinators `QCheck{,2}.Print.int{32,64}',
    `QCheck.Gen.int{32,64}', `QCheck{,2}.Observable.int{32,64}', and
    deprecate `QCheck.Gen.{ui32,ui64}'
  • Document `dune' usage in README

  Happy testing! :smiley: :keyboard:


Bogue, the OCaml GUI
════════════════════

  Archive: <https://discuss.ocaml.org/t/ann-bogue-the-ocaml-gui/9099/63>


sanette announced
─────────────────

  Dear all,

  I’m happy to announce a new version of [Bogue], version 20250224, now
  availble on `opam'.

  The main novelty is a brand new *File dialog*. It will open a new
  window (or popup) which will let the user navigate the file system and
  select one or more files or directories.

  This corresponds to the new [File] module.

  You might also be interested in the [Monitor] submodule, which
  implements a *file monitoring* API based on `fswatch' (if available)
  or `Unix.stat'.

  If you are curious, here is a graphical summary of the current
  functionalities of Bogue's file dialog (I hope that more will be added
  soon; I'm open to suggestions)

  <https://us1.discourse-cdn.com/flex020/uploads/ocaml/original/2X/b/b6efbe5eb40237db0fc4b5f036b1637a79de7875.png>

  PS: @Sachindra_Ragul, yes we did it finally ;) better late than never


[Bogue] <https://github.com/sanette/bogue>

[File] <http://sanette.github.io/bogue/Bogue.File.html>

[Monitor] <http://sanette.github.io/bogue/Bogue.File.Monitor.html>


Opam repository archival - next phase
═════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/opam-repository-archival-next-phase/16203/1>


Hannes Mehnert announced
────────────────────────

  Dear everyone,

  sorry for the silence – the phase 3 of the opam repository archival
  (taking the x-maintenance-intent into account) has to be delayed by
  (tentatively) one month. The reason is that our tooling is not ready -
  the task, given an opam repository and maintenance-intent on packages,
  which can be safely archived, is harder than it seems:
  • we've to take compiler versions into account
  • there may be a package X in version 1 and 2, both supporting OCaml
    4.08, but depend on package Y (where X.1 depends on Y >= 1, and X.2
    depends on Y >= 2) – now Y.1 could support OCaml 4.08, and Y.2 only
    OCaml 4.12 – so it is not safe to archive X.1 (since on OCaml 4.08
    there won't be any X installable). And this may be deeply nested in
    the dependency chain

  It is useful if you mark your packages with `x-maintenance-intent' (as
  mentioned in
  <https://discuss.ocaml.org/t/opam-repository-archive-clarification-of-the-opam-fields>).

  We'll let you know once we have tooling in place to cope with the task
  described above (development is happening here:
  <https://github.com/hannesm/maintenance-intent-filter>).


Upcoming Cmdliner 2.0 changes that need your attention
══════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/upcoming-cmdliner-2-0-changes-that-need-your-attention/16211/1>


Daniel Bünzli announced
───────────────────────

  If you are a user of `cmdliner' note that cmdliner 2.0 – in exchange
  for auto-completion support – will remove the ability to specify
  command and options names by unambiguous prefixes according to [this
  plan of action].

  If you are horrified by it please chime in on the issue.


[this plan of action] <https://github.com/dbuenzli/cmdliner/issues/200>


OCaml Editors Plugins Survey
════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-editors-plugins-survey/16216/1>


PizieDust announced
───────────────────

  Hello, we are conducting a short survey to better understand how you
  use the different editor plugins available for OCaml. Please take a
  few minutes (ideally 5) to fill out the form.

  <https://docs.google.com/forms/d/e/1FAIpQLSfGGFZBiw4PF7L0yt2DBX8443G5_7aFL5v6wvo6p5MwL-DW8Q/viewform?usp=pp_url&entry.454013858=Discuss>

  Thank you :) :camel:


Dune dev meeting
════════════════

  Archive: <https://discuss.ocaml.org/t/ann-dune-dev-meeting/14994/25>


Etienne Marais announced
────────────────────────

  Hi everyone :camel:

  The next Dune Dev Meeting will be on *Wednesday, March, 5th at 9:00
  CET*. This is going to be a one-hour-long meeting.

  Whether you are a maintainer, a regular contributor, a new joiner or
  just curious, you are welcome to join: these discussions are opened!
  The goal of these meetings is to provide a place to discuss the
  ongoing work together and synchronize with the Dune developers :smile:

  The agenda is available on the [meeting dedicated page]. Feel free to
  add more items in it.

  • Meeting link: [zoom]
  • Calendar event: [google calendar]
  • Wiki with informations and previous notes: [dune wiki on github]


[meeting dedicated page]
<https://github.com/ocaml/dune/wiki/dev-meeting-2025-03-05>

[zoom]
<https://us06web.zoom.us/j/85096877776?pwd=cWNhU1dHQ1ZNSjZuOUZCQ0h2by9Udz09>

[google calendar]
<https://calendar.google.com/calendar/u/0/embed?src=c_5cd698df6784e385b1cdcdc1dbca18c061faa96959a04781566d304dc9ec7319@group.calendar.google.com>

[dune wiki on github] <https://github.com/ocaml/dune/wiki>


Platform Newsletter: September - December 2024
══════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/platform-newsletter-september-december-2024/16221/1>


Sabine Schmaltz announced
─────────────────────────

  Welcome to the thirteenth edition of the OCaml Platform newsletter!

  In this September-December 2024 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].

  *Highlights:*

  • *Dune Enables Cache By Default, Adds WebAssembly Support* The latest
    Dune releases mark significant progress in build performance and
    language support. Version 3.17.0 enables the Dune cache by default
    for known-safe operations, improving build times for common
    tasks. The addition of Wasm_of_ocaml support opens new possibilities
    for OCaml projects targeting the web or other WebAssembly
    runtimes. In addition, Dune now supports adding Codeberg and GitLab
    repositories via the `(source)' stanza.
  • *opam 2.3.0* As announced with opam 2.2, opam releases are now
    time-based with a cadence of 6 months. Opam 2.3 has been released
    last November. It contains a major breaking change regarding
    extra-files handling: extra-files are now ignored when they are not
    present in the opam file. Previously they were silently added. This
    release adds also some new commands like `opam list --latest-only'
    or `opam install foo --verbose-on bar', among other fixes and
    enhancements.
  • *Improved Editor Workflows with OCaml-LSP and Merlin* A major
    milestone for project-wide features has been reached with the
    release of OCaml 5.3: LSP's renaming feature now [_renames symbols
    in the entire project_] if the index is built. Additionally,all of
    the classic merlin-server commands are now available as LSP custom
    requests: this enabled the addition of [many new features to the
    Visual Studio Code plugin]. Finally a brand new Emacs mode, based on
    LSP and the new custom queries is [now available on Melpa].
  • *Performance and Security Enhancements* Recent updates across the
    platform focus on performance and reliability. Dune optimized its
    handling of .cmxs files, while opam implemented stricter git
    submodule error checking. OCaml-LSP resolved file descriptor leaks,
    contributing to a more stable development environment.

  *Feature Guides & Announcements:*

  • [Installing Developer Tools with Dune]
  • [Shell Completions in Dune Developer Preview]
  • [OCaml Infrastructure: Enhancing Platform Support and User
    Experience]
  • [Call for Feedback]

  *Releases:*

  • [OCaml-LSP 1.20.1]
  • [opam-publish 2.5.0]
  • [Merlin 5.3-502 for OCaml 5.2 and 4.18-414 for OCaml 4.14]
  • [Dune 3.17.1]
  • [OCamlformat 0.27.0]
  • [Dune 3.17.0]
  • [opam 2.3.0]
  • [Dune 3.16.1]
  • [Merlin 5.2.1-502 for OCaml 5.2 and 4.17.1 for OCaml 5.1 and 4.14]


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

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

[_renames symbols in the entire project_]
<https://discuss.ocaml.org/t/ann-merlin-and-ocaml-lsp-support-experimental-project-wide-renaming/16008>

[many new features to the Visual Studio Code plugin]
<https://tarides.com/blog/2025-02-28-full-blown-productivity-in-vscode-with-ocaml/>

[now available on Melpa] <https://melpa.org/#/ocaml-eglot>

[Installing Developer Tools with Dune]
<https://ocaml.org/changelog/2024-11-15-installing-developer-tools-with-dune>

[Shell Completions in Dune Developer Preview]
<https://ocaml.org/changelog/2024-10-29-shell-completions-in-dune-developer-preview>

[OCaml Infrastructure: Enhancing Platform Support and User Experience]
<https://ocaml.org/changelog/2024-10-02-updates>

[Call for Feedback]
<https://ocaml.org/changelog/2024-09-25-call-for-feedback>

[OCaml-LSP 1.20.1]
<https://ocaml.org/changelog/2024-12-23-ocaml-lsp-1.20.1>

[opam-publish 2.5.0]
<https://github.com/ocaml-opam/opam-publish/releases/tag/2.5.0>

[Merlin 5.3-502 for OCaml 5.2 and 4.18-414 for OCaml 4.14]
<https://ocaml.org/changelog/2024-12-23-merlin-5.3.502-and-4.18.414>

[Dune 3.17.1] <https://ocaml.org/changelog/2024-12-18-dune.3.17.1>

[OCamlformat 0.27.0]
<https://ocaml.org/changelog/2024-12-02-ocamlformat-0.27.0>

[Dune 3.17.0] <https://ocaml.org/changelog/2024-11-27-dune.3.17.0>

[opam 2.3.0] <https://ocaml.org/changelog/2024-11-13-opam-2-3-0>

[Dune 3.16.1] <https://ocaml.org/changelog/2024-10-30-dune.3.16.1>

[Merlin 5.2.1-502 for OCaml 5.2 and 4.17.1 for OCaml 5.1 and 4.14]
<https://ocaml.org/changelog/2024-09-27-merlin-5.2.1>

*Dune*
╌╌╌╌╌╌

  *Roadmap:* [Develop / (W4) Build a Project]

  [Dune 3.17 was released] with significant improvements to package
  management. Key features include binary distribution support, better
  error messages for missing packages, and Windows support without
  requiring OPAM.

  The [Dune Developer Preview website] now provides editor setup
  instructions and package management tutorials.

  Dune's package management features [were tested across hundreds of
  packages] in the opam repository, and a coverage tool was developed to
  track build success rates. For local development, Dune added support
  for building dependencies via `@pkg-install', caching for package
  builds, and automated binary builds of development tools. The system
  supports both monorepo and polyrepo workflows, with options for
  installing individual dependencies or complete development
  environments.

  The addition of [Wasm_of_ocaml support in Dune] opens new
  possibilities for OCaml projects targeting the web or other
  WebAssembly runtimes.

  *Activities:*
  • Updated preview website with editor setup instructions at
    <https://preview.dune.build> and published binary installer
    providing prebuilt Dune binaries
  • [Enable dune cache by default]
  • [Added wasm_of_ocaml support]
  • Added support for [Codeberg] and [GitLab organizations] in the
    `(source)' stanza
  • [Added support for `-H' compiler flag] enabling better semantics for
    `(implicit_transitive_deps false)'

  *Maintained by:* Rudi Grinberg (@rgrinberg, Jane Street), Nicolás
   Ojeda Bär (@nojb, LexiFi), Marek Kubica (@Leonidas-from-XIV,
   Tarides), Etienne Millon (@emillon, Tarides), Stephen Sherratt
   (@gridbugs, Tarides), Antonio Nuno Monteiro (@anmonteiro)


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

[Dune 3.17 was released]
<https://discuss.ocaml.org/t/ann-dune-3-17/15770>

[Dune Developer Preview website] <https://preview.dune.build>

[were tested across hundreds of packages] <https://dune.check.ci.dev/>

[Wasm_of_ocaml support in Dune]
<https://github.com/ocaml/dune/pull/11093>

[Enable dune cache by default]
<https://github.com/ocaml/dune/pull/10710>

[Added wasm_of_ocaml support] <https://github.com/ocaml/dune/pull/11093>

[Codeberg] <https://github.com/ocaml/dune/pull/10904>

[GitLab organizations] <https://github.com/ocaml/dune/pull/10766>

[Added support for `-H' compiler flag]
<https://github.com/ocaml/dune/pull/10644>


*Editor Tools*
╌╌╌╌╌╌╌╌╌╌╌╌╌╌

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

  Developer tooling received substantial upgrades during the end of last
  year and the beginning 2025. A major milestone for project-wide
  features has been reached with the release of OCaml 5.3: LSP's
  renaming feature now [_renames symbols in the entire project_] if the
  index is built. Additionally, all of the classic merlin-server
  commands are now available as LSP custom requests: this enabled the
  addition of [many new features to the Visual Studio Code plugin] and
  the creation of a brand new Emacs mode, based on LSP, [now available
  on Melpa].

  These features bring OCaml editor support closer to modern IDE
  capabilities, with implementations available across multiple editors.


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

[_renames symbols in the entire project_]
<https://discuss.ocaml.org/t/ann-merlin-and-ocaml-lsp-support-experimental-project-wide-renaming/16008>

[many new features to the Visual Studio Code plugin]
<https://tarides.com/blog/2025-02-28-full-blown-productivity-in-vscode-with-ocaml/>

[now available on Melpa] <https://melpa.org/#/ocaml-eglot>

◊ Merlin and OCaml LSP Server

  Support for project wide renaming, search-by-type, and
  ocaml-lsp-server now exposes all Merlin features via LSP custom
  queries.

  *Notable Activity*
  • OCaml 5.3 support ([merlin#1850])
  • Project-wide renaming is now available. ([ocaml-lsp#1431] and
    [merlin#1877])
  • A new option to mute hover responses has been added for better
    integration with alternative hover providers ([ocaml-lsp#1416])
  • New type-based search support similar to Hoogle ([ocaml-lsp#1369]
    and [merlin#1828])

  *Bug Fixes*
  • Fixed completion range issues with polymorphic variants
    ([ocaml-lsp#1427])
  • Fixed various issues with jump code actions and added customization
    options ([ocaml-lsp#1376])
  • Various fixes and improvements have been made to signature help and
    inlay hints


  [merlin#1850] <https://github.com/ocaml/merlin/pull/1850>

  [ocaml-lsp#1431] <https://github.com/ocaml/ocaml-lsp/pull/1431>

  [merlin#1877] <https://github.com/ocaml/merlin/pull/1877>

  [ocaml-lsp#1416] <https://github.com/ocaml/ocaml-lsp/pull/1416>

  [ocaml-lsp#1369] <https://github.com/ocaml/ocaml-lsp/pull/1369>

  [merlin#1828] <https://github.com/ocaml/merlin/pull/1828>

  [ocaml-lsp#1427] <https://github.com/ocaml/ocaml-lsp/issues/1427>

  [ocaml-lsp#1376] <https://github.com/ocaml/ocaml-lsp/pull/1376>


◊ Visual Studio Code plugin

  Added support for most of the Merlin features historically availbale
  to Emacs and Vim users, via the new LSP custom requests.

  *Notable Activity*

  • Improved typed-of-selection feature, with ability to grow or shrink
    the selection and increase verbosity ([#1675]).
  • Improved jump navigation ([#1654]), search-by-type ([#1626])
  • Improved typed holes navigation ([#1666]).git push –set-upstream
    origin publish_platform_newsletter_q4_24
  • New search-by-type command ([#1626]).

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


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

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

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

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


◊ Emacs support

  A brand new Emacs plugin based on the Eglot LSP client is now ready
  for daily usage: <https://github.com/tarides/ocaml-eglot>.


*Documentation Tools*
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

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


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

◊ Odoc

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

  There is now a [beta release for odoc 3] that you can try out and give
  feedback on!

  During the quarter, odoc has been making steady progress toward its
  3.0 release with several notable improvements:
  • *Enhanced Navigation*: The sidebar and breadcrumbs navigation has
     been unified and improved ([#1251]), making the documentation
     hierarchy more consistent and flexible. This allows better
     organization of modules, pages, and source files in the
     documentation.
  • *Documentation Features*: New features have been added to Odoc 3
     ([#1264]), including:
    • Support for images with embedded assets
    • Cross-package linking (linking to modules from external libraries)
  • *Search Integration*: Sherlodoc, the search functionality, has been
     merged into the main odoc codebase ([#1263]), ensuring better
     maintenance and synchronized releases.

  *Notable Activity*
  • [Odoc 3 Beta Release]


  [beta release for odoc 3]
  <https://discuss.ocaml.org/t/ann-odoc-3-beta-release/16043>

  [#1251] <https://github.com/ocaml/odoc/pull/1251>

  [#1264] <https://github.com/ocaml/odoc/pull/1264>

  [#1263] <https://github.com/ocaml/odoc/pull/1263>

  [Odoc 3 Beta Release]
  <https://discuss.ocaml.org/t/ann-odoc-3-beta-release/16043>


◊ Mdx upgraded to OCaml 5.3

  *Maintained by:* Marek Kubica (@Leonidas-from-XIV, Tarides), Thomas
   Gazagnaire (@samoht, Tarides)

  With OCaml 5.3, some compiler error messages changed, so MDX was
  updated to use a more expressive tag system to choose which version of
  the compiler can run which code block. This effort uncovered a bug in
  the current handling of skipped blocks for `mli' files, which was
  fixed.

  *Notable Activity*
  • OCaml 5.3 support ([#457]), ensuring the tool remains compatible
    with the latest OCaml releases.
  • Fixed error handling for skipped blocks in `mli' files ([#462])
  • Improved syntax highlighting ([#461])
  • Added support for multiple version labels ([#458]), improving the
    ability to test code across different OCaml versions.


  [#457] <https://github.com/realworldocaml/mdx/pull/457>

  [#462] <https://github.com/realworldocaml/mdx/pull/462>

  [#461] <https://github.com/realworldocaml/mdx/pull/461>

  [#458] <https://github.com/realworldocaml/mdx/pull/458>


*Package Management*
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

◊ Opam

  [Opam 2.3.0 was released in November]. We are now working towards the
  2.4 release, with some new sub commands (`admin', `source', `switch',
  etc.), fixes (pinning, switch, software heritage fallback, UI) and
  enhancements.

  *Notable Activity*
  • Add several checksum, `extra-files' and `extra-source' lints -
    [#5561]
  • Add options `opam source --require-checksums' and `--no-checksums'
    to harmonise with `opam install' - [#5563]
  • Add the current VCS revision information to `opam pin list' -
    [#6274] - fix [#5533]
  • Make opamfile parsing more robust for future changes - [#6199] - fix
    [#6188]
  • Fix `opam switch remove <dir>' failure when it is a linked switch -
    [#6276] - fix [#6275]
  • Fix `opam switch list-available' when given several arguments -
    [#6318]
  • Correctly handle `pkg.version' pattern in `opam switch
    list-available' - [#6186] - fix [#6152]
  • Fix sandbox for NixOS [#6333], and `DUNE_CACHE_ROOT' environment
    variabale usage - [#6326]
  • Add `opam admin compare-versions' to ease version comparison for
    sanity checks [#6197] and fix `opam admin check' in the presence of
    some undefined variables - [#6331] - fix [#6329]
  • When loading a repository, don’t automatically populate
    `extra-files:' field with found files in `files/' - [#5564]
  • Update and fix Software Heritage fallback - [#6036] - fix [#5721]
  • Warn if a repository to remove doesn’t exist - [#5014] - fix [#5012]
  • Silently mark packages requiring an unsupported version of opam as
    unavailable - [#5665] - fix [#5631]
  • Display switch invariant with the same syntax that it is written in
    file (no pretty printing) - [#5619] - fix [#5491]
  • Fix output display regarding terminal size [#6244] - fix [#6243]
  • Change default answer display - [#6289] - fix [#6288]
  • Add a warning when setting a variable with `opam var' if an option
    is shadowed - [#4904] - fix [#4730]
  • Improve the error message when a directory is not available while
    fetching using rsync - [#6027]
  • Fix `install.exe' search path on Windows - [#6190]
  • Add `ALTLinux' support for external dependencies - [#6207]
  • Make `uname' information more robust accros ditributions - [#6127]

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


  [Opam 2.3.0 was released in November]
  <https://ocaml.org/changelog/2024-11-13-opam-2-3-0>

  [#5561] <https://github.com/ocaml/opam/issues/5561>

  [#5563] <https://github.com/ocaml/opam/issues/5563>

  [#6274] <https://github.com/ocaml/opam/issues/6274>

  [#5533] <https://github.com/ocaml/opam/issues/5533>

  [#6199] <https://github.com/ocaml/opam/issues/6199>

  [#6188] <https://github.com/ocaml/opam/issues/6188>

  [#6276] <https://github.com/ocaml/opam/issues/6276>

  [#6275] <https://github.com/ocaml/opam/issues/6275>

  [#6318] <https://github.com/ocaml/opam/issues/6318>

  [#6186] <https://github.com/ocaml/opam/issues/6186>

  [#6152] <https://github.com/ocaml/opam/issues/6152>

  [#6333] <https://github.com/ocaml/opam/issues/6333>

  [#6326] <https://github.com/ocaml/opam/issues/6326>

  [#6197] <https://github.com/ocaml/opam/issues/6197>

  [#6331] <https://github.com/ocaml/opam/issues/6331>

  [#6329] <https://github.com/ocaml/opam/issues/6329>

  [#5564] <https://github.com/ocaml/opam/issues/5564>

  [#6036] <https://github.com/ocaml/opam/issues/6036>

  [#5721] <https://github.com/ocaml/opam/issues/5721>

  [#5014] <https://github.com/ocaml/opam/issues/5014>

  [#5012] <https://github.com/ocaml/opam/issues/5012>

  [#5665] <https://github.com/ocaml/opam/issues/5665>

  [#5631] <https://github.com/ocaml/opam/issues/5631>

  [#5619] <https://github.com/ocaml/opam/issues/5619>

  [#5491] <https://github.com/ocaml/opam/issues/5491>

  [#6244] <https://github.com/ocaml/opam/issues/6244>

  [#6243] <https://github.com/ocaml/opam/issues/6243>

  [#6289] <https://github.com/ocaml/opam/issues/6289>

  [#6288] <https://github.com/ocaml/opam/issues/6288>

  [#4904] <https://github.com/ocaml/opam/issues/4904>

  [#4730] <https://github.com/ocaml/opam/issues/4730>

  [#6027] <https://github.com/ocaml/opam/issues/6027>

  [#6190] <https://github.com/ocaml/opam/issues/6190>

  [#6207] <https://github.com/ocaml/opam/issues/6207>

  [#6127] <https://github.com/ocaml/opam/issues/6127>


◊ Dune-release

  *Roadmap:* [Share / (W26) Package Publication]

  Dune-release has been improved to better handle publishing packages
  from custom repositories and private Git repositories.

  *Notable Activity*
  • Support for overwriting the dev-repo field when creating GitHub
    tags/releases ([#494]), which a useful for private projects

  *Maintained by:* Thomas Gazagnaire (@samoht, Tarides), Etienne Millon
   (@emillon, Tarides), Marek Kubica (@Leonidas-from-XIV, Tarides)


  [Share / (W26) Package Publication]
  <https://ocaml.org/tools/platform-roadmap#w26-package-publication>

  [#494] <https://github.com/tarides/dune-release/pull/494>


◊ Opam-publish

  *Notable Activity*
  • Integration of Opam CI Lint functionality into `opam-publish'
    ([#166], [#165]) to validate packages before submission
  • A new `--pre-release' argument added to handle pre-release packages
    correctly ([#164])

  *Maintained by:* Raja Boujbel (@rjbou - OCamlPro), Kate Deplaix
   (@kit-ty-kate, Ahrefs)


  [#166] <https://github.com/ocaml-opam/opam-publish/pull/166>

  [#165] <https://github.com/ocaml-opam/opam-publish/issues/165>

  [#164] <https://github.com/ocaml-opam/opam-publish/pull/164>


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

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

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

  • [Full blown productivity in VSCode with OCaml]


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

[Full blown productivity in VSCode with OCaml]
<https://tarides.com/blog/2025-02-28-full-blown-productivity-in-vscode-with-ocaml>


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

             reply	other threads:[~2025-03-04 14:01 UTC|newest]

Thread overview: 236+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-04 14:01 Alan Schmitt [this message]
  -- strict thread matches above, loose matches on Subject: below --
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-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=m2zfi0yjw8.fsf@petitepomme.net \
    --to=alan.schmitt@polytechnique.org \
    --cc=caml-list@inria.fr \
    --cc=lwn@lwn.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox