CHANGES:
API changes:
-
Net.accept_sub
is deprecated in favour ofaccept_fork
(@talex5 #240).
Fiber.fork_on_accept
, which it used internally, has been removed. -
Allow short writes in
Read_source_buffer
(@talex5 #239).
The reader is no longer required to consume all the data in one go.
Also, addLinux_eio.Low_level.writev_single
to expose this behaviour directly. -
Eio.Unix_perm
is nowEio.Dir.Unix_perm
.
New features:
-
Add
Eio.Mutex
(@TheLortex @talex5 #223). -
Add
Eio.Buf_write
(@talex5 #235).
This is a buffered writer for Eio sinks, based on Faraday. -
Add
Eio_mock
library for testing (@talex5 #228).
At the moment it has mock flows and networks. -
Add
Eio_mock.Backend
(@talex5 #237 #238).
Allows running tests without needing a dependency on eio_main.
Also, as it is single-threaded, it can detect deadlocks in test code instead of just hanging. -
Add
Buf_read.{of_buffer, of_string, parse_string{,_exn}, return}
(@talex5 #225). -
Add
Eio.Dir.read_dir
(@patricoferris @talex5 #207 #218 #219)
Performance:
-
Add
Buf_read
benchmark and optimise it a bit (@talex5 #230). -
Inline
Buf_read.consume
to improve performance (@talex5 #232).
Bug fixes / minor changes:
-
Allow IO to happen even if a fiber keeps yielding (@TheLortex @talex5 #213).
-
Fallback for
traceln
without an effect handler (@talex5 #226).
traceln
now works outside of an event loop too. -
Check for cancellation when creating a non-protected child context (@talex5 #222).
-
eio_linux: handle EINTR when calling
getrandom
(@bikallem #212).