Lwt 2.7.0
General
- Values of types
'a Lwt.tare now referred to as promises rather than threads (#300). The manual has not yet been updated.
Breaking
- After this release, Lwt will switch to semantic versioning. Future breaking changes will first require deprecation, then a major version number increase (#293).
- Lwt no longer supports OCaml 4.01 (#272).
Lwt_unix.fdatasyncis no longer available on macOS. It was calling an undocumented system call on that system (#285, Jeremy Yallop).
Planned to break in 3.0.0
- APIs in this category have deprecation messages attached. The messages will be displayed if you recompile your code, and can also be seen in #308.
Lwt_engine.libevwill have an argument for selecting the libev back end (#269, #294, Jeremy Yallop).Lwt_io.establish_serverwill be replaced by a version that makes it difficult to leak file descriptors (#258, #260).Lwt_io.shutdown_serverwill evaluate to a promise, which indicates when the close operation completes (#259).Lwt_unix.bindwill evaluate to a promise, sincebindcan block for Unix domain sockets (#296, requested David Sheets).ocamlfindpackageslwt.react,lwt.ssl, andlwt.glibwill be replaced by the newlwt_react,lwt_ssl, andlwt_glib. These are now distributed in new OPAM packages with the same names, separately from OPAM packagelwt(#301).
Additions
Lwt_unix.readvandLwt_unix.writev– zero-copy scatter/gather I/O (#291, #299).?fail_on_errorargument forLwt_log.load_rules(#306, Daniil Baturin).Lwt_log.level_of_string(#306, Daniil Baturin).
Changes
Lwt_stream.of_list,Lwt_stream.of_array,Lwt_stream.of_stringnow immediately push all elements into the created streams (#239, Spiros Eliopoulos).
Deprecations
Lwt_stream.map_exnin favor ofLwt_stream.wrap_exn, which uses OCaml's standardresulttype (#295).
Bugs fixed
- Ungraceful failure if directory handle used after
Lwt_unix.closedir(#292). - Buffer overflow in
Lwt_unix.readdirandLwt_unix.readdir_n(#292). - Unnecessary allocations in
Lwt_unix.readdir_n(#292, found Jeremly Yallop).
Miscellaneous
- Annotate existing deprecations with
[@@ocaml.deprecated ...](5737f5b). - Improvements to the examples (#288, Rich Neswold).
- Documentation fixes, including by Rich Neswold.
- New tests and various minor internal improvements.
- Run tests in CI with all OCaml warnings enabled (dadb926).
- Much cleaner build output.
- Add
scratch/directory for local use by developers.