package riot
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=b7e3cc061e2b6578bcd9d5258efde72f3657e68d626a005b43d15f1a7aff769e
sha512=00dcd34cce21058137cca15229a81e0e2c898f9877f22db6903288c8f757847a65965cfe791f84fe251df342f90e7e4aefe04f2fbb6ba282ad45b1a3b979e6cf
CHANGES.md.html
Changes
0.0.7
Introduce IO module with low-level IO operations such as performing direct vectorized (or regular) reads/writes. New operations include:
read
,write
single_read
,single_write
(vectorized)await_readable
,await_writeable
,await
write_all
copy
andcopy_buffered
Introduce Buffer module with support for converting from and to CStruct and String, including position tracking.
Introduce Read/Reader interface for creating buffered and unbuffered readers of arbitrary sources.
Introduce Write/Writer interfaces for creating unbuffered writers into arbitrary destinations/sinks.
Introduce File module with Reader and Writer implementations
Implment Reader and Writer interfaces for Net.Socket
Dropped dependency on Bigstringaf and moved to Cstruct
Fix max number of domains to always be under the recommended domain count
Fix issue with tests where the runtime idled after the main would die. Now the main process finishing with an exception is considered reason enough to shutdown the system.
Refactor tests to always output
test_name: OK
when everything is fine and all modules to end in_test
.Add several IO tests.
Fix log levels for writing to sockets
Include proper license for C Stubs copied from
lib_eio_posix
for vectorized i/o.Split test suite into io/non-io so io tests are left outside opam ci
Improved IO polling that removes heavy iterations over process/fds tables
Rewrite Dashmap internals to use a Hashtbl
0.0.6
Redo packaging to expose a single public library:
riot
Fix issue with schedulers busy-waiting
Introduce separate IO Schedulers for polling
Switch to
poll
to support kqueue on macOSReuse read-buffers on Io.read loops
Broaden IO socket types to file descriptors
Improved polling with shorter poll timeouts and safety checks
Add
Dashmap.iter
to iterate over a collectionAdd
net_test
with an echo tcp server/clientFix bugs with syscall suspension that was introduced with reduction counting
0.0.5
Add
register name pid
Add
unregister name
Add
send_by_name ~name msg
Fix timer wheel making it remove timers correctly
Add better test for
Timer.send_after
0.0.4
Internally immediately suspend (bypassing reduction counts) when on a receive expression
Fix reads from closed Unix sockets
Fix writes to closed Unix sockets
Ignore SIGPIPEs on setup
Fix always mark connected sockets as nonblocking
Fix GC i/o process table
Surface pretty-printing of socket values
0.0.3
Big namespace refactor.
Riot.Runtime
includes the lower-level runtime blocks, and everything else that is more user-friendly lives at theRiot.*
level.Introduce reduction counting, so processes will run up to N iterations unless they finish, or they execute an unhandled effect.
Introduce the
Application
interface for managing the lifecycle of the systemFix
Riot.Logger
to fit theApplication
interfaceAdd a new
Riot.Telemetry
backend for doing async telemetry
0.0.2
New
Riot.random ()
API to expose current scheduler's random stateBetter logging in the
Net
moduleFix a bug where
Net.Socket
operations where hanging on I/O polling when they could have been eager
0.0.1
First release, including:
First working version of the scheduler
Support for process spawning, message passing, monitoring, and linking
Rudimentary supervisors
Basic (and incomplete) GenServer
Scheduling-aware I/O primitives
Scheduling-aware Logger
Timers