Lwt, the concurrent programming library, has released version 3.1.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.

Changes

Perhaps the greatest single change in this release is the port to Jbuilder by Andrew Ray. See the full changelog for other changes, including additions and bugfixes. Many of these were made by new contributors, so thanks to them – and to all contributors, of course!

A major effort during 3.1.0 was making Lwt easier to work on and contribute to. This is probably familiar to many readers here, as a lot of it took place here on Discourse:

The Lwt easy issues list sees plenty of activity, and has grown considerably since first announced – including the closed issue count! We communicate with contributors. We want to help everyone get started, then move on to the kind of work they really want to do – including to other projects that have nothing to do with Lwt

Future breakage

Lwt 3.1.0 announces two breaking changes to occur in Lwt 4.0.0:

The package lwt.simple-top will be removed. We don’t believe anyone at all is using this.

will be removed. We don’t believe anyone at all is using this. Lwt_chan will be removed. This is rarely used, completely superseded by Lwt_io , and has been deprecated for nine years. Known users have been notified.

There will be an Lwt 3.2.0 release in the coming months, which will announce additional breaking changes for 4.0.0, mostly to packaging.

Lwt 3.1.0 changes the layout of the Lwt installation directory in your OPAM switch. This does not affect the vast majority of users that depend on Lwt using ocamlfind or Jbuilder. We don’t support any other way of depending on Lwt, so we don’t consider this a breaking change. However, if you run a project that directly depends on specific files in the installation directory, and you are seriously affected by 3.1.0, please let us know in this issue.

Happy concurrent programming!