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, 11 Jun 2024 17:04:36 +0200	[thread overview]
Message-ID: <m2le3bikqj.fsf@petitepomme.net> (raw)

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

Hello

Here is the latest OCaml Weekly News, for the week of June 04 to 11,
2024.

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

Providing Opam system dependancies with Nix
ppx_deriving.6.0.2 and ppx_deriving_yojson.3.8.0
Effective ML Through Merlin's Destruct Command
OCaml Windows Working Group
Flambda2 Ep. 2: Loopifying Tail-Recursive Functions, by OCamlPro
OCaml Platform Newsletter: March-May 2024
OCaml.org Newsletter: May 2024
OCaml Windows Working Group
Registration for Fun OCaml 2024 Opens Shortly
opam 2.2.0~beta3
Other OCaml News
Old CWN


Providing Opam system dependancies with Nix
═══════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/providing-opam-system-dependancies-with-nix/14745/1>


Ryan announced
──────────────

  I've opened a [PR] with input from @dra27 and @avsm adding support for
  Nix depexts (system dependencies) to Opam.

  Opam supports system dependencies for other platforms by invoking the
  system package manager, e.g. `apt-get install ...'. However Nix is a
  bit different, as in general installing a package to your system
  doesn't create the development environment required to use it; it will
  only add executables to your `$PATH'. To find, for example, objects
  files, outside of a Nix derivation you can use `nix-shell' and it's
  descendant `nix develop'. E.g.:

  ┌────
  │ $ nix-shell -p gmp
  │ $ echo $NIX_LDFLAGS
  │ -rpath /nix/store/20g5iw2r512gnfrdr4imp2y940v3vlif-shell/lib  -L/nix/store/rx6nkd40819acppajq29g1hxa4d9r35f-gmp-with-cxx-6.3.0/lib -L/nix/store/rx6nkd40819acppajq29g1hxa4d9r35f-gmp-with-cxx-6.3.0/lib
  └────

  We support Nix depexts with Opam in a similar way. A Nix derivation is
  build with the desired packages as inputs, and the resulting
  environment is output as a file in the Opam switch in a format that
  Opam can parse. This `nix.env' file is a symlink into the Nix store,
  so acts as a garbage collection root – packages won't be removed from
  the store while this file exists. Opam outputs these environment
  variables on an invocation of `opam env'.

  This fixes issues such as
  <https://discuss.ocaml.org/t/opam-and-nixos-is-there-an-alternative-to-nix-shell/13726>.

  While the primary use case is on NixOS, this depext mechanism could be
  used on other platforms to provide a consistent experience including
  other Linux distributions, BSDs, (and possibly [even windows] in the
  future).

  Nixpkgs typically only packages one version of a package at a time,
  but I'm working on versioned depexts with previous version of Nixpkgs
  as outlined [here].

  I'm keen to get people's opinions and perspective on this!


[PR] <https://github.com/ocaml/opam/pull/5982>

[even windows] <https://github.com/NixOS/nix/pull/8901>

[here]
<https://discuss.ocaml.org/t/depending-on-non-ocaml-languages-from-the-opam-repository/12585/6>


ppx_deriving.6.0.2 and ppx_deriving_yojson.3.8.0
════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ann-ppx-deriving-6-0-2-and-ppx-deriving-yojson-3-8-0/14750/1>


