name: rcu category: Data version: 0.2.7 license: BSD3 cabal-version: 1.22 license-file: LICENSE author: Ted Cooper and Edward A. Kmett maintainer: Edward A. Kmett , Ted Cooper stability: provisional homepage: http://github.com/ekmett/rcu/ bug-reports: http://github.com/ekmett/rcu/issues copyright: Copyright (C) 2015 Edward A. Kmett, Theodore Rhys Cooper build-type: Simple tested-with: GHC == 8.0.2 , GHC == 8.2.2 , GHC == 8.4.4 , GHC == 8.6.5 , GHC == 8.8.4 , GHC == 8.10.7 , GHC == 9.0.2 , GHC == 9.2.8 , GHC == 9.4.5 , GHC == 9.6.2 synopsis: Read-Copy-Update for Haskell description: Read-Copy-Update for Haskell. extra-source-files: .hlint.yaml examples/*.hs CHANGELOG.markdown README.markdown source-repository head type: git location: git://github.com/ekmett/rcu.git -- Include unstable and/or potentially incorrect implementations. flag unstable default: False manual: True -- Configure benchmarks to measure writer synchronize time at the expense of -- increasing average update time. flag measure-synchronize default: False manual: True library build-depends: atomic-primops >= 0.8, base >= 4.9 && < 5, fail == 4.9.*, ghc-prim >= 0.3, parallel >= 3.2 && < 3.3, primitive >= 0.6, transformers >= 0.4 && < 0.7 exposed-modules: Control.Concurrent.RCU.Class Control.Concurrent.RCU.GC Control.Concurrent.RCU.GC.Internal Control.Concurrent.RCU.QSBR Control.Concurrent.RCU.QSBR.Internal c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h ghc-options: -Wall -fwarn-tabs -feager-blackholing if impl(ghc >= 8.6) ghc-options: -Wno-star-is-type hs-source-dirs: src default-language: Haskell2010 if flag(unstable) hs-source-dirs: unstable build-depends: stm >= 2.4.4 && < 2.6 exposed-modules: Control.Concurrent.RCU.STM Control.Concurrent.RCU.STM.Internal executable MoveStringSTM main-is: MoveString.hs cpp-options: -DMODE=STM hs-source-dirs: examples ghc-options: -threaded -Wall -feager-blackholing -fwarn-tabs "-with-rtsopts=-N -qa -qb -qm -s" default-language: Haskell2010 if !flag(unstable) buildable: False else build-depends: base, rcu, transformers executable MoveStringQSBR main-is: MoveString.hs cpp-options: -DMODE=QSBR build-depends: base, rcu, transformers hs-source-dirs: examples ghc-options: -threaded -Wall -feager-blackholing -fwarn-tabs "-with-rtsopts=-N -qa -qb -qm -s" default-language: Haskell2010 executable MoveStringGC main-is: MoveString.hs cpp-options: -DMODE=GC build-depends: base, rcu, transformers hs-source-dirs: examples ghc-options: -threaded -Wall -feager-blackholing -fwarn-tabs "-with-rtsopts=-N -qa -qb -qm -s" default-language: Haskell2010 benchmark IncCounterExperiment main-is: IncCounterExperiment.hs type: exitcode-stdio-1.0 build-depends: base, criterion >= 1.1, ghc-prim, primitive, rcu, transformers hs-source-dirs: examples ghc-options: -threaded -Wall -feager-blackholing -fwarn-tabs "-with-rtsopts=-N -qa -qb -qm -s" default-language: Haskell2010 benchmark TimeSynchronizeQSBR main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=QSBR -DBENCHMARKS build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, rdtsc >= 1.3.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=QSBR -DBENCHMARKS -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -qa -qb -qm -s" default-language: Haskell2010 benchmark TimeSynchronizeGC main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=GC -DBENCHMARKS build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, rdtsc >= 1.3.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=GC -DBENCHMARKS -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -qa -qb -qm -s" default-language: Haskell2010 benchmark TimeSynchronizeQSBRUnbound main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=QSBR -DBENCHMARKS -DUNBOUND build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, time >= 1.5.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=QSBR -DBENCHMARKS -DUNBOUND -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -s" default-language: Haskell2010 benchmark TimeSynchronizeGCUnbound main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=GC -DBENCHMARKS -DUNBOUND build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, time >= 1.5.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=GC -DBENCHMARKS -DUNBOUND -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -s" default-language: Haskell2010 benchmark TimeSynchronizeQSBRSingleThread main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=QSBR -DBENCHMARKS -DUNBOUND build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, time >= 1.5.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=QSBR -DBENCHMARKS -DUNBOUND -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-s" default-language: Haskell2010 benchmark TimeSynchronizeGCSingleThread main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=GC -DBENCHMARKS -DUNBOUND build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, time >= 1.5.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=GC -DBENCHMARKS -DUNBOUND -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-s" default-language: Haskell2010 benchmark TimeSynchronizeQSBRPinned main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=QSBR -DBENCHMARKS build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, rdtsc >= 1.3.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=QSBR -DBENCHMARKS -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -qa -s" default-language: Haskell2010 benchmark TimeSynchronizeGCPinned main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=GC -DBENCHMARKS build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, rdtsc >= 1.3.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=GC -DBENCHMARKS -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -qa -s" default-language: Haskell2010 benchmark TimeSynchronizeQSBRnoGC main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=QSBR -DBENCHMARKS build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, rdtsc >= 1.3.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=QSBR -DBENCHMARKS -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -qa -qb -qm -A1g -I0 -s" default-language: Haskell2010 benchmark TimeSynchronizeGCnoGC main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=GC -DBENCHMARKS build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, rdtsc >= 1.3.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=GC -DBENCHMARKS -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -qa -qb -qm -A1g -I0 -s" default-language: Haskell2010 benchmark TimeSynchronizeQSBRnoGCPinned main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=QSBR -DBENCHMARKS build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, rdtsc >= 1.3.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=QSBR -DBENCHMARKS -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -qa -A1g -I0 -s" default-language: Haskell2010 benchmark TimeSynchronizeGCnoGCPinned main-is: TimeSynchronize.hs type: exitcode-stdio-1.0 cpp-options: -DMODE=GC -DBENCHMARKS build-depends: base >= 4.9 && < 5, containers >= 0.5, deepseq >= 1.4.1, ghc-prim >= 0.3, optparse-applicative >= 0.11, primitive >= 0.6, rcu, rdtsc >= 1.3.0.1, transformers >= 0.4 && < 0.7 if flag(measure-synchronize) cpp-options: -DMODE=GC -DBENCHMARKS -DMEASURE_SYNCHRONIZE c-sources: cbits/pause.c include-dirs: cbits install-includes: pause.h pause_impl.h hs-source-dirs: examples ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -qa -A1g -I0 -s" default-language: Haskell2010