this repo has no description

[new release] riot (0.0.6)

CHANGES:

## 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 macOS
* Reuse 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 collection
* Add `net_test` with an echo tcp server/client
* Fix 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 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

Changed files
+45
packages
riot
riot.0.0.6
+45
packages/riot/riot.0.0.6/opam
···
+
opam-version: "2.0"
+
synopsis: "An actor-model multi-core scheduler for OCaml 5"
+
description:
+
"Riot is an actor-model multi-core scheduler for OCaml 5. It brings Erlang-style concurrency to the language, where lighweight process communicate via message passing"
+
maintainer: ["Leandro Ostera <leandro@abstractmachines.dev>"]
+
authors: ["Leandro Ostera <leandro@abstractmachines.dev>"]
+
license: "MIT"
+
tags: ["multicore" "erlang" "actor" "message-passing" "processes"]
+
homepage: "https://github.com/leostera/riot"
+
bug-reports: "https://github.com/leostera/riot/issues"
+
depends: [
+
"ocaml" {>= "5.1"}
+
"dune" {>= "3.11"}
+
"ptime" {>= "1.1.0"}
+
"poll" {>= "0.3.1"}
+
"bigstringaf" {>= "0.9.1"}
+
"uri" {>= "4.4.0"}
+
"telemetry" {>= "0.0.1"}
+
"mdx" {with-test & >= "2.3.1"}
+
"odoc" {with-doc & >= "2.2.2"}
+
]
+
build: [
+
["dune" "subst"] {dev}
+
[
+
"dune"
+
"build"
+
"-p"
+
name
+
"-j"
+
jobs
+
"@install"
+
"@runtest" {with-test}
+
"@doc" {with-doc}
+
]
+
]
+
dev-repo: "git+https://github.com/leostera/riot.git"
+
url {
+
src:
+
"https://github.com/leostera/riot/releases/download/0.0.6/riot-0.0.6.tbz"
+
checksum: [
+
"sha256=7618e70985be818a70948610028b62bf2a2170eab50f0cef3d8aa1bc866c5ded"
+
"sha512=8a29b274a115521c929da6bd173b159dfd63f4f63bb5bae618a9aeebc1c57f1975e4f51b2661e1c434f403d37777dca9f107816da5bbbc7e63b5cc979540358c"
+
]
+
}
+
x-commit-hash: "fd34dd4c05c9f179442eb73d3b19671426bca218"