Skip to content

Releases: ocsigen/lwt

Lwt 4.2.0, Lwt_ppx 1.2.2, Lwt_react 1.1.2

25 Mar 02:19
Compare
Choose a tag to compare

Additions

Bugs fixed

Miscellaneous

Lwt 4.1.0, Lwt_ppx 1.2.1

26 Jun 16:41
Compare
Choose a tag to compare

Additions

Bugs fixed

  • Lwt_stream.iter_n: rename ?max_threads argument to ?max_concurrency (#581, Hezekiah Carty).
  • PPX: reject match expressions that have only exception cases (#597, Raphaël Proust).

Miscellaneous

  • Improvements to Lwt_pool docs (#575, Bobby Priambodo).
  • Restore all PPX tests (#590, Jess Smith).

Lwt 4.0.1

13 Apr 11:05
Compare
Choose a tag to compare

Bugs fixed

  • Race condition in worker thread management in Lwt_unix (#569, diagnosed Gabe Levi).
  • Hang in Lwt_unix.read on Windows (#574, #569, 86a6baf, diagnosed Gabe Levi).
  • Docs: note that Lwt_io.open_file for writing truncates the file by default (#570, reported Tóth Róbert).

Lwt 4.0.0, Lwt_ppx 1.2.0, Lwt_react 1.1.1

30 Mar 14:47
Compare
Choose a tag to compare

Breaking

These changes were announced in Lwt 3.1.0 and Lwt 3.2.0. See #453 about smooth upgrade paths.

  • Delete package lwt.ppx. The PPX syntax is in package lwt_ppx since Lwt 3.2.0 (#338).
  • Remove >> syntax from the PPX (#495).
  • Delete modules Lwt_log, Lwt_daemon, Lwt_log_core, and package lwt.log. These are in package lwt_log since Lwt 3.2.0, but it is recommended to use Logs_lwt from the logs library instead (#484, initiated Hannes Mehnert).
  • Delete package lwt.preemptive. It is an alias for lwt.unix since Lwt 3.2.0 (#487).
  • Delete package lwt.syntax. The Camlp4 syntax is in package lwt_camlp4 since Lwt 3.2.0 (#370).
  • Delete module Lwt_chan, a predecessor of Lwt_io (#441).
  • Delete package lwt.simple-top, a predecessor of utop (#371).
  • Make resolvers (Lwt.u) contravariant (#458).

Planned to break in 5.0.0

  • Lwt.pick will raise Invalid_argument on the empty list, instead of returning a forever-pending promise. Also applies to Lwt.choose, Lwt.npick, Lwt.nchoose, and Lwt.nchoose_split (#562, Tim Reinke, prompted Hezekiah Carty).
  • Remove translation of [%lwt ...] to Lwt.catch from the PPX (#527).
  • Remove -no-debug option from the PPX (#528).
  • Remove Lwt_log support from the PPX (#520).

Bugs fixed

Miscellaneous

  • Documentation improvements (#561, Jason Evans).

Lwt 3.3.0, Lwt_ppx 1.1.0

07 Mar 19:51
Compare
Choose a tag to compare

Bugs fixed

  • Restore backtrace support in the PPX (#554, #556, Gabe Levi).
  • Serious logic error that could cause Lwt to hang or crash (#549, reported @koen-struyve).
  • All Lwt_list functions are now tail-recursive (#538, Joseph Thomas).

Additions

  • Support ;%lwt syntax in the PPX (#307, Hezekiah Carty).
  • Lwt_stream.iter_n (#312, Hezekiah Carty).

Miscellaneous

Lwt_ppx 1.0.1, Lwt 3.2.1

11 Jan 16:44
Compare
Choose a tag to compare

Lwt 3.2.1 is released because it still packages lwt.ppx, a deprecated copy of package lwt_ppx, and the two packages should be kept in sync.

Deprecations

Fixes

  • Clean up PPX -help usage message output (#525, Zan Doye).

Miscellaneous

  • More thorough testing (#512, #535, Joseph Thomas).
  • Clarification of the C binding (#521, @cedlemo).

Lwt 3.2.0

19 Dec 21:54
Compare
Choose a tag to compare

Additions

Bugs fixed

Planned to break in 4.0.0

See #453 for details and instructions about planned breakage in Lwt 4.0.0.

  • The semantics of Lwt will be adjusted for better exception and stack safety (#500).
  • The PPX will be factored out into its own opam package, lwt_ppx. This package is installable from opam now, as of Lwt 3.2.0 (#338).
  • Similarly, the deprecated Camlp4 syntax will be factored out into lwt_camlp4, which is installable from opam now (#370).
  • Modules Lwt_log, Lwt_log_core, Lwt_log_rules, and Lwt_daemon are being deprecated and factored out into opam package lwt_log, also installable from opam now. Use the logs library for logging, in particular module Logs_lwt. Direct daemonization is deprecated on most platforms (#484, Hannes Mehnert).
  • The >> construct from the PPX will be deleted (#471, Raphaël Proust).
  • Package lwt.preemptive is being merged into lwt.unix. In 3.2.0, lwt.preemptive becomes an alias for lwt.unix, and the package name lwt.preemptive will be deleted in 4.0.0 (#487).

Deprecations

Miscellaneous

  • Replace references to Camlp4 in the manual with the PPX (#457, Bobby Priambodo).
  • More tests for Lwt_pool (#464, Joe Thomas).
  • Expect tests for the PPX (#474, Fabian Hemmer).

Lwt_ssl 1.1.1

11 Oct 22:26
Compare
Choose a tag to compare
  • Compatibility with -safe-string, and thus OCaml 4.06. Lwt_ssl.read and Lwt_ssl.write now take a buffer of type bytes as argument, rather than a buffer of type string (#479).

Lwt 3.1.0

19 Jul 22:26
Compare
Choose a tag to compare

Additions

Planned to break in 4.0.0

Fixes

Miscellaneous

  • The Lwt core, lwt.ml, has been thoroughly refactored and commented (#354, reviewed Gabriel Radanne, Edwin Török, Raphaël Proust, Jan Doms, Fabian Hemmer, Sebastien Mondet, Simon Cruanes, Anil Madhavapeddy, Pierre Chambart, and many others).
  • Lots of tests for most of the Lwt core (#339, #389, #392, #440, #448, #450, Joseph Thomas, Ryan Slade).
  • Documentation fixes (including by Joseph Thomas, Raphaël Proust, Richard Degenne, Stavros Polymenis).
  • Contributing documentation (#379).
  • Massively adjust whitespace for legibility (#400, #409, #416, Richard Degenne).
  • Improvements to CI (Etienne Millon, Raphael Rafatpanah, Zack Coker, Yotam Barnoy).
  • The additional packages lwt_ssl, lwt_react, lwt_glib get new minor releases, the change being new Jbuilder build systems (#374, Andrew Ray).

Lwt 3.0.0

11 Apr 04:51
Compare
Choose a tag to compare

Breaking

  • These changes were originally announced in release 2.7.0 (#308).
  • Lwt_engine.libev now has an optional argument for selecting the libev back end (#269, #294, Jeremy Yallop).
  • Lwt_io.establish_server has been changed to make it more difficult to leak file descriptors (#258, #260).
  • Lwt_io.shutdown_server now evaluates to a promise, which completes when the listening socket's close(2) operation completes (#259).
  • Lwt_unix.bind now evaluates to a promise, because the bind(2) system call can block for Unix domain sockets (#296, requested David Sheets).
  • ocamlfind packages lwt.react, lwt.ssl, lwt.glib are replaced by lwt_react, lwt_ssl, lwt_glib. These have been separate OPAM packages, under those names, since 2.7.0 (#301).