package riot

  1. Overview
  2. Docs
An actor-model multi-core scheduler for OCaml 5

Install

Dune Dependency

Authors

Maintainers

Sources

riot-0.0.5.tbz
sha256=01b7b82ccc656b12b7315960d9df17eb4682b8f1af68e9fee33171fee1f9cf88
sha512=d8831d8a75fe43a7e8d16d2c0bb7d27f6d975133e17c5dd89ef7e575039c59d27c1ab74fbadcca81ddfbc0c74d1e46c35baba35ef825b36ac6c4e49d7a41d0c2

CHANGES.md.html

Changes

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 the Riot.* 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 system

  • Fix Riot.Logger to fit the Application interface

  • Add a new Riot.Telemetry backend for doing async telemetry

0.0.2

  • New Riot.random () API to expose current scheduler's random state

  • Better logging in the Net module

  • Fix 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

OCaml

Innovation. Community. Security.