Skip to content

Commit a9147af

Browse files
committed
[new release] eio_main, eio_luv, eio_linux and eio (0.8)
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).
1 parent 3644be3 commit a9147af

File tree

4 files changed

+180
-0
lines changed
  • packages
    • eio_linux/eio_linux.0.8
    • eio_luv/eio_luv.0.8
    • eio_main/eio_main.0.8
    • eio/eio.0.8

4 files changed

+180
-0
lines changed

packages/eio/eio.0.8/opam

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
opam-version: "2.0"
2+
synopsis: "Effect-based direct-style IO API for OCaml"
3+
description: "An effect-based IO API for multicore OCaml with fibers."
4+
maintainer: ["[email protected]"]
5+
authors: ["Anil Madhavapeddy" "Thomas Leonard"]
6+
license: "ISC"
7+
homepage: "https://github.com/ocaml-multicore/eio"
8+
doc: "https://ocaml-multicore.github.io/eio/"
9+
bug-reports: "https://github.com/ocaml-multicore/eio/issues"
10+
depends: [
11+
"dune" {>= "3.0"}
12+
"ocaml" {>= "5.0.0"}
13+
"bigstringaf" {>= "0.9.0"}
14+
"cstruct" {>= "6.0.1"}
15+
"lwt-dllist"
16+
"optint" {>= "0.1.0"}
17+
"psq" {>= "0.2.0"}
18+
"fmt" {>= "0.8.9"}
19+
"hmap" {>= "0.8.1"}
20+
"crowbar" {>= "0.2" & with-test}
21+
"mtime" {>= "2.0.0"}
22+
"alcotest" {>= "1.4.0" & with-test}
23+
"dscheck" {>= "0.1.0" & with-test}
24+
"odoc" {with-doc}
25+
]
26+
conflicts: [
27+
"ocaml-base-compiler" {< "5.0.0~beta1"}
28+
"ocaml-variants" {< "5.0.0~beta1"}
29+
"ocaml-system" {< "5.0.0~beta1"}
30+
]
31+
build: [
32+
["dune" "subst"] {dev}
33+
[
34+
"dune"
35+
"build"
36+
"-p"
37+
name
38+
"-j"
39+
jobs
40+
"@install"
41+
"@runtest" {with-test}
42+
"@doc" {with-doc}
43+
]
44+
]
45+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
46+
url {
47+
src:
48+
"https://github.com/ocaml-multicore/eio/releases/download/v0.8/eio-0.8.tbz"
49+
checksum: [
50+
"sha256=55dcf4480db4d4b96670602a5827529df6a413d8fe111dd35eb5a985d3e41297"
51+
"sha512=ea7166cb8e49c687c0d7c9e10c099726be1cfe230d5d2b749bba95bb2dd44441aba6046913f02ef9f25f90a97db53313d72058a089913b709b3af27efa7c200c"
52+
]
53+
}
54+
x-commit-hash: "528f6a7b6d1d81b0c44a81ca2b10dbeebb190e59"

packages/eio_linux/eio_linux.0.8/opam

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
opam-version: "2.0"
2+
synopsis: "Eio implementation for Linux using io-uring"
3+
description: "An eio implementation for Linux using io-uring."
4+
maintainer: ["[email protected]"]
5+
authors: ["Anil Madhavapeddy" "Thomas Leonard"]
6+
license: "ISC"
7+
homepage: "https://github.com/ocaml-multicore/eio"
8+
doc: "https://ocaml-multicore.github.io/eio/"
9+
bug-reports: "https://github.com/ocaml-multicore/eio/issues"
10+
depends: [
11+
"dune" {>= "3.0"}
12+
"alcotest" {>= "1.4.0" & with-test}
13+
"eio" {= version}
14+
"mdx" {>= "1.10.0" & with-test}
15+
"logs" {>= "0.7.0"}
16+
"fmt" {>= "0.8.9"}
17+
"cmdliner" {>= "1.1.0" & with-test}
18+
"uring" {>= "0.5"}
19+
"odoc" {with-doc}
20+
]
21+
build: [
22+
["dune" "subst"] {dev}
23+
[
24+
"dune"
25+
"build"
26+
"-p"
27+
name
28+
"-j"
29+
jobs
30+
"@install"
31+
"@runtest" {with-test}
32+
"@doc" {with-doc}
33+
]
34+
]
35+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
36+
url {
37+
src:
38+
"https://github.com/ocaml-multicore/eio/releases/download/v0.8/eio-0.8.tbz"
39+
checksum: [
40+
"sha256=55dcf4480db4d4b96670602a5827529df6a413d8fe111dd35eb5a985d3e41297"
41+
"sha512=ea7166cb8e49c687c0d7c9e10c099726be1cfe230d5d2b749bba95bb2dd44441aba6046913f02ef9f25f90a97db53313d72058a089913b709b3af27efa7c200c"
42+
]
43+
}
44+
x-commit-hash: "528f6a7b6d1d81b0c44a81ca2b10dbeebb190e59"

