-- 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/ (). . * POPL 2014: /Freeze after writing: quasi-deterministic programming with LVars/ (). . If the haddocks are not building, here is a mirror: 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