lvar-examples
lvar-examples copied to clipboard
Programming with LVars, by example
Programming with LVars, by example
LVars are monotonically growing, lattice-based data structures for deterministic parallel programming. LVish is a Haskell library for programming with LVars. This repository contains toy examples of programs that use LVars and LVish, as well as a few that don't use LVars but are there for illustrative purposes.
Prerequisites
The code has been tested to build against GHC 7.8.1, 7.8.2, and 7.8.3. You should probably use one of those.
Installing LVish
LVish 1.1.4
You can install LVish
from Hackage by running
cabal install lvish (perhaps preceded by cabal update). That will
install the most recently released version, which, as of this writing,
is lvish-1.1.4.
LVish 2.0
If you want the newest, unreleased version of LVish -- which has more cool features than the 1.x releases do -- you'll have to install it from git. I recommend the following:
- Make sure you've pulled the
lvarsandconcurrent-skiplistsubmodules. Something likegit submodule update --initshould work. (lvarscontains the LVish library and some of its friends;concurrent-skiplistis one of LVish's dependencies.) - Go into the
2.0subdirectory. - Create a new sandbox in that directory with
cabal sandbox init. - Run
cabal install -j ../lvars/haskell/par-classes/ ../lvars/haskell/par-collections/ ../lvars/haskell/par-transformers/ ../concurrent-skiplist/ happy alex. - Run
cabal install ../lvars/haskell/lvish/and cross your fingers.
Then what?
Depending on whether you have lvish-1.1.4 or some flavor of lvish-2.0 installed, go here or here. Enjoy!
Caveats
The usual caveats about research code apply: Parts of it are broken. The API will change. It will eat your laundry.
