this repo has no description

[new release] picos (8 packages) (0.5.0)

CHANGES:

- Major additions, changes, bug fixes, improvements, and restructuring
(@polytypic, @c-cube)

- Additions:

- Minimalistic Cohttp implementation
- Implicitly propagated `Flock` of fibers for structured concurrency
- Option to terminate `Bundle` and `Flock` on return
- `Event` abstraction
- Synchronization and communication primitives:
- Incremental variable or `Ivar`
- Countdown `Latch`
- `Semaphore`
- `Stream` of events
- Multi-producer, multi-consumer lock-free queue optimized for schedulers
- Multithreaded (work-stealing) FIFO scheduler
- Support `quota` for FIFO based schedulers
- Transactional interface for atomically completing multiple `Computation`s

- Changes:

- Redesigned resource management based on `('r -> 'a) -> 'a` functions
- Redesigned `spawn` interface allowing `FLS` entries to be populated before
spawn
- Introduced concept of fatal errors, which must terminate the scheduler or
the whole program
- Simplified `FLS` interface

- Improvements:

- Signficantly reduced per fiber memory usage of various sample schedulers

- Picos has now been split into multiple packages and libraries:

- pkg: `picos`
- lib: `picos`
- lib: `picos.domain`
- lib: `picos.thread`
- pkg: `picos_aux`
- lib: `picos_aux.htbl`
- lib: `picos_aux.mpmcq`
- lib: `picos_aux.mpscq`
- lib: `picos_aux.rc`
- pkg: `picos_lwt`
- lib: `picos_lwt`
- lib: `picos_lwt.unix`
- pkg: `picos_meta` (integration tests)
- pkg: `picos_mux`
- lib: `picos_mux.fifo`
- lib: `picos_mux.multififo`
- lib: `picos_mux.random`
- lib: `picos_mux.thread`
- pkg: `picos_std`
- lib: `picos_std.event`
- lib: `picos_std.finally`
- lib: `picos_std.structured`
- lib: `picos_std.sync`
- pkg: `picos_io`
- lib: `picos_io`
- lib: `picos_io.fd`
- lib: `picos_io.select`
- pkg: `picos_io_cohttp`
- lib: `picos_io_cohttp`

