packages feed

thread-local-storage-0.1.2: thread-local-storage.cabal

name:                thread-local-storage
version:             0.1.2
synopsis:            Several options for thread-local-storage (TLS) in Haskell.
description:
   .
   Thread-local storage, or TLS, is an important ingredient in many
   algorithms and data structures.
   .
   The GHC compiler does not provide a built-in notion of TLS either
   at the IO-thread or OS thread level.  This package provides a few
   different implementations of a simple TLS API.
   .
   All exported public modules provide exactly the same interface with
   different implementations.  Run the included criterion benchmark
   suite to ascertain which performs the best on your platform.
   .
   Example criterion benchmark data can be found here (from an Intel Ivy-Bridge i7-3770 desktop):
      <http://www.cs.indiana.edu/~rrnewton/datasets/xmen_tls_report.html>

homepage:            https://github.com/rrnewton/thread-local-storage
bug-reports:         https://github.com/rrnewton/thread-local-storage/issues
license:             BSD3
license-file:        LICENSE
author:              Ryan Newton
maintainer:          rrnewton@gmail.com
category:            System
build-type:          Simple
cabal-version:       >=1.10

extra-source-files:  CHANGELOG.md, README.md, Data/TLS/TLS_Sig.hs

source-repository head
  type:     git
  location: https://github.com/rrnewton/thread-local-storage

library
  exposed-modules:     Data.TLS.GHC,
                       Data.TLS.PThread
                   -- Not finished yet:
                   --  Data.TLS.GCC
                       Data.TLS.PThread.Internal
  other-extensions:    BangPatterns, NamedFieldPuns, CPP
  build-depends:       base >=4.6 && < 5.0,
                       containers >=0.5
  default-language:    Haskell2010
  ghc-options: -Wall -O2
  c-sources: cbits/helpers.c
  extra-libraries: pthread

benchmark bench-haskell-tls
  main-is: Main.hs
  hs-source-dirs: ./bench/
  type: exitcode-stdio-1.0
  build-depends: thread-local-storage
  build-depends: base >= 4.6 && < 5.0,
                 criterion >= 1.2.1,
                 atomic-primops >= 0.6.0.6
  default-language:    Haskell2010
  ghc-options: -Wall -rtsopts -O2 -threaded -with-rtsopts=-T


test-suite test-tls
  main-is: Main.hs
  hs-source-dirs: tests
  type: exitcode-stdio-1.0
  build-depends: base >= 4.6 && < 5.0,
                 atomic-primops >= 0.6.0.6,
                 thread-local-storage
  default-language:    Haskell2010
  ghc-options: -Wall -rtsopts -O2 -threaded -with-rtsopts=-N4