From c39875aee0456f2bfe73f669d1dd6db42cd1f6a4 Mon Sep 17 00:00:00 2001 From: Thomas Leonard Date: Wed, 17 Jan 2024 13:32:06 +0000 Subject: [PATCH] [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). --- packages/eio/eio.0.14/opam | 53 ++++++++++++++++++++++ packages/eio_linux/eio_linux.0.14/opam | 45 ++++++++++++++++++ packages/eio_main/eio_main.0.14/opam | 45 ++++++++++++++++++ packages/eio_posix/eio_posix.0.14/opam | 41 +++++++++++++++++ packages/eio_windows/eio_windows.0.14/opam | 42 +++++++++++++++++ 5 files changed, 226 insertions(+) create mode 100644 packages/eio/eio.0.14/opam create mode 100644 packages/eio_linux/eio_linux.0.14/opam create mode 100644 packages/eio_main/eio_main.0.14/opam create mode 100644 packages/eio_posix/eio_posix.0.14/opam create mode 100644 packages/eio_windows/eio_windows.0.14/opam diff --git a/packages/eio/eio.0.14/opam b/packages/eio/eio.0.14/opam new file mode 100644 index 000000000000..31a4aeb26004 --- /dev/null +++ b/packages/eio/eio.0.14/opam @@ -0,0 +1,53 @@ +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" diff --git a/packages/eio_linux/eio_linux.0.14/opam b/packages/eio_linux/eio_linux.0.14/opam new file mode 100644 index 000000000000..5fbaade7f2ee --- /dev/null +++ b/packages/eio_linux/eio_linux.0.14/opam @@ -0,0 +1,45 @@ +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" diff --git a/packages/eio_main/eio_main.0.14/opam b/packages/eio_main/eio_main.0.14/opam new file mode 100644 index 000000000000..d17a588f7e17 --- /dev/null +++ b/packages/eio_main/eio_main.0.14/opam @@ -0,0 +1,45 @@ +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" diff --git a/packages/eio_posix/eio_posix.0.14/opam b/packages/eio_posix/eio_posix.0.14/opam new file mode 100644 index 000000000000..19fd933d065a --- /dev/null +++ b/packages/eio_posix/eio_posix.0.14/opam @@ -0,0 +1,41 @@ +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" diff --git a/packages/eio_windows/eio_windows.0.14/opam b/packages/eio_windows/eio_windows.0.14/opam new file mode 100644 index 000000000000..1b346ae92af7 --- /dev/null +++ b/packages/eio_windows/eio_windows.0.14/opam @@ -0,0 +1,42 @@ +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"]