this repo has no description

[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).

Changed files
+226
packages
eio
eio.0.12
eio_linux
eio_linux.0.12
eio_main
eio_main.0.12
eio_posix
eio_posix.0.12
eio_windows
eio_windows.0.12
+56
packages/eio/eio.0.12/opam
···
+
opam-version: "2.0"
+
synopsis: "Effect-based direct-style IO API for OCaml"
+
description: "An effect-based IO API for multicore OCaml with fibers."
+
maintainer: ["anil@recoil.org"]
+
authors: ["Anil Madhavapeddy" "Thomas Leonard"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/eio"
+
doc: "https://ocaml-multicore.github.io/eio/"
+
bug-reports: "https://github.com/ocaml-multicore/eio/issues"
+
depends: [
+
"dune" {>= "3.9"}
+
"ocaml" {>= "5.0.0"}
+
"bigstringaf" {>= "0.9.0"}
+
"cstruct" {>= "6.0.1"}
+
"lwt-dllist"
+
"optint" {>= "0.1.0"}
+
"psq" {>= "0.2.0"}
+
"fmt" {>= "0.8.9"}
+
"hmap" {>= "0.8.1"}
+
"domain-local-await" {>= "0.1.0"}
+
"crowbar" {>= "0.2" & with-test}
+
"mtime" {>= "2.0.0"}
+
"mdx" {>= "2.2.0" & with-test}
+
"dscheck" {>= "0.1.0" & with-test}
+
"odoc" {with-doc}
+
]
+
conflicts: [
+
"ocaml-base-compiler" {< "5.0.0~beta1"}
+
"ocaml-variants" {< "5.0.0~beta1"}
+
"ocaml-system" {< "5.0.0~beta1"}
+
"seq" {< "0.3"}
+
]
+
build: [
+
["dune" "subst"] {dev}
+
[
+
"dune"
+
"build"
+
"-p"
+
name
+
"-j"
+
jobs
+
"@install"
+
"@runtest" {with-test}
+
"@doc" {with-doc}
+
]
+
]
+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/eio/releases/download/v0.12/eio-0.12.tbz"
+
checksum: [
+
"sha256=d84847ce85ffb78641496ad24be3c6ab5cc2c6885cedad6ae257ecac59d926a0"
+
"sha512=fbcbc8e7e8eaaeacd6c7b3be04fec19b356f900307b2cc1bf6c1cd6bd538c4ea59ab2c7d936fac00c52a3277737671759f1584025c24e0a7727447609c633821"
+
]
+
}
+
x-commit-hash: "ad7149dc297b856c9bedd692e5809538fd27a4e2"
+44
packages/eio_linux/eio_linux.0.12/opam
···
+
opam-version: "2.0"
+
synopsis: "Eio implementation for Linux using io-uring"
+
description: "An Eio implementation for Linux using io-uring."
+
maintainer: ["anil@recoil.org"]
+
authors: ["Anil Madhavapeddy" "Thomas Leonard"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/eio"
+
doc: "https://ocaml-multicore.github.io/eio/"
+
bug-reports: "https://github.com/ocaml-multicore/eio/issues"
+
depends: [
+
"dune" {>= "3.9"}
+
"alcotest" {>= "1.7.0" & with-test}
+
"eio" {= version}
+
"mdx" {>= "2.2.0" & with-test}
+
"logs" {>= "0.7.0"}
+
"fmt" {>= "0.8.9"}
+
"cmdliner" {>= "1.1.0" & with-test}
+
"uring" {>= "0.5"}
+
"odoc" {with-doc}
+
]
+
build: [
+
["dune" "subst"] {dev}
+
[
+
"dune"
+
"build"
+
"-p"
+
name
+
"-j"
+
jobs
+
"@install"
+
"@runtest" {with-test}
+
"@doc" {with-doc}
+
]
+
]
+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/eio/releases/download/v0.12/eio-0.12.tbz"
+
checksum: [
+
"sha256=d84847ce85ffb78641496ad24be3c6ab5cc2c6885cedad6ae257ecac59d926a0"
+
"sha512=fbcbc8e7e8eaaeacd6c7b3be04fec19b356f900307b2cc1bf6c1cd6bd538c4ea59ab2c7d936fac00c52a3277737671759f1584025c24e0a7727447609c633821"
+
]
+
}
+
x-commit-hash: "ad7149dc297b856c9bedd692e5809538fd27a4e2"
+44
packages/eio_main/eio_main.0.12/opam
···
+
opam-version: "2.0"
+
synopsis: "Effect-based direct-style IO mainloop for OCaml"
+
description: "Selects an appropriate Eio backend for the current platform."
+
maintainer: ["anil@recoil.org"]
+
authors: ["Anil Madhavapeddy" "Thomas Leonard"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/eio"
+
doc: "https://ocaml-multicore.github.io/eio/"
+
bug-reports: "https://github.com/ocaml-multicore/eio/issues"
+
depends: [
+
"dune" {>= "3.9"}
+
"mdx" {>= "2.2.0" & with-test}
+
"kcas" {>= "0.3.0" & with-test}
+
"yojson" {>= "2.0.2" & with-test}
+
"eio_linux" {= version & os = "linux"}
+
"eio_posix" {= version & os != "win32"}
+
"eio_windows" {= version & os = "win32"}
+
"odoc" {with-doc}
+
]
+
build: [
+
["dune" "subst"] {dev}
+
[
+
"dune"
+
"build"
+
"-p"
+
name
+
"-j"
+
jobs
+
"@install"
+
"@runtest" {with-test}
+
"@doc" {with-doc}
+
]
+
]
+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/eio/releases/download/v0.12/eio-0.12.tbz"
+
checksum: [
+
"sha256=d84847ce85ffb78641496ad24be3c6ab5cc2c6885cedad6ae257ecac59d926a0"
+
"sha512=fbcbc8e7e8eaaeacd6c7b3be04fec19b356f900307b2cc1bf6c1cd6bd538c4ea59ab2c7d936fac00c52a3277737671759f1584025c24e0a7727447609c633821"
+
]
+
}
+
x-commit-hash: "ad7149dc297b856c9bedd692e5809538fd27a4e2"
+
x-ci-accept-failures: ["macos-homebrew"]
+41
packages/eio_posix/eio_posix.0.12/opam
···
+
opam-version: "2.0"
+
synopsis: "Eio implementation for POSIX systems"
+
description: "An Eio implementation for most Unix-like platforms"
+
maintainer: ["anil@recoil.org"]
+
authors: ["Anil Madhavapeddy" "Thomas Leonard"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/eio"
+
doc: "https://ocaml-multicore.github.io/eio/"
+
bug-reports: "https://github.com/ocaml-multicore/eio/issues"
+
depends: [
+
"dune" {>= "3.9"}
+
"eio" {= version}
+
"iomux" {>= "0.2"}
+
"mdx" {>= "2.2.0" & with-test}
+
"fmt" {>= "0.8.9"}
+
"odoc" {with-doc}
+
]
+
build: [
+
["dune" "subst"] {dev}
+
[
+
"dune"
+
"build"
+
"-p"
+
name
+
"-j"
+
jobs
+
"@install"
+
"@runtest" {with-test}
+
"@doc" {with-doc}
+
]
+
]
+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/eio/releases/download/v0.12/eio-0.12.tbz"
+
checksum: [
+
"sha256=d84847ce85ffb78641496ad24be3c6ab5cc2c6885cedad6ae257ecac59d926a0"
+
"sha512=fbcbc8e7e8eaaeacd6c7b3be04fec19b356f900307b2cc1bf6c1cd6bd538c4ea59ab2c7d936fac00c52a3277737671759f1584025c24e0a7727447609c633821"
+
]
+
}
+
x-commit-hash: "ad7149dc297b856c9bedd692e5809538fd27a4e2"
+41
packages/eio_windows/eio_windows.0.12/opam
···
+
opam-version: "2.0"
+
synopsis: "Eio implementation for Windows"
+
description: "An Eio implementation using OCaml's Unix.select"
+
maintainer: ["anil@recoil.org"]
+
authors: ["Anil Madhavapeddy" "Thomas Leonard"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/eio"
+
doc: "https://ocaml-multicore.github.io/eio/"
+
bug-reports: "https://github.com/ocaml-multicore/eio/issues"
+
depends: [
+
"dune" {>= "3.9"}
+
"eio" {= version}
+
"kcas" {>= "0.3.0" & with-test}
+
"alcotest" {>= "1.7.0" & with-test}
+
"odoc" {with-doc}
+
]
+
build: [
+
["dune" "subst"] {dev}
+
[
+
"dune"
+
"build"
+
"-p"
+
name
+
"-j"
+
jobs
+
"@install"
+
"@runtest" {with-test}
+
"@doc" {with-doc}
+
]
+
]
+
dev-repo: "git+https://github.com/ocaml-multicore/eio.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/eio/releases/download/v0.12/eio-0.12.tbz"
+
checksum: [
+
"sha256=d84847ce85ffb78641496ad24be3c6ab5cc2c6885cedad6ae257ecac59d926a0"
+
"sha512=fbcbc8e7e8eaaeacd6c7b3be04fec19b356f900307b2cc1bf6c1cd6bd538c4ea59ab2c7d936fac00c52a3277737671759f1584025c24e0a7727447609c633821"
+
]
+
}
+
x-commit-hash: "ad7149dc297b856c9bedd692e5809538fd27a4e2"
+
available: [os = "win32"]