st2: shared heap regions between local mutable state threads

[ bsd3, data, library ] [ Propose Tags ]

This library implements the ST2 monad, a type using GDP (ghosts of departed proofs) to define shared regions of memory between local mutable state threads. This allows us to define a region of the heap in more minute contours, with each state thread having explicit access to regions in memory. This is achieved using the function runST2, which in effects lets the user run a computation that makes use of two partially-overlapping memory regions. Within that computation, the user can run sub-computations bound to one or the other memory region. Furthermore, a sub-computation can move any variable that it owns into the common overlap via share.

An example is shown in the documentation, where one sub-computation creates two cells: one private, and the other shared. A second sub-computation has unconstrained access to the shared cell. Yet even though the private reference is also in scope during the second sub-computation, any attempts to access it there will fail to compile.

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.1
Change log ChangeLog.md
Dependencies base (>=4.9 && <5), gdp (>=0.0.0.1 && <0.1), primitive (>=0.6.4 && <0.8) [details]
License BSD-3-Clause
Copyright copyright (c) 2018 chessai, copyright (c) 2018 Matt Noonan
Author chessai
Maintainer chessai1996@gmail.com
Category Data
Home page https://github.com/chessai/st2.git
Source repo head: git clone git://github.com/chessai/st2.git
Uploaded by chessai at 2022-02-12T18:23:53Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 1694 total (13 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2022-02-12 [all 1 reports]