packages/eio_luv/eio_luv.0.8/opam

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
opam-version: "2.0"
2+
synopsis: "Eio implementation using luv (libuv)"
3+
description: "An eio implementation for most platforms, using luv."
4+
maintainer: ["[email protected]"]
5+
authors: ["Anil Madhavapeddy" "Thomas Leonard"]
6+
license: "ISC"
7+
homepage: "https://github.com/ocaml-multicore/eio"
8+
doc: "https://ocaml-multicore.github.io/eio/"
9+
bug-reports: "https://github.com/ocaml-multicore/eio/issues"
10+
depends: [
11+
"dune" {>= "3.0"}
12+
"eio" {= version}
13+
"luv" {>= "0.5.11"}
14+
"luv_unix" {>= "0.5.0"}
15+
"mdx" {>= "1.10.0" & with-test}
16+
"fmt" {>= "0.8.9"}
17+
"odoc" {with-doc}
18+
]
19+
build: [
20+
["dune" "subst"] {dev}
21+
[
22+
"dune"
23+
"build"
24+
"-p"
25+
name
26+
"-j"
27+
jobs
28+
"@install"
29+
"@runtest" {with-test}
30+
"@doc" {with-doc}
31+
]
32+
]
33+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
34+
url {
35+
src:
36+
"https://github.com/ocaml-multicore/eio/releases/download/v0.8/eio-0.8.tbz"
37+
checksum: [
38+
"sha256=55dcf4480db4d4b96670602a5827529df6a413d8fe111dd35eb5a985d3e41297"
39+
"sha512=ea7166cb8e49c687c0d7c9e10c099726be1cfe230d5d2b749bba95bb2dd44441aba6046913f02ef9f25f90a97db53313d72058a089913b709b3af27efa7c200c"
40+
]
41+
}
42+
x-commit-hash: "528f6a7b6d1d81b0c44a81ca2b10dbeebb190e59"

packages/eio_main/eio_main.0.8/opam

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
opam-version: "2.0"
2+
synopsis: "Effect-based direct-style IO mainloop for OCaml"
3+
description: "Selects an appropriate Eio backend for the current platform."
4+
maintainer: ["[email protected]"]
5+
authors: ["Anil Madhavapeddy" "Thomas Leonard"]
6+
license: "ISC"
7+
homepage: "https://github.com/ocaml-multicore/eio"
8+
doc: "https://ocaml-multicore.github.io/eio/"
9+
bug-reports: "https://github.com/ocaml-multicore/eio/issues"
10+
depends: [
11+
"dune" {>= "3.0"}
12+
"eio_linux" {= version & os = "linux"}
13+
"mdx" {>= "1.10.0" & with-test}
14+
"eio_luv" {= version}
15+
"odoc" {with-doc}
16+
]
17+
build: [
18+
["dune" "subst"] {dev}
19+
[
20+
"dune"
21+
"build"
22+
"-p"
23+
name
24+
"-j"
25+
jobs
26+
"@install"
27+
"@runtest" {with-test}
28+
"@doc" {with-doc}
29+
]
30+
]
31+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
32+
url {
33+
src:
34+
"https://github.com/ocaml-multicore/eio/releases/download/v0.8/eio-0.8.tbz"
35+
checksum: [
36+
"sha256=55dcf4480db4d4b96670602a5827529df6a413d8fe111dd35eb5a985d3e41297"
37+
"sha512=ea7166cb8e49c687c0d7c9e10c099726be1cfe230d5d2b749bba95bb2dd44441aba6046913f02ef9f25f90a97db53313d72058a089913b709b3af27efa7c200c"
38+
]
39+
}
40+
x-commit-hash: "528f6a7b6d1d81b0c44a81ca2b10dbeebb190e59"

0 commit comments

Comments
 (0)