-- 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 -- Changelog: -- 0.2 -- switch SLMap over to O(1) freeze 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: . * /LVars: lattice-based data structures for deterministic parallelism/ (). . * /Freeze after handling: quasi-deterministic programming with LVars/ (). 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 -- 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 -- Actually -threaded won't do anything for a library, this is just a reminder: ghc-options: -O2 -threaded -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