[new release] eio_main, eio_luv, eio_linux and eio (0.8) #23208
Closed
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:
New features:
Add
Eio.Net.run_server(@bikallem @talex5 net: add run_server to run eio servers ocaml-multicore/eio#408).Runs an accept loop in one or more domains, with cancellation and graceful shutdown,
and an optional maximum number of concurrent connections.
Add
Buf_read.BEandLEparsers (@Cjen1 Add Buf_read.BE/LE parsers ocaml-multicore/eio#399).Parse numbers in various binary formats.
Add
Eio.Buf_read.uint8(@talex5 Buf_write: Fix BE.uint48 and LE.uint48. ocaml-multicore/eio#418).Performance:
Make
Eio.Conditionlock-free (@talex5 Make Eio.Condition lock-free ocaml-multicore/eio#397 Make Eio_linux.wakeup signal-safe ocaml-multicore/eio#381).In addition to being faster, this allows using conditions in signal handlers.
Make
Eio.Semaphorelock-free (@talex5 @polytypic Make Eio.Semaphore lock-free ocaml-multicore/eio#398).Make
Eio.Streamlock-free when the capacity is zero (@talex5 Add cancellable lock-free synchronous channel ocaml-multicore/eio#413 Improve stream benchmark ocaml-multicore/eio#411).Make
Eio.Promiselock-free (@talex5 Make Eio.Promise lock-free ocaml-multicore/eio#401).Bug fixes:
eio_linux: call
Uring.submitas needed (@talex5 @bikallem eio_linux: call submit as needed ocaml-multicore/eio#428).Previously, we could fail to submit a job promptly because the SQE queue was full.
Fix luv signals (@haesbaert Fix luv signals (issue #400) ocaml-multicore/eio#412).
libuvautomatically retries polling if it getsEINTR, without giving OCaml signal handlers a chance to run.eio_luv: fix some resource leaks (@talex5 @patricoferris eio_luv: fix some resource leaks ocaml-multicore/eio#421).
eio_luv: fix "unavailable signal" error on Windows (@talex5 Windows: fix "unavailable signal" error ocaml-multicore/eio#420, reported by @nojb).
Fix
Buf_write.BE.uint48andLE.uint48(@adatario Buf_write: Fix BE.uint48 and LE.uint48. ocaml-multicore/eio#418).Documentation:
Add example programs (@talex5 Documentation improvements ocaml-multicore/eio#389).
Update network examples to use
run_server(@talex5 Update network examples to use run_server ocaml-multicore/eio#417).Add a warning to the tutorial about
Fiber.first(@talex5 Add a warning to the tutorial about Fiber.first ocaml-multicore/eio#394).Clarify the epoch used for
Eio.Time.now(@bikallem time: clarify Eio.Time.now is UTC ocaml-multicore/eio#395).Describe
secure_randomas an infinite source (@patricoferris Describe secure_random as an infinite source ocaml-multicore/eio#426).Update README for OCaml 5 release (@talex5 Update README for OCaml 5.0.0~rc1 ocaml-multicore/eio#384 Update README for OCaml 5 release ocaml-multicore/eio#391 Simply Dockerfile now OCaml 5 is out ocaml-multicore/eio#393).
Other changes:
Delay setting
SIGPIPEhandler until therunfunction is called (@talex5 Windows: fix "unavailable signal" error ocaml-multicore/eio#420).Remove debug-level logging (@talex5 Remove debug-level logging ocaml-multicore/eio#403).
eio-luv: improve
process.mdtest (@smondet eio-luv: improveprocess.mdtest ocaml-multicore/eio#414).Update to Dune 3 (@talex5 Update to Dune 3 ocaml-multicore/eio#410).
Remove test dependency on Astring (@talex5 Remove test dependency on Astring ocaml-multicore/eio#402 Fix off-by-one in fuzz test ocaml-multicore/eio#404).
Simplify cancellation logic (@talex5 Simplify cancellation logic ocaml-multicore/eio#396).
time:
Mtime.Spand.to_shas been deprecated in mtime 2.0.0 (@bikallem time: Mtime.Spand.to_s has been deprecated in mtime 2.0.0 ocaml-multicore/eio#385).