lvish-1.0.0.2: lvish.cabal
-- Initial lvish.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
-- The name of the package.
name: lvish
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 1.0.0.2
-- Changelog:
-- 0.2 -- switch SLMap over to O(1) freeze
-- 1.0 -- initial public release
-- 1.0.0.2 -- minor docs polishing
synopsis: Parallel scheduler, LVar data structures, and infrastructure to build more.
description:
.
A programming model based on monotonically-growing concurrent data structures.
.
As a starting point, look at "Control.LVish", as well as one of these papers:
.
* FHPC 2013: /LVars: lattice-based data structures for deterministic parallelism/ (<http://dl.acm.org/citation.cfm?id=2502326>).
.
* POPL 2014: /Freeze after writing: quasi-deterministic programming with LVars/ (<http://www.cs.indiana.edu/~lkuper/papers/2013-lvish-draft.pdf>).
.
If the haddocks are not building, here is a mirror:
<http://www.cs.indiana.edu/~rrnewton/haddock/lvish/>
license: BSD3
license-file: LICENSE
author: Aaron Turon, Lindsey Kuper, Ryan Newton
maintainer: lindsey@composition.al
category: Concurrency
build-type: Simple
-- Constraint on the version of Cabal needed to build this package.
cabal-version: >=1.8
flag debug
description: Activate additional debug assertions, and printed output
if DEBUGLVL env var is set to 1 or higher.
default: False
flag chaselev
description: Use the Chase-Lev work-stealing deque
default: True
flag quick
description: Build some targets but not others. Omit apps and tests.
default: False
flag abstract-par
description: If enabled, provide instances for generic par operations using the establish type classes.
default: False
flag getonce
description: Ensure that continuations of get run at most once
(by using extra synchronization)
default: False
--------------------------------------------------------------------------------
library
Source-repository head
type: git
location: https://github.com/iu-parfunc/lvars
subdir: haskell/lvish
tag: release-lvish-1.0.0.2
-- Modules exported by the library.
exposed-modules:
------------- End user modules ------------
Control.LVish
Control.LVish.DeepFrz
Data.LVar.Generic
Data.LVar.IVar
Data.LVar.IStructure
Data.LVar.PureSet
Data.LVar.PureMap
Data.LVar.SLSet
Data.LVar.SLMap
-------------------------------------------
-- End users should NOT USE THESE.
-- These are only for developing new LVars:
Data.LVar.Internal.Pure
Data.LVar.Generic.Internal
Control.LVish.SchedIdempotent
Control.LVish.Internal
Control.LVish.DeepFrz.Internal
-- Modules included in this library but not exported.
other-modules:
Data.UtilInternal
Data.LVar.Pair
Data.Concurrent.Bag
Data.Concurrent.Counter
Data.Concurrent.SNZI
Data.Concurrent.LinkedMap
Data.Concurrent.SkipListMap
Data.Concurrent.AlignedIORef
Control.Reagent
Control.LVish.SchedIdempotentInternal
Control.LVish.MonadToss
Control.LVish.Types
-- Not ready for prime-time yet:
Data.LVar.NatArray
Data.LVar.MaxCounter
-- Other library packages from which modules are imported.
build-depends: base ==4.6.*, deepseq ==1.3.*, containers ==0.5.*, lattices ==1.2.*,
split ==0.2.*, bytestring ==0.10.*, time ==1.4.*, rdtsc ==1.3.*, vector ==0.10.*,
parallel ==3.2.*, async ==2.0.*,
atomic-primops, hashable, transformers, random,
chaselev-deque,
bits-atomic, missing-foreign,
ghc-prim
-- TEMP:
build-depends: HUnit, test-framework, test-framework-hunit, test-framework-th,
bytestring-mmap
ghc-options: -O2 -rtsopts
if flag(abstract-par)
cpp-options: -DUSE_ABSTRACT_PAR
build-depends: abstract-par >=0.4
-- monad-par-extras >=0.4
if flag(debug)
cpp-options: -DDEBUG_LVAR
if flag(chaselev)
cpp-options: -DCHASE_LEV
if flag(getonce)
cpp-options: -DGET_ONCE
--------------------------------------------------------------------------------
-- TODO: New tests here:
test-suite test-lvish
type: exitcode-stdio-1.0
main-is: unit-tests.hs
other-modules: TestHelpers
ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N4
build-depends: base ==4.6.*, containers ==0.5.*, transformers, atomic-primops, chaselev-deque,
random, deepseq, vector, bits-atomic, missing-foreign, time, ghc-prim, HUnit, test-framework,
test-framework-hunit, test-framework-th
if flag(debug)
cpp-options: -DDEBUG_LVAR
if flag(chaselev)
cpp-options: -DCHASE_LEV
if flag(getonce)
cpp-options: -DGET_ONCE