Skip to content

Commit 52066cd

Browse files
talex5nberth
authored andcommitted
[new release] eio (5 packages) (0.12)
CHANGES: New features / API changes: - Replace objects with variants (@talex5 @patricoferris ocaml-multicore/eio#553 ocaml-multicore/eio#605 ocaml-multicore/eio#608, reviewed by @avsm). Some potential users found object types confusing, so we now use an alternative scheme for OS resources. For users of the resources, the only thing that changes is the types: - Instead of taking an argument of type `#foo`, you should now take `_ foo`. - Instead of returning a value of type `foo`, you should now return `foo_ty Eio.Resource.t`. To provide your own implementation of an interface, you now provide a module rather than an object. For example, to provide your own source flow, use `Eio.Flow.Pi.source (module My_source)`. If you want to define your own interfaces, see the `Eio.Resource` module documentation. - Add `Eio.Pool` (@talex5 @darrenldl ocaml-multicore/eio#602, reviewed by @patricoferris). A lock-free pool of resources. This is similar to `Lwt_pool`. - Add `Eio.Lazy` (@talex5 ocaml-multicore/eio#609, reviewed by @SGrondin). If one fiber tries to force a lazy value while another is already doing it, this will wait for the first one to finish rather than raising an exception (as `Stdlib.Lazy` does). - Add `Eio.Path.native` (@talex5 ocaml-multicore/eio#603, reviewed by @patricoferris). This is useful when interacting with non-Eio libraries, for spawning sub-processes, and for displaying paths to users. - Add `Flow.single_write` (@talex5 ocaml-multicore/eio#598). - Add `Eio.Flow.Pi.simple_copy` (@talex5 ocaml-multicore/eio#611). Provides an easy way to implement the `copy` operation when making your own sink. - Eio_unix: add FD passing (@talex5 ocaml-multicore/eio#522). Allows opening a file and passing the handle over a Unix-domain socket. - Add `Process.run ?is_success` to control definition of success (@SGrondin ocaml-multicore/eio#586, reviewed by @talex5). - Add `Eio_mock.Domain_manager` (@talex5 ocaml-multicore/eio#610). This mock domain manager runs everything in a single domain, allowing tests to remain deterministic. - Add `Eio.Debug.with_trace_prefix` (@talex5 ocaml-multicore/eio#610). Allows prefixing all `traceln` output. The mock domain manager uses this to indicate which fake domain is running. Bug fixes: - Fork actions must not allocate (@talex5 ocaml-multicore/eio#593). When using multiple domains, child processes could get stuck if they forked while another domain held the malloc lock. - eio_posix: ignore some errors writing to the wake-up pipe (@talex5 ocaml-multicore/eio#600). If the pipe is full or closed, the wake-up should simply be ignored. Build/test fixes: - Fix some MDX problems on Windows (@polytypic ocaml-multicore/eio#597). - The README depends on kcas (@talex5 ocaml-multicore/eio#606). - Clarify configuration for lib_eio_linux and enable tests on other arches (@dra27 ocaml-multicore/eio#592). - eio_linux tests: skip fixed buffer test if not available (@talex5 ocaml-multicore/eio#604). - eio_windows: update available line to win32 (@talex5 ocaml-multicore/eio#588 ocaml-multicore/eio#591).
1 parent 3be373f commit 52066cd

File tree

5 files changed

+226
-0
lines changed
  • packages
    • eio_linux/eio_linux.0.12
    • eio_main/eio_main.0.12
    • eio_posix/eio_posix.0.12
    • eio_windows/eio_windows.0.12
    • eio/eio.0.12

5 files changed

+226
-0
lines changed

packages/eio/eio.0.12/opam

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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.9"}
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+
"domain-local-await" {>= "0.1.0"}
21+
"crowbar" {>= "0.2" & with-test}
22+
"mtime" {>= "2.0.0"}
23+
"mdx" {>= "2.2.0" & with-test}
24+
"dscheck" {>= "0.1.0" & with-test}
25+
"odoc" {with-doc}
26+
]
27+
conflicts: [
28+
"ocaml-base-compiler" {< "5.0.0~beta1"}
29+
"ocaml-variants" {< "5.0.0~beta1"}
30+
"ocaml-system" {< "5.0.0~beta1"}
31+
"seq" {< "0.3"}
32+
]
33+
build: [
34+
["dune" "subst"] {dev}
35+
[
36+
"dune"
37+
"build"
38+
"-p"
39+
name
40+
"-j"
41+
jobs
42+
"@install"
43+
"@runtest" {with-test}
44+
"@doc" {with-doc}
45+
]
46+
]
47+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
48+
url {
49+
src:
50+
"https://github.com/ocaml-multicore/eio/releases/download/v0.12/eio-0.12.tbz"
51+
checksum: [
52+
"sha256=d84847ce85ffb78641496ad24be3c6ab5cc2c6885cedad6ae257ecac59d926a0"
53+
"sha512=fbcbc8e7e8eaaeacd6c7b3be04fec19b356f900307b2cc1bf6c1cd6bd538c4ea59ab2c7d936fac00c52a3277737671759f1584025c24e0a7727447609c633821"
54+
]
55+
}
56+
x-commit-hash: "ad7149dc297b856c9bedd692e5809538fd27a4e2"
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.9"}
12+
"alcotest" {>= "1.7.0" & with-test}
13+
"eio" {= version}
14+
"mdx" {>= "2.2.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.12/eio-0.12.tbz"
39+
checksum: [
40+
"sha256=d84847ce85ffb78641496ad24be3c6ab5cc2c6885cedad6ae257ecac59d926a0"
41+
"sha512=fbcbc8e7e8eaaeacd6c7b3be04fec19b356f900307b2cc1bf6c1cd6bd538c4ea59ab2c7d936fac00c52a3277737671759f1584025c24e0a7727447609c633821"
42+
]
43+
}
44+
x-commit-hash: "ad7149dc297b856c9bedd692e5809538fd27a4e2"
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: "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.9"}
12+
"mdx" {>= "2.2.0" & with-test}
13+
"kcas" {>= "0.3.0" & with-test}
14+
"yojson" {>= "2.0.2" & with-test}
15+
"eio_linux" {= version & os = "linux"}
16+
"eio_posix" {= version & os != "win32"}
17+
"eio_windows" {= version & os = "win32"}
18+
"odoc" {with-doc}
19+
]
20+
build: [
21+
["dune" "subst"] {dev}
22+
[
23+
"dune"
24+
"build"
25+
"-p"
26+
name
27+
"-j"
28+
jobs
29+
"@install"
30+
"@runtest" {with-test}
31+
"@doc" {with-doc}
32+
]
33+
]
34+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
35+
url {
36+
src:
37+
"https://github.com/ocaml-multicore/eio/releases/download/v0.12/eio-0.12.tbz"
38+
checksum: [
39+
"sha256=d84847ce85ffb78641496ad24be3c6ab5cc2c6885cedad6ae257ecac59d926a0"
40+
"sha512=fbcbc8e7e8eaaeacd6c7b3be04fec19b356f900307b2cc1bf6c1cd6bd538c4ea59ab2c7d936fac00c52a3277737671759f1584025c24e0a7727447609c633821"
41+
]
42+
}
43+
x-commit-hash: "ad7149dc297b856c9bedd692e5809538fd27a4e2"
44+
x-ci-accept-failures: ["macos-homebrew"]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
opam-version: "2.0"
2+
synopsis: "Eio implementation for POSIX systems"
3+
description: "An Eio implementation for most Unix-like platforms"
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.9"}
12+
"eio" {= version}
13+
"iomux" {>= "0.2"}
14+
"mdx" {>= "2.2.0" & with-test}
15+
"fmt" {>= "0.8.9"}
16+
"odoc" {with-doc}
17+
]
18+
build: [
19+
["dune" "subst"] {dev}
20+
[
21+
"dune"
22+
"build"
23+
"-p"
24+
name
25+
"-j"
26+
jobs
27+
"@install"
28+
"@runtest" {with-test}
29+
"@doc" {with-doc}
30+
]
31+
]
32+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
33+
url {
34+
src:
35+
"https://github.com/ocaml-multicore/eio/releases/download/v0.12/eio-0.12.tbz"
36+
checksum: [
37+
"sha256=d84847ce85ffb78641496ad24be3c6ab5cc2c6885cedad6ae257ecac59d926a0"
38+
"sha512=fbcbc8e7e8eaaeacd6c7b3be04fec19b356f900307b2cc1bf6c1cd6bd538c4ea59ab2c7d936fac00c52a3277737671759f1584025c24e0a7727447609c633821"
39+
]
40+
}
41+
x-commit-hash: "ad7149dc297b856c9bedd692e5809538fd27a4e2"
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
opam-version: "2.0"
2+
synopsis: "Eio implementation for Windows"
3+
description: "An Eio implementation using OCaml's Unix.select"
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.9"}
12+
"eio" {= version}
13+
"kcas" {>= "0.3.0" & with-test}
14+
"alcotest" {>= "1.7.0" & with-test}
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.12/eio-0.12.tbz"
35+
checksum: [
36+
"sha256=d84847ce85ffb78641496ad24be3c6ab5cc2c6885cedad6ae257ecac59d926a0"
37+
"sha512=fbcbc8e7e8eaaeacd6c7b3be04fec19b356f900307b2cc1bf6c1cd6bd538c4ea59ab2c7d936fac00c52a3277737671759f1584025c24e0a7727447609c633821"
38+
]
39+
}
40+
x-commit-hash: "ad7149dc297b856c9bedd692e5809538fd27a4e2"
41+
available: [os = "win32"]

0 commit comments

Comments
 (0)