[new release] eio_main, eio_luv, eio_linux and eio (0.6) #22247
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Effect-based direct-style IO mainloop for OCaml
CHANGES:
Changes:
Update to OCaml 5.0.0~beta1 (@anmonteiro @talex5 Update to OCaml 5.0.0~beta1 ocaml-multicore/eio#346).
Add API for seekable read/writes (@nojb Add API for seekable read/writes ocaml-multicore/eio#307).
Add
Flow.write
(@haesbaert Implement Flow.write and write_from ocaml-multicore/eio#318).This provides an optimised alternative to
copy
in the case where you are writing from a buffer.Add
Net.with_tcp_connect
(@bikallem net: add Net.with_tcp_connect ocaml-multicore/eio#302).Convenience function for opening a TCP connection.
Add
Eio.Time.Timeout
(@talex5 Add Eio.Time.Timeout ocaml-multicore/eio#320).Makes it easier to pass timeouts around.
Add
Eio_mock.Clock
(@talex5 Add Eio_mock.Clock ocaml-multicore/eio#328).Control time in tests.
Add
Buf_read.take_while1
andskip_while1
(@bikallem Buf_read: Add take_while1 and skip_while1 ocaml-multicore/eio#309).These fail if no characters match.
Make the type parameter for
Promise.t
covariant (@anmonteiro Make the type parameter for Promise.t covariant ocaml-multicore/eio#300).Move list functions into a dedicated submodule (@raphael-proust Move list functions into a dedicated submodule ocaml-multicore/eio#315).
Direct implementation of
Flow.source_string
(@c-cube direct implementation of Flow.source_string ocaml-multicore/eio#317).Slightly faster.
Bug fixes:
Condition.broadcast
must interlock as well (@haesbaert Condition.broadcast must interlock as well ocaml-multicore/eio#324).Split the reads into no more than 2^32-1 for luv (@haesbaert @talex5 @EduardoRFS Split the reads into no more than 2^32-1 for luv ocaml-multicore/eio#343).
Luv uses a 32 bit int for buffer sizes and wraps if the value passed is too big.
eio_luv: allow
Net.connect
to be cancelled (@talex5 @nojb eio_luv: allow Net.connect to be cancelled ocaml-multicore/eio#311).eio_main: Use dedicated log source (@anmonteiro [eio_main.linux.ml] Use dedicated log source ocaml-multicore/eio#326).
linux_eio: fix kernel version number in log message (@talex5 @nojb linux_eio: fix kernel version number in log message ocaml-multicore/eio#314).
Account for stack differences in the socketpair test (issue Network tests fail on libuv + macOS ocaml-multicore/eio#312) (@haesbaert Account for stack differences in the socketpair test (issue #312) ocaml-multicore/eio#313).
Documentation:
Add Best Practices section to README (@talex5 Add Best Practices section to README ocaml-multicore/eio#299).
Documentation improvements (@talex5 Documentation improvements ocaml-multicore/eio#295 Minor README improvements ocaml-multicore/eio#337).