packages feed

chaselev-deque-0.5.0.5: chaselev-deque.cabal

Name:                chaselev-deque
Version:             0.5.0.5
License:             BSD3
License-file:        LICENSE
Author:              Ryan R. Newton, Edward Kmett 
Maintainer:          rrnewton@gmail.com
Category:            Data, Concurrent
Build-type:          Simple
Cabal-version:       >=1.8

-- Version history:
-- 0.1.1 -- bump for fixing bugs!  First release candidate.
-- 0.1.2
-- 0.1.3 -- small release to fix version deps before atomic-primops api change
-- 0.3   -- bump to go along with atomic-primops 0.3
-- 0.4   -- bump to go along with atomic-primops 0.4
-- 0.5.0.2 -- bump to go along with MAJOR bugfix in atomic-primops 0.5.0.2
-- 0.5.0.3 -- minor bump to change abstract-deque dep.
-- 0.5.0.4 -- bugfix

Homepage: https://github.com/rrnewton/haskell-lockfree/wiki
Bug-Reports: https://github.com/rrnewton/haskell-lockfree/issues

Synopsis: Chase & Lev work-stealing lock-free double-ended queues (deques).

Description:

  A queue that is push/pop on one end and pop-only on the other.  These are commonly
  used for work-stealing.
  This implementation derives directly from the pseudocode in the 2005 SPAA paper:
  .
  http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.170.1097&rep=rep1&type=pdf

Extra-Source-Files: Test.hs RegressionTests/Issue5.hs RegressionTests/Issue5B.hs

Flag debug
    Description: Enable the extra internal checks.
    Default: False

Library
  exposed-modules:   Data.Concurrent.Deque.ChaseLev.DequeInstance,
                     Data.Concurrent.Deque.ChaseLev
--                     Data.Concurrent.Deque.ChaseLev2
-- Disabling this [2012.03.08].  It got terrible performance anyway:
--                     Data.Concurrent.Deque.ReactorDeque
  other-modules:     Data.Concurrent.Deque.ChaseLevUnboxed

  build-depends:     base >= 4.4.0.0 && < 5, array, transformers, 
                     abstract-deque >= 0.3 && < 0.4, vector, ghc-prim,
                     atomic-primops >= 0.5.0.2
-- This was for reactordeque:
--		     bits-atomic,
  build-depends: ghc-prim
  ghc-options: -O2
  if flag(debug)
    cpp-options: -DDEBUGCL

Source-Repository head
    Type:         git
    Location:     git://github.com/rrnewton/haskell-lockfree.git

Test-Suite test-chaselev-deque
    type:       exitcode-stdio-1.0
    main-is:    Test.hs
    build-depends: base >= 4.4.0.0 && < 5, 
                   abstract-deque >= 0.3 && < 0.4, abstract-deque-tests >= 0.3,
                   HUnit, test-framework, test-framework-hunit,
                   atomic-primops >= 0.5.0.2, vector, ghc-prim, array
    build-depends: containers
    ghc-options: -O2 -threaded 
    ghc-options: -rtsopts -with-rtsopts=-N4

    -- ghc-options: -O2 -threaded -rtsopts 
    -- -- Debugging generated code:
    -- ghc-options: -keep-tmp-files -dsuppress-module-prefixes -ddump-to-file -ddump-core-stats -ddump-simpl-stats -dcore-lint -dcmm-lint
    -- ghc-options: -ddump-ds -ddump-simpl -ddump-stg -ddump-asm -ddump-bcos -ddump-cmm -ddump-opt-cmm -ddump-inlinings