this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

[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`

authored by

Vesa Karvonen and committed by
Anil Madhavapeddy
ae749dec b9ace44c

+339
+39
packages/picos/picos.0.5.0/opam
··· 1 + opam-version: "2.0" 2 + synopsis: "Pico scheduler interface" 3 + description: 4 + "A systems programming interface between effects based schedulers and concurrent abstractions." 5 + maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 6 + authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 7 + license: "ISC" 8 + homepage: "https://github.com/ocaml-multicore/picos" 9 + bug-reports: "https://github.com/ocaml-multicore/picos/issues" 10 + depends: [ 11 + "dune" {>= "3.14"} 12 + "backoff" {>= "0.1.0"} 13 + "thread-local-storage" {>= "0.2"} 14 + "odoc" {with-doc} 15 + ] 16 + build: [ 17 + ["dune" "subst"] {dev} 18 + [ 19 + "dune" 20 + "build" 21 + "-p" 22 + name 23 + "-j" 24 + jobs 25 + "@install" 26 + "@runtest" {with-test} 27 + "@doc" {with-doc} 28 + ] 29 + ] 30 + dev-repo: "git+https://github.com/ocaml-multicore/picos.git" 31 + url { 32 + src: 33 + "https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz" 34 + checksum: [ 35 + "sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be" 36 + "sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0" 37 + ] 38 + } 39 + x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+38
packages/picos_aux/picos_aux.0.5.0/opam
··· 1 + opam-version: "2.0" 2 + synopsis: "Auxiliary libraries for Picos" 3 + maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 4 + authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 5 + license: "ISC" 6 + homepage: "https://github.com/ocaml-multicore/picos" 7 + bug-reports: "https://github.com/ocaml-multicore/picos/issues" 8 + depends: [ 9 + "dune" {>= "3.14"} 10 + "ocaml" {>= "4.14.0"} 11 + "backoff" {>= "0.1.0"} 12 + "multicore-magic" {>= "2.3.0"} 13 + "odoc" {with-doc} 14 + ] 15 + build: [ 16 + ["dune" "subst"] {dev} 17 + [ 18 + "dune" 19 + "build" 20 + "-p" 21 + name 22 + "-j" 23 + jobs 24 + "@install" 25 + "@runtest" {with-test} 26 + "@doc" {with-doc} 27 + ] 28 + ] 29 + dev-repo: "git+https://github.com/ocaml-multicore/picos.git" 30 + url { 31 + src: 32 + "https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz" 33 + checksum: [ 34 + "sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be" 35 + "sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0" 36 + ] 37 + } 38 + x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+41
packages/picos_io/picos_io.0.5.0/opam
··· 1 + opam-version: "2.0" 2 + synopsis: "Asynchronous IO system for Picos" 3 + maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 4 + authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 5 + license: "ISC" 6 + homepage: "https://github.com/ocaml-multicore/picos" 7 + bug-reports: "https://github.com/ocaml-multicore/picos/issues" 8 + depends: [ 9 + "dune" {>= "3.14"} 10 + "picos_aux" {= version} 11 + "picos_std" {= version} 12 + "backoff" {>= "0.1.0"} 13 + "mtime" {>= "2.0.0"} 14 + "multicore-magic" {>= "2.3.0"} 15 + "psq" {>= "0.2.1"} 16 + "odoc" {with-doc} 17 + ] 18 + build: [ 19 + ["dune" "subst"] {dev} 20 + [ 21 + "dune" 22 + "build" 23 + "-p" 24 + name 25 + "-j" 26 + jobs 27 + "@install" 28 + "@runtest" {with-test} 29 + "@doc" {with-doc} 30 + ] 31 + ] 32 + dev-repo: "git+https://github.com/ocaml-multicore/picos.git" 33 + url { 34 + src: 35 + "https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz" 36 + checksum: [ 37 + "sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be" 38 + "sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0" 39 + ] 40 + } 41 + x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+39
packages/picos_io_cohttp/picos_io_cohttp.0.5.0/opam
··· 1 + opam-version: "2.0" 2 + synopsis: "Cohttp running on Picos IO" 3 + maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 4 + authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 5 + license: "ISC" 6 + homepage: "https://github.com/ocaml-multicore/picos" 7 + bug-reports: "https://github.com/ocaml-multicore/picos/issues" 8 + depends: [ 9 + "dune" {>= "3.14"} 10 + "picos_io" {= version} 11 + "cohttp" {>= "6.0.0~beta2"} 12 + "fmt" {>= "0.9.0"} 13 + "uri" {>= "4.4.0"} 14 + "odoc" {with-doc} 15 + ] 16 + build: [ 17 + ["dune" "subst"] {dev} 18 + [ 19 + "dune" 20 + "build" 21 + "-p" 22 + name 23 + "-j" 24 + jobs 25 + "@install" 26 + "@runtest" {with-test} 27 + "@doc" {with-doc} 28 + ] 29 + ] 30 + dev-repo: "git+https://github.com/ocaml-multicore/picos.git" 31 + url { 32 + src: 33 + "https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz" 34 + checksum: [ 35 + "sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be" 36 + "sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0" 37 + ] 38 + } 39 + x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+38
packages/picos_lwt/picos_lwt.0.5.0/opam
··· 1 + opam-version: "2.0" 2 + synopsis: "Lwt interface for Picos" 3 + maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 4 + authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 5 + license: "ISC" 6 + homepage: "https://github.com/ocaml-multicore/picos" 7 + bug-reports: "https://github.com/ocaml-multicore/picos/issues" 8 + depends: [ 9 + "dune" {>= "3.14"} 10 + "picos_aux" {= version} 11 + "picos_std" {= version} 12 + "lwt" {>= "5.7.0"} 13 + "odoc" {with-doc} 14 + ] 15 + build: [ 16 + ["dune" "subst"] {dev} 17 + [ 18 + "dune" 19 + "build" 20 + "-p" 21 + name 22 + "-j" 23 + jobs 24 + "@install" 25 + "@runtest" {with-test} 26 + "@doc" {with-doc} 27 + ] 28 + ] 29 + dev-repo: "git+https://github.com/ocaml-multicore/picos.git" 30 + url { 31 + src: 32 + "https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz" 33 + checksum: [ 34 + "sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be" 35 + "sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0" 36 + ] 37 + } 38 + x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+64
packages/picos_meta/picos_meta.0.5.0/opam
··· 1 + opam-version: "2.0" 2 + synopsis: "Integration tests for Picos packages" 3 + maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 4 + authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 5 + license: "ISC" 6 + homepage: "https://github.com/ocaml-multicore/picos" 7 + bug-reports: "https://github.com/ocaml-multicore/picos/issues" 8 + depends: [ 9 + "dune" {>= "3.14"} 10 + "picos" {= version} 11 + "picos_aux" {= version} 12 + "picos_std" {= version} 13 + "picos_io" {= version} 14 + "picos_io_cohttp" {= version} 15 + "picos_mux" {= version} 16 + "picos_lwt" {= version} 17 + "dscheck" {>= "0.4.0"} 18 + "lwt" {>= "5.7.0"} 19 + "qcheck-core" {>= "0.21.2"} 20 + "qcheck-stm" {>= "0.3"} 21 + "alcotest" {>= "1.7.0" & with-test} 22 + "backoff" {>= "0.1.0" & with-test} 23 + "cohttp" {>= "6.0.0~beta2" & with-test} 24 + "cohttp-lwt-unix" {>= "6.0.0~beta2" & os != "win32" & with-test} 25 + "conduit-lwt-unix" {>= "6.2.2" & os != "win32" & with-test} 26 + "conf-npm" 27 + {arch != "x86_32" & arch != "riscv64" & os != "win32" & with-test} 28 + "domain_shims" {>= "0.1.0" & with-test} 29 + "js_of_ocaml" {>= "5.4.0" & with-test} 30 + "mdx" {>= "2.4.0" & with-test} 31 + "multicore-bench" {>= "0.1.4" & with-test} 32 + "multicore-magic" {>= "2.3.0" & with-test} 33 + "multicore-magic-dscheck" {>= "2.3.0" & with-test} 34 + "ocaml-version" {>= "3.6.4" & with-test} 35 + "cohttp-lwt" {>= "6.0.0~beta2" & with-test} 36 + "qcheck-multicoretests-util" {>= "0.3" & with-test} 37 + "uri" {>= "4.4.0" & with-test} 38 + "odoc" {>= "2.4.1" & with-doc} 39 + "sherlodoc" {>= "0.2" & with-doc} 40 + ] 41 + build: [ 42 + ["dune" "subst"] {dev} 43 + [ 44 + "dune" 45 + "build" 46 + "-p" 47 + name 48 + "-j" 49 + jobs 50 + "@install" 51 + "@runtest" {with-test} 52 + "@doc" {with-doc} 53 + ] 54 + ] 55 + dev-repo: "git+https://github.com/ocaml-multicore/picos.git" 56 + url { 57 + src: 58 + "https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz" 59 + checksum: [ 60 + "sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be" 61 + "sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0" 62 + ] 63 + } 64 + x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+42
packages/picos_mux/picos_mux.0.5.0/opam
··· 1 + opam-version: "2.0" 2 + synopsis: "Sample schedulers for Picos" 3 + maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 4 + authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 5 + license: "ISC" 6 + homepage: "https://github.com/ocaml-multicore/picos" 7 + bug-reports: "https://github.com/ocaml-multicore/picos/issues" 8 + depends: [ 9 + "dune" {>= "3.14"} 10 + "picos_aux" {= version} 11 + "picos_std" {= version} 12 + "backoff" {>= "0.1.0"} 13 + "multicore-magic" {>= "2.3.0"} 14 + "odoc" {with-doc} 15 + ] 16 + depopts: [ 17 + "picos_io" {= version} 18 + ] 19 + build: [ 20 + ["dune" "subst"] {dev} 21 + [ 22 + "dune" 23 + "build" 24 + "-p" 25 + name 26 + "-j" 27 + jobs 28 + "@install" 29 + "@runtest" {with-test} 30 + "@doc" {with-doc} 31 + ] 32 + ] 33 + dev-repo: "git+https://github.com/ocaml-multicore/picos.git" 34 + url { 35 + src: 36 + "https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz" 37 + checksum: [ 38 + "sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be" 39 + "sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0" 40 + ] 41 + } 42 + x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"
+38
packages/picos_std/picos_std.0.5.0/opam
··· 1 + opam-version: "2.0" 2 + synopsis: "Sample libraries for Picos" 3 + maintainer: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 4 + authors: ["Vesa Karvonen <vesa.a.j.k@gmail.com>"] 5 + license: "ISC" 6 + homepage: "https://github.com/ocaml-multicore/picos" 7 + bug-reports: "https://github.com/ocaml-multicore/picos/issues" 8 + depends: [ 9 + "dune" {>= "3.14"} 10 + "picos" {= version} 11 + "backoff" {>= "0.1.0"} 12 + "multicore-magic" {>= "2.3.0"} 13 + "odoc" {with-doc} 14 + ] 15 + build: [ 16 + ["dune" "subst"] {dev} 17 + [ 18 + "dune" 19 + "build" 20 + "-p" 21 + name 22 + "-j" 23 + jobs 24 + "@install" 25 + "@runtest" {with-test} 26 + "@doc" {with-doc} 27 + ] 28 + ] 29 + dev-repo: "git+https://github.com/ocaml-multicore/picos.git" 30 + url { 31 + src: 32 + "https://github.com/ocaml-multicore/picos/releases/download/0.5.0/picos-0.5.0.tbz" 33 + checksum: [ 34 + "sha256=862d61383e2df93a876bedcffb1fd1ddc0f96c50b0e9c07943a2aee1f0e182be" 35 + "sha512=87805379017ef4a7f2c11b954625a3757a0f1431bb9ba59132202de278b3e41adbe0cdc20e3ab23b7c9a8c5a15faeb7ec79348e7d80f2b14274b00df0893b8c0" 36 + ] 37 + } 38 + x-commit-hash: "1f18591b23c04990726d62ddbfb13b8d835b3b53"