[new release] eio_main, eio_luv, eio_linux and eio (0.8) - #23208
Closed
talex5 wants to merge 2 commits into
Closed
Conversation
talex5
force-pushed
the
release-eio-v0.8
branch
from
February 1, 2023 12:01
a9147af to
b8080f0
Compare
CHANGES: New features: - Add `Eio.Net.run_server` (@bikallem @talex5 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.BE` and `LE` parsers (@Cjen1 ocaml-multicore/eio#399). Parse numbers in various binary formats. - Add `Eio.Buf_read.uint8` (@talex5 ocaml-multicore/eio#418). Performance: - Make `Eio.Condition` lock-free (@talex5 ocaml-multicore/eio#397 ocaml-multicore/eio#381). In addition to being faster, this allows using conditions in signal handlers. - Make `Eio.Semaphore` lock-free (@talex5 @polytypic ocaml-multicore/eio#398). - Make `Eio.Stream` lock-free when the capacity is zero (@talex5 ocaml-multicore/eio#413 ocaml-multicore/eio#411). - Make `Eio.Promise` lock-free (@talex5 ocaml-multicore/eio#401). Bug fixes: - eio_linux: call `Uring.submit` as needed (@talex5 @bikallem ocaml-multicore/eio#428). Previously, we could fail to submit a job promptly because the SQE queue was full. - Fix luv signals (@haesbaert ocaml-multicore/eio#412). `libuv` automatically retries polling if it gets `EINTR`, without giving OCaml signal handlers a chance to run. - eio_luv: fix some resource leaks (@talex5 @patricoferris ocaml-multicore/eio#421). - eio_luv: fix "unavailable signal" error on Windows (@talex5 ocaml-multicore/eio#420, reported by @nojb). - Fix `Buf_write.BE.uint48` and `LE.uint48` (@adatario ocaml-multicore/eio#418). Documentation: - Add example programs (@talex5 ocaml-multicore/eio#389). - Update network examples to use `run_server` (@talex5 ocaml-multicore/eio#417). - Add a warning to the tutorial about `Fiber.first` (@talex5 ocaml-multicore/eio#394). - Clarify the epoch used for `Eio.Time.now` (@bikallem ocaml-multicore/eio#395). - Describe `secure_random` as an infinite source (@patricoferris ocaml-multicore/eio#426). - Update README for OCaml 5 release (@talex5 ocaml-multicore/eio#384 ocaml-multicore/eio#391 ocaml-multicore/eio#393). Other changes: - Delay setting `SIGPIPE` handler until the `run` function is called (@talex5 ocaml-multicore/eio#420). - Remove debug-level logging (@talex5 ocaml-multicore/eio#403). - eio-luv: improve `process.md` test (@smondet ocaml-multicore/eio#414). - Update to Dune 3 (@talex5 ocaml-multicore/eio#410). - Remove test dependency on Astring (@talex5 ocaml-multicore/eio#402 ocaml-multicore/eio#404). - Simplify cancellation logic (@talex5 ocaml-multicore/eio#396). - time: `Mtime.Spand.to_s` has been deprecated in mtime 2.0.0 (@bikallem ocaml-multicore/eio#385).
talex5
force-pushed
the
release-eio-v0.8
branch
from
February 1, 2023 13:01
b8080f0 to
9c8fc13
Compare
Contributor
Author
|
Contributor
|
If the macos failures are expected, we might want to add Alternatively, we could condition the |
The network tests always fail due to the CI sandboxing the loopback interface.
talex5
force-pushed
the
release-eio-v0.8
branch
from
February 3, 2023 11:21
a035bd5 to
e000c6c
Compare
Contributor
Author
|
OK, I added I also investigated why the Lwt_eio revdep tests failed. I believe this is due to ocsigen/lwt#981, and is not a bug in Eio. |
Contributor
Author
|
I'm going to make another release with work-arounds for some of the build problems. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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).