Nathan Rebours announced
────────────────────────

  I am happy to announce the release of ppx_deriving.6.0.2 and
  ppx_deriving_yojson.3.8.0, the first release of those packages in
  years!

  The main feature here is the port of [ppx_deriving]'s standard
  derivers (`[@@deriving show, make, ord, eq, ...]') and
  [ppx_deriving_yojson] to [ppxlib]'s `Deriving' api.  There are no
  changes to how you'd use those derivers but many benefits:
  • Better performances and better integration with other ppx-es as the
    code is now generated as part of ppxlib's driver main AST rewriting
    phase rather than in a separate, dedicated phase.
  • They can now be used with `[@@deriving_inline]'
  • None of them will break the location invariant required by merlin
    anymore, fixing a long lasting bug and providing a much better user
    experience.

  You can find the full release notes for ppx_deriving [here] and for
  ppx_deriving_yojson [here].

  I'd like to thank @sim642 for all their work on the ppxlib ports and
  their patience, and all our other contributors.

  I'd also like to thank the [OCaml Software Foundation] who has been
  funding my work on those releases.


[ppx_deriving] <https://github.com/ocaml-ppx/ppx_deriving>

[ppx_deriving_yojson] <https://github.com/ocaml-ppx/ppx_deriving_yojson>

[ppxlib] <https://github.com/ocaml-ppx/ppxlib>

[here] <https://github.com/ocaml-ppx/ppx_deriving/releases/tag/v6.0.2>

[here]
<https://github.com/ocaml-ppx/ppx_deriving_yojson/releases/tag/v3.8.0>

[OCaml Software Foundation] <https://ocaml-sf.org/>


Effective ML Through Merlin's Destruct Command
══════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/blog-effective-ml-through-merlins-destruct-command/14751/1>


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

  I'm very pleased to present you [an article] with a collection of
  small illustrations and examples of how to use the `destruct' command
  to generate patterns in the presence of pattern matches.

  The command has been present in [Merlin] for several years (and
  accessible via [OCaml-LSP]) but, as the various changelogs relating to
  Merlin mention, we have spent some time polishing it and adapting it
  to the evolutions of OCaml, making it more stable (essentially in the
  presence of punning) and taking into account the changes made to the
  representation of functions (and their parameters).

  The aim of the article is to show how the `destruct' command works in
  a number of very concrete cases, and ends with an example (a little
  artificial for the purposes of the article and for teaching purposes)
  which shows how to use `destruct' interactively.

  • [ Effective ML Through Merlin's Destruct Command]: original article,
    written in English, on the Tarides blog.
  • [ Effective ML, au travers de la commande 'destruct']: A
    French-language interpretation of the article, published on my blog.

  Can't wait to hear your feedback! Happy reading!


[an article]
<https://tarides.com/blog/2024-05-29-effective-ml-through-merlin-s-destruct-command/>

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

[OCaml-LSP] <https://ocaml.org/p/lsp/latest>

[ Effective ML Through Merlin's Destruct Command]
<https://tarides.com/blog/2024-05-29-effective-ml-through-merlin-s-destruct-command/>

[ Effective ML, au travers de la commande 'destruct']
<https://xvw.lol/pages/ocaml-merlin-destruct.html>


OCaml Windows Working Group
═══════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-windows-working-group/14755/1>


Sudha Parimala announced
────────────────────────

  I’m happy to share that we’re starting a working group for OCaml
  Windows. This is part of a larger effort, [First-class Windows], to
  enhance the OCaml experience on Windows. Through this effort, we aim
  to coordinate our collective knowledge to identify high-priority items
  for First-class Windows.

  We've started a mailing list to exchange ideas and would greatly
  appreciate inputs. You can sign up at –
  <https://groups.google.com/u/0/g/ocaml-windows-wg>

  While the mailing list is intended to be the primary means of
  communication, we plan to do a sync meeting once a month, to start
  with. We plan to do a kick-off meeting early next week. Please fill in
  this poll if you're interested to join:
  <https://strawpoll.com/polls/PbZqbmkNeyN>.

  Happy camling :camel:


[First-class Windows]
<https://discuss.ocaml.org/t/launching-the-first-class-windows-project/14687>


Flambda2 Ep. 2: Loopifying Tail-Recursive Functions, by OCamlPro
════════════════════════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/blog-flambda2-ep-2-loopifying-tail-recursive-functions-by-ocamlpro/14758/1>


OCamlPro announced
──────────────────

  Greetings Cameleers,

  We would like to share with you our latest *Flambda2 Snippet*:
  [Flambda2 Ep. 2: Loopifying Tail-Recursive Functions]!

  Indeed, today's topic is what is called `Loopify', one of the many
  optimisation algorithms found in the `Flambda2' optimising compiler
  project.

  We believe `Loopify' is a nicely representative piece of software for
  our readers to grasp at the general design and philosophy for all
  optimisations available in `Flambda2'! Hopefully, you will do too!

  Be sure to check out the [`Flambda2 Ep.0'] article to get all the
  context for the project itself and the series of blog posts!

  In any case, we await your feedback below, and hope that you will
  enjoy reading this post, and all ensuing ones!

  Kind regards, The OCamlPro Team


[Flambda2 Ep. 2: Loopifying Tail-Recursive Functions]
<https://ocamlpro.com/blog/2024_05_07_the_flambda2_snippets_2>

[`Flambda2 Ep.0']
<https://ocamlpro.com/blog/2024_03_18_the_flambda2_snippets_0/>


OCaml Platform Newsletter: March-May 2024
═════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-platform-newsletter-march-may-2024/14765/1>


Thibaut Mattio announced
────────────────────────

  Welcome to the eleventh edition of the OCaml Platform newsletter!

  In this March-May 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:*

  • Explorations on Dune package management have reached a
    Minimal-Viable-Product (MVP) stage: a version of Dune that can build
    non-trivial projects like [OCaml.org] and [Bonsai]. With a working
    MVP, the team is shifting their focus to putting Dune package
    management in the hands of the community. To that end, we have
    started the Dune Developer Preview Program, where we will test Dune
    package management with users and refine the user experience in
    preparation for a final release.
  • The opam team released a second beta of [opam 2.2], and with it,
    opened the [final PR] to add support for Windows OCaml to the
    opam-repository. Once the PR is merged, opam 2.2 will be usable with
    the upstream opam-repository on Windows, paving the way for a third
    beta very soon, and a Release Candidate next.
  • The odoc team has finalized the initial design for Odoc 3.0 and
    opened several [RFCs] to gather community input. We've implemented a
    new [Odoc driver] that follows the Odoc 3.0 design and have already
    started prototyping key parts of the design.
  • Merlin's project-wide references query is getting very close to
    release. The necessary [compiler PR] has been merged and included in
    OCaml 5.2, and the [Dune rules PR] has been merged and included in
    Dune 3.16. The next steps are to merge the [PR in Merlin] itself and
    the small patch in OCaml LSP.
  • The set of standard derivers shipped with `ppx_deriving.std'
    (i.e. `[@@deriving show, make, ord, eq, ...]') as well as
    `ppx_deriving_yojson' are now directly written against Ppxlib's
    API. That impacts developers in two ways. First, it allows you to
    enjoy reliable editor features in projects with those derivers
    (Ppxlib preserves Merlin's location invariants). Second, you can
    avoid a hard dependency on those derivers by using Ppxlib's
    `deriving_inline' feature on them. Thanks a lot to @sim642 for all
    your work and very kind patience, @NathanReb for reviewing and
    release managing, and everyone else involved!

  *Releases:*
  • [Ppxlib 0.32.1]
  • [Merlin 5.0]
  • [Dune 3.14.2]
  • [Dune 3.15.0]
  • [Dune 3.15.2]
  • [Dune 3.15.3]
  • [Odoc 2.4.2]
  • [opam 2.1.6]
  • [opam 2.2.0~beta2]
  • [ocamlformat 0.26.2]


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

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

[OCaml.org] <https://github.com/ocaml/ocaml.org>

[Bonsai] <https://github.com/janestreet/bonsai>

[opam 2.2] <https://discuss.ocaml.org/t/ann-opam-2-2-0-beta2/14461>

[final PR] <https://github.com/ocaml/opam-repository/pull/25861>

[RFCs] <https://github.com/ocaml/odoc/discussions>

[Odoc driver] <https://github.com/ocaml/odoc/pull/1121>

[compiler PR] <https://github.com/ocaml/ocaml/pull/13001>

[Dune rules PR] <https://github.com/ocaml/dune/pull/10422>

[PR in Merlin] <https://github.com/ocaml/merlin/pull/1766>

[Ppxlib 0.32.1] <https://github.com/ocaml/opam-repository/pull/25713>

[Merlin 5.0] <https://ocaml.org/changelog/2024-05-22-merlin-5.0>

[Dune 3.14.2] <https://ocaml.org/changelog/2024-03-13-dune.3.14.2>

[Dune 3.15.0] <https://ocaml.org/changelog/2024-04-03-dune.3.15.0>

[Dune 3.15.2] <https://ocaml.org/changelog/2024-04-23-dune.3.15.2>

[Dune 3.15.3] <https://ocaml.org/changelog/2024-05-26-dune.3.15.3>

[Odoc 2.4.2] <https://ocaml.org/changelog/2024-04-30-odoc-2.4.2>

[opam 2.1.6] <https://ocaml.org/changelog/2024-05-22-opam-2-1-6>

[opam 2.2.0~beta2]
<https://ocaml.org/changelog/2024-04-09-opam-2.2.0-beta2>

[ocamlformat 0.26.2]
<https://ocaml.org/changelog/2024-04-23-ocamlformat-0.26.2>

*[Dune]* Exploring Package Management in Dune ([W4])
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  *Contributed by:* @rgrinberg (Tarides), @Leonidas-from-XIV (Tarides),
   @gridbugs (Tarides), @Alizter

  *Why:* Unify OCaml tooling under a single command line for all
   development workflows. This addresses one of the most important pain
   points [reported by the community].

  *What:* Prototyping the integration of package management into Dune
   using opam as a library. We're introducing a `dune pkg lock' command
   to generate a lock file and enhancing `dune build' to handle
   dependencies in the lock file. More details in the [Dune RFC].

  *Summary:*

  Over the past three months, significant progress has been made in
  adding Dune's support for package management. We are thrilled to
  report that our prototypes have reached a Minimal Viable Product (MVP)
  stage: an experimental version of Dune package management that can be
  used to build non-trivial projects, including OCaml.org and Bonsai,
  which we are using in our tests.

  There is still a long way to go, but with this milestone reached, we
  are now shifting our focus from prototyping to putting the feature in
  the hands of the community. We are moving to testing the new Dune
  feature with users, and in particular, now that we have a good
  understanding of the technical blockers and their workarounds, we will
  be focusing on validating and refining the developer experience (DX)
  of Dune package management in preparation for a first release.

  To that end, the Dune team has started a Dune Developer Preview
  Program. We're currently testing the Developer Preview of package
  management with selected beta testers, and once the biggest issues
  have been addressed, we'll be opening it to the broader community.

  *Activities:*
  • Continued addressing remaining issues with ocamlfind and zarith.
    • Added repro PRs for ocamlfind and zarith issues –
      [ocaml/dune#10233], [ocaml/dune#10235].
    • Iterated on a solution for relocatable ocamlfind –
      [ocaml/ocamlfind#72].
    • Removed `.mml' references in ocamlfind – [ocaml/ocamlfind#75].
    • Set OCAMLFIND_DESTDIR for install actions to fix ocamlfind
      installation issues – [ocaml/dune#10267].
  • Added a test reproducing error when locking when a pin stanza
    contains a relative path outside the workspace – [ocaml/dune#10255].
  • Fixed package creation issues with directories on different
    filesystems – [ocaml/dune#10214].
  • Opened PRs to address user errors, improve error messages, and
    enhance environment handling for pkg rules – [ocaml/dune#10385],
    [ocaml/ocamlbuild#327], [ocaml/dune#10403], [ocaml/dune#10407],
    [ocaml/dune#10455].
  • Addressed several issues related to `withenv' actions, `dune pkg
    lock', and unexpected behavior with variable updates –
    [ocaml/dune#10404], [ocaml/dune#10408], [ocaml/dune#10417],
    [ocaml/dune#10440], [ocaml/opam#5925], [ocaml/opam#5926].
  • Approved relocatable releases of ocamlfind and ocamlbuild –
    [ocaml-dune/opam-overlays#1], [ocaml-dune/opam-overlays#2].
  • Cleaned up and sought feedback on the relocatable ocamlfind PR –
    [ocaml/ocamlfind#72].
  • To work around the fact that the compiler is not relocatable (yet!),
    we worked on adding support to Dune to manage compiler and developer
    tools, an experimental feature we call Dune Toolchain. –
    [ocaml/dune#10470], [ocaml/dune#10474], [ocaml/dune#10475],
    [ocaml/dune#10476], [ocaml/dune#10477], [ocaml/dune#10478].
  • Addressed various issues related to pkg lock, environment updates,
    and package management – [ocaml/dune#10512], [ocaml/dune#10499],
    [ocaml/dune#10498], [ocaml/dune#10531], [ocaml/dune#10521],
    [ocaml/dune#10539], [ocaml/dune#10540], [ocaml/dune#10543],
    [ocaml/dune#10544], [ocaml/dune#10545], [ocaml/dune#10538],
    [ocaml/dune#10542], [ocaml/dune#10595], [ocaml/dune#10596],
    [ocaml/dune#10592], [ocaml/dune#10593].
  • Merged PRs to use unpack code for rsync URLs and disable hg/darcs
    fetch code – [ocaml/dune#10556], [ocaml/dune#10561].


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

[reported by the community]
<https://www.dropbox.com/s/omba1d8vhljnrcn/OCaml-user-survey-2020.pdf?dl=0>

[Dune RFC] <https://github.com/ocaml/dune/issues/7680>

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

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

[ocaml/ocamlfind#72] <https://github.com/ocaml/ocamlfind/pull/72>

[ocaml/ocamlfind#75] <https://github.com/ocaml/ocamlfind/pull/75>

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

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

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

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

[ocaml/ocamlbuild#327] <https://github.com/ocaml/ocamlbuild/pull/327>

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

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

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

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

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

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

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

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

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

[ocaml-dune/opam-overlays#1]
<https://github.com/ocaml-dune/opam-overlays/pull/1>

[ocaml-dune/opam-overlays#2]
<https://github.com/ocaml-dune/opam-overlays/pull/2>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


*[opam]* Native Support for Windows in opam 2.2 ([W5])
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  *Contributed by:* @rjbou (OCamlPro), @kit-ty-kate (Ahrefs), @dra27
   (Tarides), @AltGr (OCamlPro)

  *Why:* Enhance OCaml's viability on Windows by integrating native opam
   and `opam-repository' support, fostering a larger community, and more
   Windows-friendly packages.

  *What:* Releasing opam 2.2 with native Windows support, making the
   official `opam-repository' usable on Windows platforms.

  *Summary:*

  The opam team is getting closer to a final release of opam 2.2 with
  support for Windows. In the past months, we have released a second
  beta of opam 2.2, addressing a number of issues reported by users on
  previous releases, including Windows issues.

  Excitingly, we also opened the [final PR] adding support for Windows
  OCaml to opam-repository. With the PR merged, the opam team is
  expecting to be able to move to a Release Candidate in June.

  Stay tuned for more exciting news and releases in the coming weeks and
  months!

  *Activities:*

  • Packaging the compiler in opam-repository
    • We cleared WIP items in the [windows-initial] branch, creating the
      [mingw-w64-shims] repository for the C stub program and generation
      script needed for the mingw-w64-shims opam package.
    • Various fixes for msvs-detect were upstreamed and the opam
      packaging PR finalized – [metastack/msvs-tools#17],
      [metastack/msvs-tools#18].
    • Initial upstreaming PRs were opened for Visual Studio
      configuration – [ocaml/opam-repository#25440], reorganization of
      conf-zstd – [ocaml/opam-repository#25441], and native Windows
      depexts – [ocaml/opam-repository#25442].
    • Fixed mccs package dependencies upstream –
      [ocaml-opam/ocaml-mccs#52], [ocaml/opam-repository#25482].
    • Upstreamed support for source-packaging of flexdll –
      [ocaml/flexdll#135].
    • Worked on packaging scripts for winpthreads for OCaml 5.3.0 –
      [ocaml/winpthreads#1].
    • Further upstreaming PRs were opened for mingw-w64-shims –
      [ocaml/opam-repository#25454], and flexdll and winpthreads sources
      packages – [ocaml/opam-repository#25512].
    • Reviewed and tested changes related to the 4.14.2 release for the
      sunset branch of opam-repository-mingw –
      [ocaml-opam/opam-repository-mingw#20],
      [ocaml-opam/opam-repository-mingw#21].
    • Updated the [windows-initial] branch to support MSYS2, including
      creating [msys2-opam] to complement [mingw-w64-shims].
    • Upstreamed issues with the ocaml-variants.5.1.1+effect-syntax
      package – [ocaml/opam-repository#25645].
    • Investigated BER MetaOCaml, determining that 4.14.1+BER does not
      work on Windows and disabled it in opam-repository –
      [ocaml/opam-repository#25648].
    • Worked further on the draft PR, addressing the issue of invalid
      maintainer email addresses for packages –
      [ocaml/opam-repository#25826].
    • Opened the main PR for Windows compiler support –
      [ocaml/opam-repository#25861], with a parallel draft PR for
      updating the compiler's opam file – [ocaml/ocaml#13160].
    • Backported [ocaml/ocaml#13100] to 5.1.x ocaml-variants –
      [ocaml/opam-repository#25828], awaiting opam 2.2.0~beta3 release.
  • Release opam 2.2
    • Completed work on various patches and PRs, including fixes for
      accented characters in Dune – [ocaml/opam#5861],
      [ocaml/opam#5871], [janestreet/spawn#58], [ocaml/opam#5862].
    • Worked on performance improvements for Windows, including adding
      job statuses and a proof-of-concept for a spinner on slow-running
      build jobs – [ocaml/opam#5883].
    • Finalizing fix on Cygwin PATH handling for opam 2.2.0 beta2 –
      [ocaml/opam#5832].
    • Mark the internal cygwin installation as recommended -
      [ocaml/opam#5903]
    • Hijack the `%{?val_if_true:val_if_false}%' syntax to support
      extending the variables of packages with + in their name -
      [ocaml/opam#5840]
    • Fixed issues with downloading URLs with invalid characters and
      opam's internal state – [ocaml/opam#5921], [ocaml/opam#5922].
    • Assembled test harnesses for `opam init' and addressed issues with
      `opam lint' warnings – [dra27/opam-testing], [ocaml/opam#5927],
      [ocaml/opam#5928].
    • Fixed reversal of environment updates and minor issues in GitHub
      Actions – [ocaml/opam#5935], [ocaml/opam#5938].
    • [Released opam 2.2~beta2].
    • Fixed issues related to environment variable handling –
      [ocaml/opam#5935].
    • Finalized fixes for Git for Windows menu – [ocaml/opam#5963].
    • Minor fixes to `--cygwin-extra-packages' – [ocaml/opam#5964].
    • Refactored `opam init' for a more logical experience –
      [ocaml/opam#5963].
    • Updated lint warning 41 PR – [ocaml/opam#5927].
    • Responded to issues found by testers of Windows compiler packages
      – [ocaml/flexdll#138], [ocaml/flexdll#139].
    • Completely reworked `opam init' to detect Cygwin and MSYS2
      installations.
    • Fixed issues with the `?' operator and MSYS2's native curl
      implementation – [ocaml/opam#5983], [ocaml/opam#5984].


[W5] <https://ocaml.org/docs/platform-roadmap#w5-manage-dependencies>

[final PR] <https://github.com/ocaml/opam-repository/pull/25861>

[windows-initial]
<https://github.com/dra27/opam-repository/commits/windows-initial>

[mingw-w64-shims] <https://github.com/dra27/mingw-w64-shims>

[metastack/msvs-tools#17]
<https://github.com/metastack/msvs-tools/pull/17>

[metastack/msvs-tools#18]
<https://github.com/metastack/msvs-tools/pull/18>

[ocaml/opam-repository#25440]
<https://github.com/ocaml/opam-repository/pull/25440>

[ocaml/opam-repository#25441]
<https://github.com/ocaml/opam-repository/pull/25441>

[ocaml/opam-repository#25442]
<https://github.com/ocaml/opam-repository/pull/25442>

[ocaml-opam/ocaml-mccs#52]
<https://github.com/ocaml-opam/ocaml-mccs/pull/52>

[ocaml/opam-repository#25482]
<https://github.com/ocaml/opam-repository/pull/25482>

[ocaml/flexdll#135] <https://github.com/ocaml/flexdll/pull/135>

[ocaml/winpthreads#1] <https://github.com/ocaml/winpthreads/pull/1>

[ocaml/opam-repository#25454]
<https://github.com/ocaml/opam-repository/pull/25454>

[ocaml/opam-repository#25512]
<https://github.com/ocaml/opam-repository/pull/25512>

[ocaml-opam/opam-repository-mingw#20]
<https://github.com/ocaml-opam/opam-repository-mingw/pull/20>

[ocaml-opam/opam-repository-mingw#21]
<https://github.com/ocaml-opam/opam-repository-mingw/pull/21>

[msys2-opam] <https://github.com/dra27/msys2-opam>

[ocaml/opam-repository#25645]
<https://github.com/ocaml/opam-repository/pull/25645>

[ocaml/opam-repository#25648]
<https://github.com/ocaml/opam-repository/pull/25648>

[ocaml/opam-repository#25826]
<https://github.com/ocaml/opam-repository/pull/25826>

[ocaml/opam-repository#25861]
<https://github.com/ocaml/opam-repository/pull/25861>

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

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

[ocaml/opam-repository#25828]
<https://github.com/ocaml/opam-repository/pull/25828>

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

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

[janestreet/spawn#58] <https://github.com/janestreet/spawn/pull/58>

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

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

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

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

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

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

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

[dra27/opam-testing] <https://github.com/dra27/opam-testing>

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

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

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

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

[Released opam 2.2~beta2]
<https://discuss.ocaml.org/t/ann-opam-2-2-0-beta2/14461>

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

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

[ocaml/flexdll#138] <https://github.com/ocaml/flexdll/issues/138>

[ocaml/flexdll#139] <https://github.com/ocaml/flexdll/issues/139>

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

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


*[​`odoc'​]* Odoc 3.0: Unify OCaml.org and Local Package Documentation ([W25])
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  *Contributed by:* @jonludlam (Tarides), @julow (Tarides), @panglesd
   (Tarides), Luke Maurer (Jane Street)

  *Why:* Improving local documentation generation workflow will help
   package authors write better documentation for their packages, and
   consolidating the different `odoc' documentation generators will help
   make continuous improvements to `odoc' available to a larger
   audience.

  *What:* We will create conventions that drivers must follow to ensure
   that their output will be functional. Once established, we will
   update the Dune rules to follow these rules, access new `odoc'
   features (e.g., source rendering), and provide similar
   functionalities to docs.ocaml.org (a navigational sidebar, for
   instance). This will effectively make Dune usable to generate
   OCaml.org package documentation.

  *Summary:*

  The Odoc team has made significant progress on the upcoming Odoc
  3.0. We held productive in-person meetings in Paris to discuss crucial
  design aspects such as the CLI, source code rendering, and
  references. These discussions led to the publications of RFCs for the
  various components of the design specification.

  We also started implementing a new Odoc driver that adheres to the new
  design for testing purposes, and began prototyping several of the new
  features.

  While discussions on the RFCs and specific features are still ongoing,
  we are very excited to have a solid set of design specifications under
  community review and to have begun implementing key parts of the new
  design.

  *Activities:*

  • Investigated package name/library name mismatches and module name
    clashes – [jonludlam/2997e905a468bfa0e625bf98b24868e5],
    [jonludlam/0a5f1391ccbb2d3040318b154da8593a].
  • Continued work on odoc 3.0 design, including meetings and
    discussions, culminating in the publication of the RFC –
    [ocaml/odoc/discussions/1097].
  • Worked on the navigation PR, added functionalities, fixed bugs, and
    completed the rebase – [ocaml/odoc#1088].
  • Met in Paris to discuss the odoc 3.0 design, covering topics such as
    CLI, rendering source code, and references.
  • Opened a PR with basic support for markdown in standalone pages –
    [ocaml/odoc#1110].
  • Published the current proposal for assets as a discussion –
    [ocaml/odoc#1113].
  • Continued discussions on Markdown rendering and asset references -
    [ocaml/odoc#1110].
  • Implemented a new driver for testing the odoc 3.0 implementation –
    [ocaml/odoc#1121], [ocaml/odoc#1128].
  • Worked on implementing the –parent-id flag part of the Odoc 3.0 spec
    – [ocaml/odoc#1126].
  • Worked on implementing the `-L' and `-P' flags [ocaml/odoc#1132]


[W25]
<https://ocaml.org/docs/platform-roadmap#w25-generate-documentation>

[jonludlam/2997e905a468bfa0e625bf98b24868e5]
<https://gist.github.com/jonludlam/2997e905a468bfa0e625bf98b24868e5>

[jonludlam/0a5f1391ccbb2d3040318b154da8593a]
<https://gist.github.com/jonludlam/0a5f1391ccbb2d3040318b154da8593a>

[ocaml/odoc/discussions/1097]
<https://github.com/ocaml/odoc/discussions/1097>

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

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

[ocaml/odoc#1113] <https://github.com/ocaml/odoc/discussions/1113>

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

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

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

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


*[Merlin]* Support for Project-Wide References in Merlin ([W19])
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  *Contributed by:* @vds (Tarides), @Ekdohibs (OCamlPro), @Octachron
   (INRIA), @gasche (INRIA), @emillon (Tarides), @rgrinberg (Jane
   Street), @Julow (Tarides)

  *Why:* Enhance code navigation and refactoring for developers by
   providing project-wide reference editor features, aligning OCaml with
   the editor experience found in other languages.

  *What:* Introducing `ocamlmerlin server occurrences' and LSP
   `textDocument/references' support, extending compiler's Shapes for
   global occurrences and integrating these features in Dune, Merlin,
   and OCaml LSP.

  *Summary:*

  The past few months have seen fantastic progress on releasing Merlin's
  project-wide reference query: The compiler PR got merged and included
  in the now released OCaml 5.2; The Dune rules PR got merged, and with
  it significant performance improvements have been made on the indexing
  tool. The [final PR] in Merlin is open and under review. That PR as
  well as the small LSP patch to support the feature are about to be
  merged.

  The PR on Merlin also adds support for the feature in the Merlin
  server plug-in for Emacs. Support for the Merlin server plug-in for
  Vim has been added separately. All editor plug-ins based on LSP will
  support the new feature automatically.

  *Activities:*

  • We followed up on our compiler PR to improve performance for shape
    aliases weak reduction. It got merged, and made it into OCaml
    5.2.0. – [ocaml/ocaml#13001]
  • We improved the Dune rules that drive the indexer: Simplified the
    rules, added benchmarks, discussed and improved performance. The PR
    got merged, and made it into Dune 3.16. - [ocaml/dune#10422]
  • We polished the indexer `ocaml-index': Profiled it and improved its
    speed by a factor ~2, and improved its CLI.
  • We added a `:MerlinOccurrencesProjectWide' command to the Vim
    plug-in based on the Merlin server - [ocaml/merlin#1767]


[W19] <https://ocaml.org/docs/platform-roadmap#w19-navigate-code>

[final PR] <https://github.com/ocaml/merlin/pull/1766>

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

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

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


OCaml.org Newsletter: May 2024
══════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-org-newsletter-may-2024/14767/1>


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

  Welcome to the May 2024 edition of the OCaml.org newsletter! This
  update has been compiled by the OCaml.org team. You can find [previous
  updates] on Discuss.

  Our goal is to make OCaml.org the best resource for anyone who wants
  to get started and be productive in OCaml. The OCaml.org newsletter
  provides an update on our progress towards that goal and an overview
  of the changes we are working on.

  We couldn't do it without all the amazing people who help us review,
  revise, and create better OCaml documentation and work on issues. Your
  participation enables us to so much more than we could just by
  ourselves. Thank you!

  This newsletter covers:
  • *Recipes for the OCaml Cookbook:* Help us make the OCaml Cookbook
     really useful by contributing and reviewing recipes for common
     tasks!
  • *Community & Marketing Pages Rework:* We have UI designs for the
     reworked and new pages of the community section and are starting to
     implement these. We made progress towards showing videos from the
     community on the OCaml Planet.
  • *General Improvements:* As usual, we also worked on general
     maintenance and improvements, so we're highlighting some of the
     work that happened below.


[previous updates] <https://discuss.ocaml.org/tag/ocamlorg-newsletter>

Open Issues for Contributors
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  You can find [open issues for contributors here]!

  Here are some (as of writing this newsletter) open issues:

  • [Running OCaml Receipes in repl.it #2456]
  • [Use uucp caselesseq instead of structural equality and
    String.ascii_lowercase #2444]
  • [OG images for OCaml Packages #1786]


[open issues for contributors here]
<https://github.com/ocaml/ocaml.org/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+no%3Aassignee>

[Running OCaml Receipes in repl.it #2456]
<https://github.com/ocaml/ocaml.org/issues/2456>

[Use uucp caselesseq instead of structural equality and
String.ascii_lowercase #2444]
<https://github.com/ocaml/ocaml.org/issues/2444>

[OG images for OCaml Packages #1786]
<https://github.com/ocaml/ocaml.org/issues/1786>


Recipes for the OCaml Cookbook
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  The OCaml Cookbook is a place where OCaml developers share how to
  solve common tasks using packages from the ecosystem.

  A recipe is a code sample and explanations on how to perform a task
  using a combination of open source libraries.

  The Cookbook is live at [ocaml.org/cookbook], but there are not a lot
  of recipes published yet.

  When the cookbook was merged, all pull requests to the cookbook branch
  were automatically closed. We recreated these pull requests and they
  are ready for review.

  Here's how you can help:

  1. Review [open pull requests for cookbook recipes]!
  2. Contribute new recipes and tasks for the cookbook!

  *Relevant PRs and Activities:*
  • PR: Add a checklist for OCaml Cookbook recipe review
    [ocaml/ocaml.org#2419] by [@sabine]
  • PR: Cookbook filesystem [ocaml/ocaml.org#2399]
  • PR: Cookbook networking [ocaml/ocaml.org#2400]
  • PR: Cookbook xml [ocaml/ocaml.org#2401]
  • PR: cookbook httpclient [ocaml/ocaml.org#2402]
  • PR: cookbook uri [ocaml/ocaml.org#2403]
  • PR: Cookbook regexp2 [ocaml/ocaml.org#2404]
  • PR: Cookbook unzip [ocaml/ocaml.org#2405]
  • PR: Cookbook linalg [ocaml/ocaml.org#2406]
  • PR: Cookbook getenv [ocaml/ocaml.org#2407]
  • PR: Cookbook shell [ocaml/ocaml.org#2408]
  • PR: Cookbook geodesic [ocaml/ocaml.org#2409]
  • PR: Add cookbooks for JSON serialisation and deserialisation
    [ocaml/ocaml.org#2415] by [@gpopides]
  • PR: Cookbook Encode and Decode Bytestrings from Hex-Strings
    [ocaml/ocaml.org#2445] by [@ggsmith842]


[ocaml.org/cookbook] <https://ocaml.org/cookbook>

[open pull requests for cookbook recipes]
<https://github.com/ocaml/ocaml.org/pulls?q=is%3Apr+is%3Aopen+label%3ACookbook>

[ocaml/ocaml.org#2419] <https://github.com/ocaml/ocaml.org/pull/2419>

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

[ocaml/ocaml.org#2399] <https://github.com/ocaml/ocaml.org/pull/2399>

[ocaml/ocaml.org#2400] <https://github.com/ocaml/ocaml.org/pull/2400>

[ocaml/ocaml.org#2401] <https://github.com/ocaml/ocaml.org/pull/2401>

[ocaml/ocaml.org#2402] <https://github.com/ocaml/ocaml.org/pull/2402>

[ocaml/ocaml.org#2403] <https://github.com/ocaml/ocaml.org/pull/2403>

[ocaml/ocaml.org#2404] <https://github.com/ocaml/ocaml.org/pull/2404>

[ocaml/ocaml.org#2405] <https://github.com/ocaml/ocaml.org/pull/2405>

[ocaml/ocaml.org#2406] <https://github.com/ocaml/ocaml.org/pull/2406>

[ocaml/ocaml.org#2407] <https://github.com/ocaml/ocaml.org/pull/2407>

[ocaml/ocaml.org#2408] <https://github.com/ocaml/ocaml.org/pull/2408>

[ocaml/ocaml.org#2409] <https://github.com/ocaml/ocaml.org/pull/2409>

[ocaml/ocaml.org#2415] <https://github.com/ocaml/ocaml.org/pull/2415>

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

[ocaml/ocaml.org#2445] <https://github.com/ocaml/ocaml.org/pull/2445>

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


Community & Marketing Pages Rework
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  This month, we made some progress towards adding videos from the OCaml
  community (e.g., from YouTube and watch.ocaml.org) to the OCaml
  Planet.

  Since the size of the OCaml Planet RSS feed grew so large that
  automation tools (`dlvr.it') could no longer process it, we reduced
  the timeframe for posts to show up in the RSS feed to the last 90
  days.

  Contributor [@ishar19] opened a pull request to add an RSS feed for
  the Community/Events page. This will allow posting new events to
  various social media automatically and allow you to subscribe to the
  Events RSS feed with a RSS reader of your choice.

  We have [UI designs for the reworked and new pages of the community
  section] and we are opening small issues for contributors to
  help. :orange_heart:

  *Relevant PRs and Activities:*
  • The OCaml Planet
    • PR: Community videos scraping and list page [ocaml/ocaml.org#2441]
      by [@cuihtlauac]
    • PR: Scrape watch.ocaml.org as an RSS feed [ocaml/ocaml.org#2428]
      by [@cuihtlauac]
    • PR: No longer feature posts on the OCaml Planet
      [ocaml/ocaml.org#2430] by [@cuihtlauac]
    • PR: Set the cutoff date for the OCaml Planet RSS feed to 90 days
      [ocaml/ocaml.org#2416] by [@sabine]
    • PR: Filter OCaml Planet Blog posts for "OCaml" keyword
      [ocaml/ocaml.org#2443] by [@cuihtlauac]
    • PR: add redirect for /blog to /ocaml-planet [ocaml/ocaml.org#2450]
      by [@sabine]
    • PR: Dedupe RSS feed creation logic [ocaml/ocaml.org#2461] by
      [@cuihtlauac]
  • Events page
    • PR: Feat/events rss feed [ocaml/ocaml.org#2437] by [@ishar19]


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

[UI designs for the reworked and new pages of the community section]
<https://www.figma.com/file/7hmoWkQP9PgLTfZCqiZMWa/OCaml-Community-Pages?type=design&node-id=637%3A4539&mode=design&t=RpQlGvOpeg1a93AZ-1>

[ocaml/ocaml.org#2441] <https://github.com/ocaml/ocaml.org/pull/2441>

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

[ocaml/ocaml.org#2428] <https://github.com/ocaml/ocaml.org/pull/2428>

[ocaml/ocaml.org#2430] <https://github.com/ocaml/ocaml.org/pull/2430>

[ocaml/ocaml.org#2416] <https://github.com/ocaml/ocaml.org/pull/2416>

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

[ocaml/ocaml.org#2443] <https://github.com/ocaml/ocaml.org/pull/2443>

[ocaml/ocaml.org#2450] <https://github.com/ocaml/ocaml.org/pull/2450>

[ocaml/ocaml.org#2461] <https://github.com/ocaml/ocaml.org/pull/2461>

[ocaml/ocaml.org#2437] <https://github.com/ocaml/ocaml.org/pull/2437>


Outreachy Internship on Interactive Exercises
─────────────────────────────────────────────

  On May 27, [Divyanka Chaudhari] started working with the team, as an
  Outreachy intern. She's implementing support for running the exercises
  as a stand-alone project, either in GitHub Codespace, in `repl.it',
  using Jupyter or LearnOcaml.

  *Relevant PRs and Activities:*
  • PR: Fix 007 answer folder not running test cases
    [ocaml/ocaml.org#2458] by [@divyankachaudhari]

  ## General Improvements and Data Additions

  *Notable Changes:*
  • We restructured the main navigation to have a "Tools" section that
    holds the OCaml Platform page and the OCaml compiler releases
    page. This should make the OCaml Platform page easier to find.
  • The Changelog can now be found under "News", from the main
    navigation. You can also find the OCaml Planet and the Newsletters
    in this new section.
  • The OCaml Language Manual is now served from OCaml.org, instead of
    v2.ocaml.org.
  • We added some more links to learning resources to the Resources page
    at <https://ocaml.org/resources>.
  • Some documentation updates on "Is OCaml Web Yet?", "Is OCaml GUI
    Yet?", the ThreadSanitizer tutorial, and the "Functors" tutorial.

  *Relevant PRs and Activities:*
  • Features
    • PR: Introduce a tools section for platform page, releases page,
      and a news section for changelog, OCaml Planet and Newsletters
      [ocaml/ocaml.org#2410] by [@sabine]
  • Migration of the Language Manual from v2.ocaml.org to OCaml.org
    • PR: fix: language manual redirect, remove unnecessary append of
      index.html [ocaml/ocaml.org#2470] by [@sabine]
    • PR: Fix: redirect to downloadable manual files
      [ocaml/ocaml.org#2439] by [@sabine]
    • PR: Simplify and extend /releases/ redirects from legacy
      v2.ocaml.org URLs [ocaml/ocaml.org#2448] by [@cuihtlauac]
    • PR: Fix #2465 [ocaml/ocaml.org#2468] by [@cuihtlauac]
    • PR: Fix more redirect [ocaml/ocaml.org#2471] by [@cuihtlauac]
  • Data
    • PR: (data) add some learning resources [ocaml/ocaml.org#2474] by
      [@sabine]
    • PR: Add University of Bologna as academic institution
      [ocaml/ocaml.org#2394] by [@boozec]
    • PR: (data) Update ocaml.org community meeting zoom link
      [ocaml/ocaml.org#2413] by [@sabine]
    • PR: (data) jobs: add a XenServer position again
      [ocaml/ocaml.org#2414] by [@edwintorok]
    • PR: (data) add ocaml.org newsletter April 2024
      [ocaml/ocaml.org#2417] by [@sabine]
    • PR: OCaml 5.2.0 announce and release page [ocaml/ocaml.org#2421]
      by [@Octachron]
    • PR: Update OCamlPro's logo [ocaml/ocaml.org#2436] by [@hra687261]
    • PR: Changelog entry for OCaml 5.2.0~rc1 [ocaml/ocaml.org#2391] by
      [@Octachron]
    • PR: changelog: add Dune 3.15.1 and 3.15.2 [ocaml/ocaml.org#2389]
      by [@emillon]
    • PR: Add changelog entry for Merlin 5.0 [ocaml/ocaml.org#2472] by
      [@pitag-ha]
  • Bugfixes
    • PR: fix dark style of package version pages [ocaml/ocaml.org#2438]
      by [@FrugBatt]
    • GitHub actions CI broke due to an OpenSSL issue on MacOS
      • PR: Update debug-ci.yml [ocaml/ocaml.org#2397] by [@cuihtlauac]
      • PR: Update debug-ci.yml [ocaml/ocaml.org#2398] by [@cuihtlauac]
      • PR: Do brew update before installing openssl@3 to fix macos CI
        [ocaml/ocaml.org#2420] by [@sabine]
      • PR: (ci) Restrict openssl on macos to 3.2 to see if that fixes
        CI [ocaml/ocaml.org#2390] by [@sabine]
  • Documentation
    • PR: Explain how to avoid cyclic abbreviation error with functor
      application [ocaml/ocaml.org#2457] by [@cuihtlauac]
    • PR: Update tutorial “Transitioning to Multicore with
      ThreadSanitizer” [ocaml/ocaml.org#2459] by [@OlivierNicole]
    • PR: (docs) web.md: jsonchema->atd exists [ocaml/ocaml.org#2454] by
      [@Khady]
    • PR: Update is_ocaml_yet/gui.md: Plotting [ocaml/ocaml.org#2452] by
      [@lukstafi]


[Divyanka Chaudhari] <https://github.com/divyankachaudhari>

[ocaml/ocaml.org#2458] <https://github.com/ocaml/ocaml.org/pull/2458>

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

[ocaml/ocaml.org#2410] <https://github.com/ocaml/ocaml.org/pull/2410>

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

[ocaml/ocaml.org#2470] <https://github.com/ocaml/ocaml.org/pull/2470>

[ocaml/ocaml.org#2439] <https://github.com/ocaml/ocaml.org/pull/2439>

[ocaml/ocaml.org#2448] <https://github.com/ocaml/ocaml.org/pull/2448>

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

[ocaml/ocaml.org#2468] <https://github.com/ocaml/ocaml.org/pull/2468>

[ocaml/ocaml.org#2471] <https://github.com/ocaml/ocaml.org/pull/2471>

[ocaml/ocaml.org#2474] <https://github.com/ocaml/ocaml.org/pull/2474>

[ocaml/ocaml.org#2394] <https://github.com/ocaml/ocaml.org/pull/2394>

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

[ocaml/ocaml.org#2413] <https://github.com/ocaml/ocaml.org/pull/2413>

[ocaml/ocaml.org#2414] <https://github.com/ocaml/ocaml.org/pull/2414>

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

[ocaml/ocaml.org#2417] <https://github.com/ocaml/ocaml.org/pull/2417>

[ocaml/ocaml.org#2421] <https://github.com/ocaml/ocaml.org/pull/2421>

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

[ocaml/ocaml.org#2436] <https://github.com/ocaml/ocaml.org/pull/2436>

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

[ocaml/ocaml.org#2391] <https://github.com/ocaml/ocaml.org/pull/2391>

[ocaml/ocaml.org#2389] <https://github.com/ocaml/ocaml.org/pull/2389>

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

[ocaml/ocaml.org#2472] <https://github.com/ocaml/ocaml.org/pull/2472>

[@pitag-ha] <https://github.com/pitag-ha>

[ocaml/ocaml.org#2438] <https://github.com/ocaml/ocaml.org/pull/2438>

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

[ocaml/ocaml.org#2397] <https://github.com/ocaml/ocaml.org/pull/2397>

[ocaml/ocaml.org#2398] <https://github.com/ocaml/ocaml.org/pull/2398>

[ocaml/ocaml.org#2420] <https://github.com/ocaml/ocaml.org/pull/2420>

[ocaml/ocaml.org#2390] <https://github.com/ocaml/ocaml.org/pull/2390>

[ocaml/ocaml.org#2457] <https://github.com/ocaml/ocaml.org/pull/2457>

[ocaml/ocaml.org#2459] <https://github.com/ocaml/ocaml.org/pull/2459>

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

[ocaml/ocaml.org#2454] <https://github.com/ocaml/ocaml.org/pull/2454>

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

[ocaml/ocaml.org#2452] <https://github.com/ocaml/ocaml.org/pull/2452>

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


OCaml Windows Working Group
═══════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/ocaml-windows-working-group/14755/3>


Deep in this thread, Sudha Parimala announced
─────────────────────────────────────────────

  Thanks to everyone who joined the meeting! Please find the notes here:
  <https://docs.google.com/document/d/1tt-g5f441ClvdGJuK8fvO9Eu2YvWMwDF1wbZ2f8-gsI/edit#heading=h.kwwpagbnenby>.

  The meeting time this time wasn't US time-zone friendly. We'll try to
  find a time that works for more people next time.


Registration for Fun OCaml 2024 Opens Shortly
═════════════════════════════════════════════

  Archive:
  <https://discuss.ocaml.org/t/registration-for-fun-ocaml-2024-opens-shortly/14771/1>


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

  Registration for Fun OCaml 2024 will open shortly at 17:00 CEST
  (Central European Summer Time) UTC/GMT +2 hours

  Please put yourself on the waiting list if you don't get a ticket
  immediately, we're doing this in a staggered fashion, unlocking more
  tickets over the next days! 🧡🐫

  <https://fun-ocaml.com>


opam 2.2.0~beta3
════════════════

  Archive: <https://discuss.ocaml.org/t/ann-opam-2-2-0-beta3/14772/1>


Kate announced
──────────────

  We’re once again very excited to announce this third and final beta
  for opam 2.2.0.


What’s new in this beta?
╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  • *opam init on Windows enhancements*: this beta greatly improves the
     `opam init' user experience on Windows, and the number of
     recognised configurations
  • *opam init –cygwin-extra-packages=\<pkgs\>*: a new argument to
     specify additional packages for the internal Cygwin installation
  • *Support of user directories containing spaces*: opam now redirects
     the opam root to `C:\opamroot\opam-xxx' when the opam root contains
     spaces on Windows
  • *UTF-8 paged –help on Windows* thanks to cmdliner 1.3.0 and some
     additional Windows API calls, all the `opam --help' commands now
     display a paged view by default similar to Unix-like systems.
  • Many *fixes*, *performance* and general *improvements*

  :open_book: You can read our [blog post] for more information about
  these changes and more, and for even more details you can take a look
  at the [release note] or the [changelog].


[blog post] <https://opam.ocaml.org/blog/opam-2-2-0-beta3/>

[release note] <https://github.com/ocaml/opam/releases/tag/2.2.0-beta3>

[changelog] <https://github.com/ocaml/opam/blob/2.2.0-beta3/CHANGES>


Windows issues
╌╌╌╌╌╌╌╌╌╌╌╌╌╌

  Configuration of Windows is tricky, so please don’t be too
  disheartened if things don’t work instantly. If something doesn’t work
  first time, [please do report it], even if you manage to find a way to
  workaround it. If opam didn’t elegantly tell you what was wrong, then
  it’s a bug and we’d love to hear about it, rather than ending up with
  a series of workarounds flying around. It’s no problem at all for us
  to receive a bug report which turns out to be user error - we’d far
  rather that than not hear bugs which are opam’s error! 🙀


[please do report it] <https://github.com/ocaml/opam/issues>


How to upgrade
╌╌╌╌╌╌╌╌╌╌╌╌╌╌

◊ On Windows

  *BEWARE*: the command shown below is *experimental, use caution* and
   please do report any issues that you are experiencing. If you prefer
   to not use our experimental script, feel free to get the Windows
   binary directly from [the Release Page] and put it in your directory
   of choice instead.

  Now that the [Windows support was merged in opam-repository],

  installing opam is as simple as calling the following command from a
  PowerShell terminal:
  ┌────
  │ Invoke-Expression "& { $(Invoke-RestMethod https://raw.githubusercontent.com/kit-ty-kate/opam/windows-installer/shell/install.ps1) }"
  └────

  opening a new terminal, and a simple `opam init' will work
  out-of-the-box.


  [the Release Page]
  <https://github.com/ocaml/opam/releases/tag/2.2.0-beta3>

  [Windows support was merged in opam-repository]
  <https://github.com/ocaml/opam-repository/pull/25861>


◊ On Unix-like systems

  To upgrade, simply run:
  ┌────
  │ bash -c "sh <(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh) --version 2.2.0~beta3"
  └────

  We’re planning for an opam 2.2.0~rc1 release later next week, so
  please do report any issue you encounter on our [bug-tracker].


  [bug-tracker] <https://github.com/ocaml/opam/issues>


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

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

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

  • [Release of Frama-C 29.0 (Copper)]
  • [Secure From the Ground Up: Introducing the FIDES Project Combining
    RISC-V and MirageOS]


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

[Release of Frama-C 29.0 (Copper)]
<https://frama-c.com/fc-versions/copper.html>

[Secure From the Ground Up: Introducing the FIDES Project Combining
RISC-V and MirageOS]
<https://tarides.com/blog/2024-06-05-secure-from-the-ground-up-introducing-the-fides-project-combining-risc-v-and-mirageos>


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

             reply	other threads:[~2024-06-11 15:05 UTC|newest]

Thread overview: 236+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-11 15:04 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-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-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=m2le3bikqj.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