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
andFlock
on return Event
abstraction- Synchronization and communication primitives:
- Incremental variable or
Ivar
- Countdown
Latch
Semaphore
Stream
of events
- Incremental variable or
- 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 allowingFLS
entries to be populated before
spawn - Introduced concept of fatal errors, which must terminate the scheduler or
the whole program - Simplified
FLS
interface
- Redesigned resource management based on
-
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
- lib:
- pkg:
picos_aux
- lib:
picos_aux.htbl
- lib:
picos_aux.mpmcq
- lib:
picos_aux.mpscq
- lib:
picos_aux.rc
- lib:
- pkg:
picos_lwt
- lib:
picos_lwt
- lib:
picos_lwt.unix
- lib:
- pkg:
picos_meta
(integration tests) - pkg:
picos_mux
- lib:
picos_mux.fifo
- lib:
picos_mux.multififo
- lib:
picos_mux.random
- lib:
picos_mux.thread
- lib:
- pkg:
picos_std
- lib:
picos_std.event
- lib:
picos_std.finally
- lib:
picos_std.structured
- lib:
picos_std.sync
- lib:
- pkg:
picos_io
- lib:
picos_io
- lib:
picos_io.fd
- lib:
picos_io.select
- lib:
- pkg:
picos_io_cohttp
- lib:
picos_io_cohttp
- lib:
- pkg:
-