Skip to content

Releases: ocsigen/lwt

Lwt 2.7.1

08 Apr 17:27
Compare
Choose a tag to compare

Fixes

  • OCaml 4.05 compatibility (Mauricio Fernandez, #322).
  • Give Lwt_unix.file_exists the same semantics as Sys.file_exists, with respect to not raising Unix.Unix_error (Mauricio Fernandez, #316).
  • Improve diagnostics from build scripts (Tim Cuthbertson, #313, #314).

Additions

  • Announce Lwt_result, which was originally released as an experimental module in release 2.6.0 (Simon Cruanes, #320, #247).

Lwt 2.7.0

03 Jan 19:40
Compare
Choose a tag to compare

General

  • Values of types 'a Lwt.t are 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.fdatasync is 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

Additions

Changes

Deprecations

Bugs fixed

  • Ungraceful failure if directory handle used after Lwt_unix.closedir (#292).
  • Buffer overflow in Lwt_unix.readdir and Lwt_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.

Lwt 2.6.0

27 Oct 21:13
Compare
Choose a tag to compare

Additions

Bugs fixed

  • Memory leak in Lwt_unix.readdir_n (#229, diagnosed Thomas Leonard).
  • Memory leak in Lwt.protected (#56, #181, reported @ygrek, Mauricio Fernandez).
  • Lwt_switch.turn_off hook exception handling (995b704).
  • Handling of ENOTCONN when channels passed to handler of Lwt_io.establish_server are closed (95fb431).
  • Duplicate exceptions on implicit close in Lwt_io.with_connection (b1afe45).
  • Deadlock in Lwt_main.at_exit (#48, #114, reported Jérôme Vouillon, Vincent Bernardoff).
  • Performance of Lwt_preemptive.detach (#218, #219, Mauricio Fernandez).
  • Bad hash functions for libev loops (#146, reported Mark Christiaens).
  • Hash of uninitialized data in Lwt_io (#217, reported Jeremy Yallop).
  • Update log sections after Lwt_log.load_rules (#188, reported @rand00).
  • Print three digits for milliseconds in Lwt_log (#264, Fabian Hemmer).
  • Do not truncate Unix job notification ids in C (#277, diagnosed @stijn-devriendt).

Deprecations

  • Lwt_stream.on_termination: bind on Lwt_stream.closed instead.
  • Lwt.make_value, Lwt.make_error: use result's Ok and Error constructors.
  • Lwt_pqueue, Lwt_sequence: use min-heaps and linked lists from another library (#135).
  • Pa_lwt, Pa_lwt_log: use Ppx_lwt.

Miscellaneous

  • Update examples to use PPX syntax instead of Camlp4 (#108, Peter Zotov).
  • Set up Travis, AppVeyor for testing on Linux, OS X, Cygwin, and MinGW. MSVC also planned.
  • Large amount of local documentation fixes (including by Hezekiah Carty, Etienne Millon, Leo Wzukw, Sebastien Mondet).
  • A bunch of new tests.

Lwt 2.5.2

25 Apr 14:10
Compare
Choose a tag to compare
  • Fix compatibility for 4.03 (#227)
  • Various documentation fixes (#199,#200,#210)
  • Improve wildcard detection in the ppx (#198)
  • Fix Lwt_stream: bounded_push#close wake the reader (#201)
  • Fix infinite loop with Lwt_stream.choose (#214)
  • Fix lazyness failure with Lwt_io.common#close (#207)

Lwt 2.5.1

08 Dec 10:33
Compare
Choose a tag to compare
  • Lwt_stream.on_terminate -> Lwt_stream.on_termination
  • Lwt_unix: handle O_CLOEXEC
  • Lwt_log: add OSX syslog path
  • Ppx: Improve lwt%match, improve catchall detection
  • Add Lwt_unix.file_exists and Lwt_unix.Large_file.file_exists
  • Build fixes

Lwt 2.5.0

03 Jul 12:25
Compare
Choose a tag to compare
  • API CHANGE: Functions in Lwt_io that were previously using a
    ~buffer_size argument now takes a ~buffer argument.
  • Accept ?buffer argument in Lwt_ssl.{in,out}_channel_of_descr.
  • Use newer Ssl bigarray read/write functionality to avoid
    allocation in Lwt_ssl.
  • Fix non-reentrant function calls (#136)
  • IPv4 multicast support.
  • Add support for if%lwt in ppx extension.
  • Add Lwt.return_some.
  • Disable log syntax extension by default in ppx.
    Give [-log] as ppx argument to enable it.
  • Nanosecond precision for Lwt_unix.stat.
  • Minor fixes + documentation improvements.

Lwt 2.4.8

11 Mar 09:27
Compare
Choose a tag to compare

Bug fix release:

  • fix compilation under Windows;
  • fix Lwt_engine.on_timer.

Lwt 2.4.3

19 May 07:49
Compare
Choose a tag to compare
  • Fix Lwt_ssl.{in,out}_channel_of_descr: shutdown and close the socket when the channel is closed.

Lwt 2.4.2

20 May 14:19
Compare
Choose a tag to compare
  • Fix the stub for Lwt_unix.readdir.
  • Change the default method for Lwt_glib.install (use the glib main loop by default: more portable).
  • Ignore invalid file descriptors returned by glib (like the emulation of select in glib does).
  • Use environment variables in discover.ml:
    • Use LIBRARY_PATH and C_INCLUDE_PATH for searching headers.
    • Allow to pass flags for a library in <LIB>_CLFAGS and <LIB>_LIBS.
  • Add Lwt_unix.on_signal_full.

Lwt 2.4.1

20 May 14:20
Compare
Choose a tag to compare
  • Add Lwt_stream.on_terminate.
  • Fix Lwt_gc.
  • Fix stubs for get_credentials on *BSD.