strict-stm: Strict STM interface polymorphic over stm implementation.

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

Strict STM interface provided on top of io-classes and thus compatible with stm & io-sim.


[Skip to Readme]

Properties

Versions 1.0.0.0, 1.0.0.1, 1.1.0.0, 1.1.0.1, 1.2.0.0, 1.3.0.0, 1.4.0.0, 1.4.0.0
Change log CHANGELOG.md
Dependencies array, base (>=4.9 && <4.20), io-classes (>=1.4 && <1.5), stm (>=2.5 && <2.6) [details]
License Apache-2.0[multiple license files]
Copyright 2019-2024 Input Output Global Inc (IOG)
Author Alexander Vieth, Duncan Coutts, Marcin Szamotulski, Thomas Winant
Maintainer Duncan Coutts dunca@well-typed.com, Marcin Szamotulski coot@coot.me
Category Concurrency
Bug tracker https://github.com/input-output-hk/io-sim/issues
Source repo head: git clone https://github.com/input-output-hk/io-sim(strict-stm)
Uploaded by coot at 2024-02-02T15:21:24Z

Modules

[Index] [Quick Jump]

Flags

Automatic Flags
NameDescriptionDefault
asserts

Enable assertions

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for strict-stm-1.4.0.0

[back to package description]

Strict Software Transaction Memory

The strict-stm package provides a strict interface to software transaction memory. It builds on top of io-classes and thus it provides the interface for both stm as well as io-sim.

Novel testing / space-leak elimination approach

The strict interface provides a novel way of testing/eliminating space-leaks which might lurk in stm shared mutable variables. Together with the nothunks library it was successfully used to eliminate and keep a large system (cardano-node) space leak free.