[Caml-list] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt
2024-08-27T09:02:18Z

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

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:
<https://discuss.ocaml.org/t/ann-dkml-2-1-2-and-opam-2-2-0/15187/1>

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
<https://github.com/ocaml/ocaml/issues/13177>.
• 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
<https://gitlab.com/dkml/distributions/dkml/-/releases/2.1.2>.

Enjoy! And thanks to OCSF for supporting Windows in the last couple of
gap years.

/Bug reports: [GitHub users] or
[[<https://gitlab.com/dkml/distributions/dkml>/-/issues][GitLab
users]]./

[GitHub users] <https://github.com/diskuv/dkml-installer-ocaml/issues>

Outreachy Demo Presentation
═══════════════════════════

Archive:
<https://discuss.ocaml.org/t/outreachy-demo-presentation/15189/1>

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] <https://github.com/NathanReb/ocaml-api-watch>

[diffcessible] <https://github.com/panglesd/diffcessible>

[ocaml-practice-exercises]
<https://github.com/divyankachaudhari/ocaml-practice-exercises>

opam 2.2.1
══════════

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

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] <https://github.com/curl/curl/issues/13845>

[release blog post ] <https://opam.ocaml.org/blog/opam-2-2-1>

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: <https://discuss.ocaml.org/t/ppxlib-dev-meetings/12441/30>

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]
<https://github.com/ocaml-ppx/ppxlib/wiki/dev-meeting-2024-08-20>

[this PR] <https://github.com/ocaml-ppx/ppxlib/pull/517>

First release of corosync
═════════════════════════

Archive:
<https://discuss.ocaml.org/t/ann-first-release-of-corosync/15199/1>

Vincnet Liu announced
─────────────────────

Aug 2024 - I am happy to announce the release of
<https://opam.ocaml.org/packages/corosync/>, 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 <https://github.com/Vincent-lau/ocaml-corosync>,
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] <https://ocaml.org/blog/>

[MirageVPN and OpenVPN]
<https://blog.robur.coop/articles/2024-08-21-OpenVPN-and-MirageVPN.html>

[How TSan Makes OCaml Better: Data Races Caught and Fixed]
<https://tarides.com/blog/2024-08-21-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] <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: 21646 bytes --]