Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ekmett/rcu
experimenting with STM-backed read-copy-update in Haskell
https://github.com/ekmett/rcu
Last synced: 21 days ago
JSON representation
experimenting with STM-backed read-copy-update in Haskell
- Host: GitHub
- URL: https://github.com/ekmett/rcu
- Owner: ekmett
- License: other
- Created: 2015-09-07T01:25:02.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-08-09T12:18:09.000Z (about 1 year ago)
- Last Synced: 2024-09-01T04:12:41.519Z (2 months ago)
- Language: Haskell
- Homepage: http://ekmett.github.io/rcu/
- Size: 199 KB
- Stars: 16
- Watchers: 8
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.markdown
- Changelog: CHANGELOG.markdown
- License: LICENSE
Awesome Lists containing this project
README
## rcu
[![Hackage](https://img.shields.io/hackage/v/rcu.svg)](https://hackage.haskell.org/package/rcu) [![Build Status](https://github.com/ekmett/rcu/workflows/Haskell-CI/badge.svg)](https://github.com/ekmett/rcu/actions?query=workflow%3AHaskell-CI)
This package is an exploration of Read-Copy Update in Haskell based on [Relativistic Programming in Haskell](http://web.cecs.pdx.edu/~theod/papers/haskell2015.pdf) by Cooper and Walpole. It includes a sound QSBR-based implementation and an attempt at an STM-based implementation.
In the spirit of [A Relativistic Enhancement to Software Transactional Memory](https://www.usenix.org/legacy/events/hotpar11/tech/final_files/Howard.pdf)
by Howard and Walpole, we could extend the STM implementation to allow reads and writes on the same data in parallel, writes to disjoint data in parallel, and force readers to agree that writes before a `synchronize` happened before writes after it.Development on this project proceeded in a burst of enthusiasm after Edward saw Ted's poster presentation at ICFP 2015, and yet somehow he managed to shanghai Ted into helping maintain this copy of his own work.
## Contact Information
Contributions and bug reports are welcome!
Please feel free to contact us through github or on the #haskell IRC channel on irc.freenode.net.
-Edward Kmett and Ted Cooper