Lwt, the old concurrent programming workhorse, OCaml’s trusty promise library, has released version 3.2.0! It is now installable from opam.

opam update opam upgrade lwt # or opam install lwt

GitHub ocsigen/lwt OCaml promises and concurrent I/O. Contribute to ocsigen/lwt development by creating an account on GitHub.

The highlights of this release are…

Completely new, and very thorough, documentation for the main module, Lwt . Unfortunately, since the Ocsigen infrastructure appears to be down, the new documentation can only be found at the link in the previous sentence, or by opening lwt.mli .

. Unfortunately, since the Ocsigen infrastructure appears to be down, the new documentation can only be found at the link in the previous sentence, or by opening . A planned change to the semantics of Lwt.bind – see below.

– see below. Ongoing Lwt repository and codebase cleanup. Part of that is announcing some breaking changes for Lwt 4.0.0 – also see below.

Lots of bugfixes, improvements, and cleanups by many contributors. See the full changelog. The easy issues list has been considerably depleted

To break in 4.0.0

It is a rule of the Lwt project, that we announce all breaking changes ahead of time, give gentle transition paths, and at least three months for users to adapt.

In that fashion, Lwt 3.2.0 announces and prepares some breaking changes, which will be committed in March 2018, with the release of Lwt 4.0.0. Full details are in a notice in an Lwt repo, but a summary is included here.

We discovered that the semantics of Lwt.bind , and most other basic Lwt functions, are somewhat broken. So, we will adjust them in 4.0.0. The notice gives a branch you can pin, to run your code now, before 4.0.0, against the future 4.0.0 semantics.

, and most other basic Lwt functions, are somewhat broken. So, we will adjust them in 4.0.0. The notice gives a branch you can pin, to run your code now, before 4.0.0, against the future 4.0.0 semantics. The PPX, Camlp4 extension, and logging library are being factored out into new opam packages lwt_ppx , lwt_camlp4 , and lwt_log . The logging library is also being deprecated, while the Camlp4 extension was already deprecated.

, , and . The logging library is also being deprecated, while the Camlp4 extension was already deprecated. We will remove the >> construct from the PPX.

construct from the PPX. lwt.preemptive has been merged into lwt.unix , and the package name lwt.preemptive will disappear.

If you are the maintainer of an affected package in opam, we have already found you and will cc you in the notice shortly! If you maintain a private codebase, we encourage you to monitor the Lwt announcements issue, which gets one comment for each Lwt release, linking to any planned breaking changes.

Happy concurrent programming!