picos_mux -> picos_std, picos_aux, and optionally on picos_stdio
Schedulers
picos_lwt -> picos_std, picos_aux(, lwt)
picos_meta -> all of the above
Integration (and other) tests
Makes it easy to simplify the dependencies of other packages
The above changes should make it easier for people to depend only on the packages they need. A single package with dependencies to lwt and cohttp is just too heavy.
This also removes the Exn_bt module and type entirely. It is impossible to have such a module in OCaml.
Due to the split to multiple packages the structure of the documentation has also been updated. Currently odoc doesn't support references between packages, which, unfortunately, downgrades the quality of the documentation.
Finally, it has become clear that Miou is not compatible with Picos. There are several reasons for this:
Miou wants core Picos to be a single file that could be trivially copied and built without tooling such as dune and opam
Miou wants to remove Cancel_after, because it is, according to Miou's author, impossible to support in MirageOS
Miou wants to remove Fiber.t (replacing it with an integer id)
Miou finds the implementation of Fiber.FLS unacceptable, because it uses the Obj module to store heterogenous values in an array (similar to what Stdlib.Domain.DLS does)
Miou is opposed to use of thread-local-storage, which is currently used on OCaml 4 and will likely be used in the future to significantly speed up Fiber.current and Fiber.spawn (note that TLS also uses Obj like Stdlib.Domain.DLS)
Miou requires that the direct parent of a child must await for the child to terminate — Picos requires such (and other) constraints to be implemented outside of the scheduler
Miou finds the governance of Picos unacceptable
It was also unacceptable for Miou for Picos to include the Exn_bt module(, library, and package) — those have been removed
Thanks to c-cube for starting the work on this in #249!
This splits the picos package into several smaller packages, roughly:
picos
-> (backoff
,thread-local-storage
)picos_aux
-> (backoff
,multicore-magic
)picos_std
->picos
(,backoff
,multicore-magic
)picos_stdio
->picos_std
,picos_aux
, andunix
(,mtime
,psq
)picos_stdio_cohttp
->picos_stdio
(,cohttp
,fmt
,uri
)picos_mux
->picos_std
,picos_aux
, and optionally onpicos_stdio
picos_lwt
->picos_std
,picos_aux
(,lwt
)picos_meta
-> all of the aboveThe above changes should make it easier for people to depend only on the packages they need. A single package with dependencies to
lwt
andcohttp
is just too heavy.This also removes the
Exn_bt
module and type entirely. It is impossible to have such a module in OCaml.Due to the split to multiple packages the structure of the documentation has also been updated. Currently odoc doesn't support references between packages, which, unfortunately, downgrades the quality of the documentation.
Finally, it has become clear that Miou is not compatible with Picos. There are several reasons for this:
Cancel_after
, because it is, according to Miou's author, impossible to support in MirageOSFiber.t
(replacing it with an integer id)Fiber.FLS
unacceptable, because it uses theObj
module to store heterogenous values in an array (similar to whatStdlib.Domain.DLS
does)Fiber.current
andFiber.spawn
(note that TLS also usesObj
likeStdlib.Domain.DLS
)Exn_bt
module(, library, and package) — those have been removedThanks to c-cube for starting the work on this in #249!