packages feed

tbox-0.1.0: tbox.cabal

Name:           tbox
Synopsis:       Transactional variables and data structures with IO hooks
Description:
    This package provides STM data structures with IO hooks. 
    The basic building blocks are instances of class 'TBox'. Such an
    instance is an STM variable that might contain a value of 
    some type 'a'. In contrast to a plain 'TVar (Maybe a)', a 
    'TBox' has IO hooks that are executed transparently on writes and reads.
        The IO hooks of the 'AdvSTM' monad extend the atomicity of STM transactions
    to the on-commit IO actions, which makes it particularly suitable for 
    implementing a persistent and thread-safe storage.
    .
    See module Control.Concurrent.TFile for a (simple) instance of a 'TBox'
    that serializes its content to a file via 'Data.Binary'.
    .
    New in this release is the implementation of a skip list in module
    Control.Concurrent.TBox.TSkipList. A skip list is a probabilistic data
    structure that provides expected run time of /O(log n)/ for 
    dictionary operations (insert, lookup, filter, delete, update) similar to 
    a balanced tree. 
    The main advantage of a skip list is that it does not need rebalancing,
    which could cause lots of contention among transactions.
    The 'TFile' skip list instance tries to reconstruct its content from the
    'TFile'-directory. See module Control.Concurrent.TFile.TSkipList for a
    usage example.
    .
    Feedback is highly appreciated!

Author:         Peter Robinson 2009, 2010
Maintainer:     Peter Robinson <thaldyron@gmail.com>
License:        LGPL
License-file:   LICENSE
Version:        0.1.0
Category:       Data, Concurrency
Stability:      experimental
Homepage:       http://darcs.monoid.at/tbox

build-type:     Simple                        
cabal-version: >= 1.2.3
library
    ghc-options:        -Wall -fno-ignore-asserts -fwarn-incomplete-patterns

    exposed-modules:    Control.Concurrent.TBox
                        Control.Concurrent.TBox.Internal.Class
                        Control.Concurrent.TBox.Internal.Operations
--                        Control.Concurrent.TBox.TList
--                        Control.Concurrent.TBox.THashtable
                        Control.Concurrent.TBox.TSkipList
                        Control.Concurrent.TFile
--                        Control.Concurrent.TFile.TList
--                        Control.Concurrent.TFile.THashtable
                        Control.Concurrent.TFile.TSkipList

--    other-modules:      test.hs

    build-depends:      base >= 4 && < 5, 
                        stm-io-hooks >= 0.6.0 && < 0.7, 
                        mtl >= 1.1.0.2 && < 1.2,
                        binary >= 0.5 && < 0.6,
                        filepath >= 1.1 && < 1.2,
                        directory >= 1.0.0.3 && < 1.1,
                        cautious-file >= 0.1.5 && < 0.2,
                        array >= 0.2 && < 0.4,
                        containers >= 0.2.0.1 && < 0.4,
                        random >= 1.0.0.1 && < 1.1,
                        monad-loops >= 0.3.0.2 && < 0.4.0.0,
                        IfElse >= 0.85 && < 1,
                        safe-failure >= 0.4.0 && < 0.5

    extensions:         MultiParamTypeClasses,
--                        RankNTypes, 
--                        FunctionalDependencies, 
                        FlexibleContexts,
                        FlexibleInstances,
--                        UndecidableInstances,
                        DeriveDataTypeable,
                        ExistentialQuantification,
                        TypeSynonymInstances,
                        BangPatterns,
                        ScopedTypeVariables
--                        TypeSynonymInstances