From a9147af5dc69fd449fc73243cb61816fe500d13e Mon Sep 17 00:00:00 2001 From: Thomas Leonard Date: Wed, 1 Feb 2023 09:49:13 +0000 Subject: [PATCH] [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). --- packages/eio/eio.0.8/opam | 54 +++++++++++++++++++++++++++ packages/eio_linux/eio_linux.0.8/opam | 44 ++++++++++++++++++++++ packages/eio_luv/eio_luv.0.8/opam | 42 +++++++++++++++++++++ packages/eio_main/eio_main.0.8/opam | 40 ++++++++++++++++++++ 4 files changed, 180 insertions(+) create mode 100644 packages/eio/eio.0.8/opam create mode 100644 packages/eio_linux/eio_linux.0.8/opam create mode 100644 packages/eio_luv/eio_luv.0.8/opam create mode 100644 packages/eio_main/eio_main.0.8/opam diff --git a/packages/eio/eio.0.8/opam b/packages/eio/eio.0.8/opam new file mode 100644 index 000000000000..ef261cffa7cc --- /dev/null +++ b/packages/eio/eio.0.8/opam @@ -0,0 +1,54 @@ +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.0"} + "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"} + "crowbar" {>= "0.2" & with-test} + "mtime" {>= "2.0.0"} + "alcotest" {>= "1.4.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"} +] +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.8/eio-0.8.tbz" + checksum: [ + "sha256=55dcf4480db4d4b96670602a5827529df6a413d8fe111dd35eb5a985d3e41297" + "sha512=ea7166cb8e49c687c0d7c9e10c099726be1cfe230d5d2b749bba95bb2dd44441aba6046913f02ef9f25f90a97db53313d72058a089913b709b3af27efa7c200c" + ] +} +x-commit-hash: "528f6a7b6d1d81b0c44a81ca2b10dbeebb190e59" diff --git a/packages/eio_linux/eio_linux.0.8/opam b/packages/eio_linux/eio_linux.0.8/opam new file mode 100644 index 000000000000..c53b501e6f64 --- /dev/null +++ b/packages/eio_linux/eio_linux.0.8/opam @@ -0,0 +1,44 @@ +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.0"} + "alcotest" {>= "1.4.0" & with-test} + "eio" {= version} + "mdx" {>= "1.10.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.8/eio-0.8.tbz" + checksum: [ + "sha256=55dcf4480db4d4b96670602a5827529df6a413d8fe111dd35eb5a985d3e41297" + "sha512=ea7166cb8e49c687c0d7c9e10c099726be1cfe230d5d2b749bba95bb2dd44441aba6046913f02ef9f25f90a97db53313d72058a089913b709b3af27efa7c200c" + ] +} +x-commit-hash: "528f6a7b6d1d81b0c44a81ca2b10dbeebb190e59" diff --git a/packages/eio_luv/eio_luv.0.8/opam b/packages/eio_luv/eio_luv.0.8/opam new file mode 100644 index 000000000000..46cdb671ccfa --- /dev/null +++ b/packages/eio_luv/eio_luv.0.8/opam @@ -0,0 +1,42 @@ +opam-version: "2.0" +synopsis: "Eio implementation using luv (libuv)" +description: "An eio implementation for most platforms, using luv." +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.0"} + "eio" {= version} + "luv" {>= "0.5.11"} + "luv_unix" {>= "0.5.0"} + "mdx" {>= "1.10.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.8/eio-0.8.tbz" + checksum: [ + "sha256=55dcf4480db4d4b96670602a5827529df6a413d8fe111dd35eb5a985d3e41297" + "sha512=ea7166cb8e49c687c0d7c9e10c099726be1cfe230d5d2b749bba95bb2dd44441aba6046913f02ef9f25f90a97db53313d72058a089913b709b3af27efa7c200c" + ] +} +x-commit-hash: "528f6a7b6d1d81b0c44a81ca2b10dbeebb190e59" diff --git a/packages/eio_main/eio_main.0.8/opam b/packages/eio_main/eio_main.0.8/opam new file mode 100644 index 000000000000..77dd268a39a7 --- /dev/null +++ b/packages/eio_main/eio_main.0.8/opam @@ -0,0 +1,40 @@ +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.0"} + "eio_linux" {= version & os = "linux"} + "mdx" {>= "1.10.0" & with-test} + "eio_luv" {= version} + "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.8/eio-0.8.tbz" + checksum: [ + "sha256=55dcf4480db4d4b96670602a5827529df6a413d8fe111dd35eb5a985d3e41297" + "sha512=ea7166cb8e49c687c0d7c9e10c099726be1cfe230d5d2b749bba95bb2dd44441aba6046913f02ef9f25f90a97db53313d72058a089913b709b3af27efa7c200c" + ] +} +x-commit-hash: "528f6a7b6d1d81b0c44a81ca2b10dbeebb190e59"