We are pleased to announce release 3.3.0 of Lwt, the promise and concurrent I/O library. Lwt_ppx 1.1.0 is released simultaneously.
The main highlight is that proper stack trace support is restored in the PPX (thanks Gabe Levi!). Stack traces now look like this:
Raised at file "pervasives.ml", line 32, characters 17-33
Called from file "test.ml" (inlined), line 1, characters 14-29
Called from file "test.ml" (inlined), line 6, characters 23-39
Called from file "test.ml", line 13, characters 13-31
Called from file "src/core/lwt.ml", line 1950, characters 23-26
Re-raised at file "test.ml", line 8, characters 2-117
Re-raised at file "test.ml", line 25, characters 0-70
For a couple years, they would just stop at the src/core/lwt.ml
entry (argh!), even though, in this case, Pervasives.failwith
was called at test.ml
line 1.
There are several other important fixes and improvements. From the changelog:
Bugs fixed
- Restore backtrace support (#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, @jsthomas).Additions
Miscellaneous
Many thanks to all the contributors!