Changed files
+339
packages
picos
picos.0.5.0
picos_aux
picos_aux.0.5.0
picos_io
picos_io.0.5.0
picos_io_cohttp
picos_io_cohttp.0.5.0
picos_lwt
picos_lwt.0.5.0
picos_meta
picos_meta.0.5.0
picos_mux
picos_mux.0.5.0
picos_std
picos_std.0.5.0
+39
packages/picos/picos.0.5.0/opam
···
+
opam-version: "2.0"
+
synopsis: "Pico scheduler interface"
+
description:
+
"A systems programming interface between effects based schedulers and concurrent abstractions."
+
maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/picos"
+
bug-reports: "https://github.com/ocaml-multicore/picos/issues"
+
depends: [
+
"dune" {>= "3.14"}
+
"backoff" {>= "0.1.0"}
+
"thread-local-storage" {>= "0.2"}
+
"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/picos.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz"
+
checksum: [
+
"sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be"
+
"sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0"
+
]
+
}
+
x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+38
packages/picos_aux/picos_aux.0.5.0/opam
···
+
opam-version: "2.0"
+
synopsis: "Auxiliary libraries for Picos"
+
maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/picos"
+
bug-reports: "https://github.com/ocaml-multicore/picos/issues"
+
depends: [
+
"dune" {>= "3.14"}
+
"ocaml" {>= "4.14.0"}
+
"backoff" {>= "0.1.0"}
+
"multicore-magic" {>= "2.3.0"}
+
"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/picos.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz"
+
checksum: [
+
"sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be"
+
"sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0"
+
]
+
}
+
x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+41
packages/picos_io/picos_io.0.5.0/opam
···
+
opam-version: "2.0"
+
synopsis: "Asynchronous IO system for Picos"
+
maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/picos"
+
bug-reports: "https://github.com/ocaml-multicore/picos/issues"
+
depends: [
+
"dune" {>= "3.14"}
+
"picos_aux" {= version}
+
"picos_std" {= version}
+
"backoff" {>= "0.1.0"}
+
"mtime" {>= "2.0.0"}
+
"multicore-magic" {>= "2.3.0"}
+
"psq" {>= "0.2.1"}
+
"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/picos.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz"
+
checksum: [
+
"sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be"
+
"sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0"
+
]
+
}
+
x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+39
packages/picos_io_cohttp/picos_io_cohttp.0.5.0/opam
···
+
opam-version: "2.0"
+
synopsis: "Cohttp running on Picos IO"
+
maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/picos"
+
bug-reports: "https://github.com/ocaml-multicore/picos/issues"
+
depends: [
+
"dune" {>= "3.14"}
+
"picos_io" {= version}
+
"cohttp" {>= "6.0.0~beta2"}
+
"fmt" {>= "0.9.0"}
+
"uri" {>= "4.4.0"}
+
"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/picos.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz"
+
checksum: [
+
"sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be"
+
"sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0"
+
]
+
}
+
x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+38
packages/picos_lwt/picos_lwt.0.5.0/opam
···
+
opam-version: "2.0"
+
synopsis: "Lwt interface for Picos"
+
maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/picos"
+
bug-reports: "https://github.com/ocaml-multicore/picos/issues"
+
depends: [
+
"dune" {>= "3.14"}
+
"picos_aux" {= version}
+
"picos_std" {= version}
+
"lwt" {>= "5.7.0"}
+
"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/picos.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz"
+
checksum: [
+
"sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be"
+
"sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0"
+
]
+
}
+
x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+64
packages/picos_meta/picos_meta.0.5.0/opam
···
+
opam-version: "2.0"
+
synopsis: "Integration tests for Picos packages"
+
maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/picos"
+
bug-reports: "https://github.com/ocaml-multicore/picos/issues"
+
depends: [
+
"dune" {>= "3.14"}
+
"picos" {= version}
+
"picos_aux" {= version}
+
"picos_std" {= version}
+
"picos_io" {= version}
+
"picos_io_cohttp" {= version}
+
"picos_mux" {= version}
+
"picos_lwt" {= version}
+
"dscheck" {>= "0.4.0"}
+
"lwt" {>= "5.7.0"}
+
"qcheck-core" {>= "0.21.2"}
+
"qcheck-stm" {>= "0.3"}
+
"alcotest" {>= "1.7.0" & with-test}
+
"backoff" {>= "0.1.0" & with-test}
+
"cohttp" {>= "6.0.0~beta2" & with-test}
+
"cohttp-lwt-unix" {>= "6.0.0~beta2" & os != "win32" & with-test}
+
"conduit-lwt-unix" {>= "6.2.2" & os != "win32" & with-test}
+
"conf-npm"
+
{arch != "x86_32" & arch != "riscv64" & os != "win32" & with-test}
+
"domain_shims" {>= "0.1.0" & with-test}
+
"js_of_ocaml" {>= "5.4.0" & with-test}
+
"mdx" {>= "2.4.0" & with-test}
+
"multicore-bench" {>= "0.1.4" & with-test}
+
"multicore-magic" {>= "2.3.0" & with-test}
+
"multicore-magic-dscheck" {>= "2.3.0" & with-test}
+
"ocaml-version" {>= "3.6.4" & with-test}
+
"cohttp-lwt" {>= "6.0.0~beta2" & with-test}
+
"qcheck-multicoretests-util" {>= "0.3" & with-test}
+
"uri" {>= "4.4.0" & with-test}
+
"odoc" {>= "2.4.1" & with-doc}
+
"sherlodoc" {>= "0.2" & 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/picos.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz"
+
checksum: [
+
"sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be"
+
"sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0"
+
]
+
}
+
x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+42
packages/picos_mux/picos_mux.0.5.0/opam
···
+
opam-version: "2.0"
+
synopsis: "Sample schedulers for Picos"
+
maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/picos"
+
bug-reports: "https://github.com/ocaml-multicore/picos/issues"
+
depends: [
+
"dune" {>= "3.14"}
+
"picos_aux" {= version}
+
"picos_std" {= version}
+
"backoff" {>= "0.1.0"}
+
"multicore-magic" {>= "2.3.0"}
+
"odoc" {with-doc}
+
]
+
depopts: [
+
"picos_io" {= version}
+
]
+
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/picos.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz"
+
checksum: [
+
"sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be"
+
"sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0"
+
]
+
}
+
x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+38
packages/picos_std/picos_std.0.5.0/opam
···
+
opam-version: "2.0"
+
synopsis: "Sample libraries for Picos"
+
maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"]
+
license: "ISC"
+
homepage: "https://github.com/ocaml-multicore/picos"
+
bug-reports: "https://github.com/ocaml-multicore/picos/issues"
+
depends: [
+
"dune" {>= "3.14"}
+
"picos" {= version}
+
"backoff" {>= "0.1.0"}
+
"multicore-magic" {>= "2.3.0"}
+
"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/picos.git"
+
url {
+
src:
+
"https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz"
+
checksum: [
+
"sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be"
+
"sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0"
+
]
+
}
+
x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"