Hello Here is the latest OCaml Weekly News, for the week of August 20 to 27, 2024. Table of Contents ───────────────── DkML 2.1.2 and opam 2.2.0 Outreachy Demo Presentation opam 2.2.1 Ppxlib dev meetings First release of corosync Other OCaml News Old CWN DkML 2.1.2 and opam 2.2.0 ═════════════════════════ Archive: jbeckford announced ─────────────────── The major focus of DkML 2.1.2 is shipping it with opam 2.2 and having /some/ coexistence between DkML and opam 2.2 on Windows. You can skip this post if you don't develop on Windows. TLDR: Upgrade with `winget upgrade dkml'. Use `opam-real' to use pure opam 2.2 but only *after* installing Visual Studio 2022 (confer: release notes); example: `opam-real switch create 5.2.0+msvc'. Use `dk Ml.Switch init' to create DkML 4.14.2 switch. DkML has better MSVC package support today, while pure opam 2.2 has latest OCaml 5 and is the standard going forward; now you choose both without compromise. Major changes: • Uses opam 2.2.0. You can directly use unmodified opam 2.2 with `opam-real switch create 5.2.0+msvc'. Or continue to use `dk Ml.Switch init' (or the deprecated `dkml init') to create a DkML 4.14.2 switch which supports more native MSVC Windows packages (for now) but does not have the latest and experimental OCaml language features. • Support Windows SDK 11 (10.0.22621.0) and VC 17.9 and 17.10 (14.39/4x) added to allowed list. This makes it easier to coexist with opam 2.2 which requires Visual Studio 2022, and supports latest GitLab CI with its preinstallation of Visual Studio 2022. • The ocaml/opam-repository tag was advanced to Aug 15, 2024. • You can continue to use `dkml.exe' and `with-dkml.exe' but both are deprecated. The new (unified) executable is `dk.exe'. See "Deprecated Commands" in the release notes. • Once every two weeks DkML news about new versions, errata, uninstalling, etc. will be shown on a webpage. It is triggered from the now deprecated `dkml init', the replacement `dk Ml.Switch init' and the `with-dkml' proxy commands, and can be disabled with `dk Ml.News disable'. In particular, use `dk Ml.News' to show the news if you are experiencing problems with DkML. • The patches to the OCaml compiler are now dual-licensed with OCaml's LGPL 2.1 exception and Apache 2.0. All other source (especially the build scripts) for the DkML compiler is licensed solely with Apache 2.0. This is a follow-up to . • The uninstaller/upgrader stops `opam', `dune' and other OCaml processes since, on Windows, in-use executables can't be deleted or updated. This feature is not foolproof yet. • ull release notes are at . Enjoy! And thanks to OCSF for supporting Windows in the last couple of gap years. /Bug reports: [GitHub users] or [[/-/issues][GitLab users]]./ [GitHub users] Outreachy Demo Presentation ═══════════════════════════ Archive: Patrick Ferris announced ──────────────────────── It is my pleasure to announce that next Friday [date=2024-08-30 time=13:00:00 timezone="Europe/London"] we will host the Outreachy Demo presentation. We invite all of the OCaml community and beyond to join us in celebrating the hard work of the community's three interns who have been working on: • [ocaml-api-watch]: _Libraries and tools to keep watch on you OCaml lib's API changes_ • [diffcessible]: _a terminal based diff viewer with an emphasis on being accessible_ • [ocaml-practice-exercises]: _Practice exercises for learning OCaml supporting GitHub Codespaces, Replit, and locally with Jupyter Notebook or directly on your machine._ We'll post the meeting link closer to the time. Hopefully see you there! :camel: [ocaml-api-watch] [diffcessible] [ocaml-practice-exercises] opam 2.2.1 ══════════ Archive: R. Boujbel announced ──────────────────── We are pleased to announce the release of opam 2.2.1. We've fixed a couple of regressions and would like to encourage users of opam 2.2 to upgrade: • Fix a regression in `opam install --deps-only' where the direct dependencies were not set as root packages • Fix a regression when fetching git packages where the resulting git repository could lead to unexpected outputs of git commands, by disabling shallow clone by default except when fetching an opam repositories • Mitigate [curl/curl#13845] by falling back from `--write-out' to `--fail' if exit code 43 is returned by curl. In particular, this fixes `opam init' when run from cmd/PowerShell on Windows 11 23H2 You’ll find more information in the [release blog post ]. To upgrade, simply run for Unix systems ┌──── │ bash -c "sh <(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh) --version 2.2.1" └──── from PowerShell for Windows systems ┌──── │ Invoke-Expression "& { $(Invoke-RestMethod https://raw.githubusercontent.com/ocaml/opam/master/shell/install.ps1) }" └──── [curl/curl#13845] [release blog post ] David Allsopp then added ──────────────────────── Windows 11 users are strongly encouraged to upgrade to opam 2.2.1 for the mitigation for curl 8.8.0. opam 2.2.1 is also available via `winget', with `winget upgrade OCaml.opam'. The `OCaml.opam' winget package downloads the opam binary from GitHub releases page (thanks to @prometheansacrifice, for contributing the original package!), so installing via winget is functionally equivalent to using our `install.ps1' script. Ppxlib dev meetings ═══════════════════ Archive: Patrick Ferris announced ──────────────────────── This week's [meeting notes are available online]. Here's a brief TL;DR of some of the main points of discussion. • *5.2 AST bump progress* is waiting for patches to as many ppxes as possible and for fixes to the migration bug(s) (see next bullet point). If ppx authors wish to try the new ppxlib they can add an opam-overlay which also contains patches to a few existing ppxes: ┌──── │ $ opam repo add git+https://github.com/patricoferris/opam-ppxlib-repository.git └──── • Nathan has worked on *a better AST printer* inspired by the `ppx_tools' printer and the existing printing functionality of ppxlib. See [this PR] for more details. This should help better *debug AST migration bugs*. It makes good use of the AST lift class. • With breakages happening in `Ast_helper' and `Ast_builder' it became unclear why `Ast_helper' exists at all. There's a move to *deprecate `Ast_helper' and promote the use of `Ast_builder' instead*. This should help reduce maintenance costs and API breakages. • We need to *consolidate our documentation better*. There should be a focus on moving as much documentation to the `mld' and `mli' files as possible. Happy ppxing :camel: ! [meeting notes are available online] [this PR] First release of corosync ═════════════════════════ Archive: Vincnet Liu announced ───────────────────── Aug 2024 - I am happy to announce the release of , a binding to libcorosync. It is not (yet) a complete binding to all the APIs of libcorosync, but the bindings to the following libraries are implemented: 1. libcmap (in memory stats and config database) 2. libquorum and libvotequorum (query of quorum states) 3. libcfg (config reload, etc) 4. libcpg (closed process group, corosync's model of a cluster) This project lives on , and feel free to contact me if you have any questions! Other OCaml News ════════════════ >From the ocaml.org blog ─────────────────────── Here are links from many OCaml blogs aggregated at [the ocaml.org blog]. • [MirageVPN and OpenVPN] • [How TSan Makes OCaml Better: Data Races Caught and Fixed] [the ocaml.org blog] [MirageVPN and OpenVPN] [How TSan Makes OCaml Better: Data Races Caught and Fixed] 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] [the archive] [RSS feed of the archives] [caml-list] [Alan Schmitt]