packages feed

thread-local-storage-0.1.0.1: thread-local-storage.cabal

-- Initial thread-local-storage.cabal generated by cabal init.  For further
--  documentation, see http://haskell.org/cabal/users-guide/

name:                thread-local-storage
version:             0.1.0.1
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 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>
           
         
license:             BSD3
license-file:        LICENSE
author:              Ryan Newton
maintainer:          rrnewton@gmail.com
-- copyright:           
category:            System
build-type:          Simple
-- extra-source-files:  
cabal-version:       >=1.10

library
  exposed-modules:     Data.TLS.GHC, Data.TLS.PThread
--  Data.TLS.GCC,  
  other-modules:       Data.TLS.PThread.Internal
  other-extensions:    BangPatterns, NamedFieldPuns, CPP
  c-sources: cbits/helpers.c
  build-depends:       base >=4.6 && < 5.0,
                       containers >=0.5
  -- hs-source-dirs:      
  default-language:    Haskell2010
  ghc-options: -O2
   
     
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.0,
                 atomic-primops >= 0.6.0.6
  default-language:    Haskell2010
  ghc-options: -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: thread-local-storage
  build-depends: base >= 4.6 && < 5.0,
                 atomic-primops >= 0.6.0.6
  default-language:    Haskell2010
  ghc-options: -rtsopts -O2 -threaded -with-rtsopts=-N4

  -- DUPLICATED, from above:
  build-depends: containers >=0.5
  c-sources: cbits/helpers.c