[new release] eio (5 packages) (0.11) #24099
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 API for OCaml
CHANGES:
New features / API changes:
Extend
Eio.Condition
API (@talex5 Extend Condition API ocaml-multicore/eio#563).loop_no_mutex
is a simpler and more efficient way to way for a condition.register_immediate
allows integration with other IO libraries.Expose
Eio.Stdenv.backend_id
(@bord-o Expose eio backend in posix, windows, and linux backends ocaml-multicore/eio#560, reviewed by @talex5).Useful in tests to report which backend is being used.
Remove deprecated features (@talex5 Remove deprecated features ocaml-multicore/eio#552, reviewed by @avsm).
These were all already marked as deprecated in v0.10 and are now gone completely:
Fiber.fork_sub
Eio_unix.{FD,Ipaddr,socketpair,getnameinfo}
Eio_linux.{FD,get_fd,get_fd_opt}
Eio_posix.Low_level.Fd
Allow calling
close
more than once (@talex5 Allow calling close more than once ocaml-multicore/eio#547, requested by @anmonteiro, reviewed by @patricoferris, @avsm).Add
close
to socket type (@talex5 Restore close to socket type ocaml-multicore/eio#549).Simplifies the type signatures a bit by avoiding having to mention this everywhere.
Bug fixes:
Fix handling of empty path strings (@talex5 Fix handling of empty path strings ocaml-multicore/eio#569, reported by @SGrondin).
Using "" instead of "." in some places resulted in an error.
eio_posix: fix update to watched FDs on cancel (@talex5 Eio_posix: fix update to watched FDs on cancel ocaml-multicore/eio#574, reported and reviewed by @quernd).
Cancelling the last watcher of an FD didn't remove it from the set passed to
poll
,which could result in constant wake-ups.
eio_posix: fix
pread
at end-of-file (@talex5 eio_posix: fix pread at end-of-file ocaml-multicore/eio#581, reported by @SGrondin).It tried to return 0 instead of
End_of_file
, triggering an assertion.eio_posix: don't reap non-Eio child processes (@talex5 Eio_posix: don't reap non-Eio child processes ocaml-multicore/eio#562).
This allows spawning processes with e.g. the stdlib or Lwt
(but see Get Lwt and Eio to share the SIGCHLD handler ocaml-multicore/lwt_eio#19 for Lwt support).
Preserve backtraces across
Domain_manager.run
(@talex5 Preserve backtraces across Domain_manager.run ocaml-multicore/eio#571).See Domain.join loses backtrace ocaml#12362.
Correct the backend selection for Cygwin (@dra27 Correct the backend selection for Cygwin ocaml-multicore/eio#557).
Use
eio_posix
, noteio_windows
in this case.Other changes:
Simplify dune files with dune 3.9's
build_if
(@talex5 Simplify dune files with dune 3.9's build_if ocaml-multicore/eio#582).Remove
Waiters
fromEio_core
(@talex5 Move Waiters out of Eio_core ocaml-multicore/eio#567).Eio.Switch
no longer uses this so it can finally be removed.Use
Fmt.Dump.signal
to format signals (@talex5, @MisterDA UseFmt.Dump.signal
to format signals ocaml-multicore/eio#543).Documentation: