this repo has no description

[new release] eio (5 packages) (0.14)

CHANGES:

New features / API changes:

- Add `Eio.Executor_pool` (@SGrondin ocaml-multicore/eio#639, reviewed by @talex5).
Provides an easy way to distribute jobs across domains.

- Add `Fiber.first ~combine` and `Fiber.n_any` (@SGrondin @talex5 ocaml-multicore/eio#587).
Allows keeping both results in the case where multiple fibers succeed.

- Add `Eio_mock.Backend.run_full` with auto-advancing mock clock (@talex5 ocaml-multicore/eio#644, reviewed by @SGrondin).
Simplifies testing of code using clocks.

- Add `Buf_write.printf` (@SGrondin @talex5 ocaml-multicore/eio#655).

- Add `Net.listening_addr` (@mefyl ocaml-multicore/eio#555, reviewed by @patricoferris @talex5).
Useful to get the socket's address if the OS assigns it.

- Add `Promise.try_resolve` (@talex5 ocaml-multicore/eio#646).

- Remove `Cancel_hook_failed` exception (@talex5 ocaml-multicore/eio#640).
Didn't seem to be used and broke dscheck.

Tracing:

- Improve tracing (@TheLortex @patricoferris @talex5 ocaml-multicore/eio#656).
Trace cancellation contexts and OS operations, and simplify API.

- Add labels to switches (@talex5 ocaml-multicore/eio#661, reviewed by @SGrondin).

- `Fiber.all`: use the parent fiber (@talex5 ocaml-multicore/eio#665, reviewed by @SGrondin).
Cleans up the traces a bit.

Performance:

- Faster and simpler `Lf_queue` (@talex5 ocaml-multicore/eio#647, based on work by @polytypic).

- Optimise `Flow.copy` with `Buf_read.as_flow` (@talex5 ocaml-multicore/eio#663, reviewed by @SGrondin, reported by @leostera).

Bug fixes:

- Fix handling of very long IO vectors (@talex5 ocaml-multicore/eio#653, reported by @Cjen1).

- eio_posix: use `caml_enter_blocking_section` in more places (@talex5 ocaml-multicore/eio#654, reviewed by @SGrondin).

- eio_posix: work around `caml_unix_alloc_sockaddr` bug (@talex5 ocaml-multicore/eio#651).

- Remove default backtrace from `Switch.fail` (@talex5 ocaml-multicore/eio#664).

Documentation:

- Organise eio.mli better (@talex5 ocaml-multicore/eio#667).

- Fix quoting of quotes in process error messages (@talex5 ocaml-multicore/eio#666, reviewed by @SGrondin).

- Mention Path module in File and Fs documentation (@talex5 ocaml-multicore/eio#659, requested by @clecat).

- Minor documentation updates (@SGrondin @talex5 ocaml-multicore/eio#670).

Build / internals:

- Allow closing synchronous streams (@talex5 ocaml-multicore/eio#641, reviewed by @SGrondin).
This isn't currently exposed in the public interface.

- Fix non-idempotent tests (@SGrondin ocaml-multicore/eio#662).

- eio_windows: add explicit fmt dependency (@talex5 ocaml-multicore/eio#643).

Changed files
+226
packages
eio
eio.0.14
eio_linux
eio_linux.0.14
eio_main
eio_main.0.14
eio_posix
eio_posix.0.14
eio_windows
eio_windows.0.14
+53
packages/eio/eio.0.14/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.1.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: [
+
"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.14/eio-0.14.tbz"
+
checksum: [
+
"sha256=52f85b947d3e0de70940b5bbaac0d3e78841fea5648e73af7d8a754ab51c871b"
+
"sha512=944095b1131d2dcc1f0d415fe46fd78b883733e0f95985e3a0feafe73b1703606ec60560abf36c16c364cc60164b7330f236e39569e264c702bb5647e28bfd3c"
+
]
+
}
+
x-commit-hash: "c502574915daadafb4f1a0af0d03c1bd1a20b0f4"
+45
packages/eio_linux/eio_linux.0.14/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.7"}
+
"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"
+
available: [os = "linux"]
+
url {
+
src:
+
"https://github.com/ocaml-multicore/eio/releases/download/v0.14/eio-0.14.tbz"
+
checksum: [
+
"sha256=52f85b947d3e0de70940b5bbaac0d3e78841fea5648e73af7d8a754ab51c871b"
+
"sha512=944095b1131d2dcc1f0d415fe46fd78b883733e0f95985e3a0feafe73b1703606ec60560abf36c16c364cc60164b7330f236e39569e264c702bb5647e28bfd3c"
+
]
+
}
+
x-commit-hash: "c502574915daadafb4f1a0af0d03c1bd1a20b0f4"
+45
packages/eio_main/eio_main.0.14/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" &
+
(os-distribution != "centos" | os-version > "7")}
+
"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.14/eio-0.14.tbz"
+
checksum: [
+
"sha256=52f85b947d3e0de70940b5bbaac0d3e78841fea5648e73af7d8a754ab51c871b"
+
"sha512=944095b1131d2dcc1f0d415fe46fd78b883733e0f95985e3a0feafe73b1703606ec60560abf36c16c364cc60164b7330f236e39569e264c702bb5647e28bfd3c"
+
]
+
}
+
x-commit-hash: "c502574915daadafb4f1a0af0d03c1bd1a20b0f4"
+41
packages/eio_posix/eio_posix.0.14/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.14/eio-0.14.tbz"
+
checksum: [
+
"sha256=52f85b947d3e0de70940b5bbaac0d3e78841fea5648e73af7d8a754ab51c871b"
+
"sha512=944095b1131d2dcc1f0d415fe46fd78b883733e0f95985e3a0feafe73b1703606ec60560abf36c16c364cc60164b7330f236e39569e264c702bb5647e28bfd3c"
+
]
+
}
+
x-commit-hash: "c502574915daadafb4f1a0af0d03c1bd1a20b0f4"
+42
packages/eio_windows/eio_windows.0.14/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}
+
"fmt" {>= "0.8.9"}
+
"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.14/eio-0.14.tbz"
+
checksum: [
+
"sha256=52f85b947d3e0de70940b5bbaac0d3e78841fea5648e73af7d8a754ab51c871b"
+
"sha512=944095b1131d2dcc1f0d415fe46fd78b883733e0f95985e3a0feafe73b1703606ec60560abf36c16c364cc60164b7330f236e39569e264c702bb5647e28bfd3c"
+
]
+
}
+
x-commit-hash: "c502574915daadafb4f1a0af0d03c1bd1a20b0f4"
+
available: [os = "win32"]