Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt <[email protected]>
Newsgroups gmane.comp.lang.caml.inria
Message-ID <[email protected]>
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:[email protected]>

[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/>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.