Nicolas Trangez

Results 41 issues of Nicolas Trangez

The current implementation of `CQueue` is quite complicated. Reworking this, simplifying it, potentially making it fully STM-only, could be useful. See: #7

enhancement

Some experimentation to have something alike `gen_server` would be useful. I particularly like Drama's usage of a GADT to specify the API (call arguments and return type) of such service,...

The `ProcessTable` newtype (currently `Map ProcessId ProcessContext`) and associated actions would encapsulate all operations (within STM) which affect two or more processes (e.g., `link`, `unlink`, `monitor`,...). By properly encapsulating this,...

enhancement

For most operations (e.g., `link`, `monitor` etc.) it's likely fine to go through the `nodeContextProcesses` `Map` to look up some target process and make modifications. However, when `send`ing a message,...

enhancement

Currently, several functions in `Troupe.Process` are not really 'primitive' functions (e.g., all the `*WithOptions` functions). It'd make sense to split things up, so the core/primitives and their interactions are very...

good first issue

Currently, `Process r a` is defined as `ReaderT (ProcessEnv r) IO a`. Indeed, we don't want any other monad but `IO` as the base monad for processes (theoretically anything implementing...

There are several useful things that may be built on top of the primitives, e.g.: - `withProcess :: MonadProcess r m => Process r a -> (ProcessId -> Process r...

good first issue

`receiveOptionsNew` (or or similar) allows for "only new messages since the last call to receive" to be... received. This allows for optimization, e.g., when implementing `call` for `gen_server`: we know...

enhancement

Currently, to create new `ProcessId`s and `MonitorRefId`s, a global `TVar` is used. This could be a cause for contention (to be profiled). If it is, this should be refactored into...

enhancement

The current bounds, `~=0.5.10`, translate to `>= 0.5.10, == 0.5.*` according to the "Version specifiers" spec. Given `nbclient` is currently at version 0.10.0, loosening the bounds allows for `pytest-notebook` to...