marked this pull request as draft
September 3, 2024 16:07avsm and others added 25 commits
September 5, 2024 09:07This introduces the flambda2 in-development variant, along with the various base packages required to compile it. These are secondary packages for dune/menhir (required to bootstrap the development version of the forked compiler), and also a new base-flambda2 package to The only variation to package selection should be that the new ocaml-secondary-compiler could be selected by existing ocamlfind-secondary packages, but it should be fine as it is just a newer version of the bootstrap OCaml used to build the ocamlfind binaries.
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`
avsm marked this pull request as ready for review
September 5, 2024 12:18avsm approved these changes Sep 5, 2024