packages feed

monad-par-0.3: monad-par.cabal

Name:                monad-par
Version:             0.3
Synopsis:            A library for parallel programming based on a monad


-- Version history:
--  0.1      : First release
--  0.1.0.1  : 
--  0.1.0.2  : 
--  0.1.1.0  : module reorganization, moving ParClass

--  0.2      : Bumped for new class-based API
--  0.2.1    : Bumped for change AList
--  0.2.2    : incorporation of real deque package
--  0.2.3    : Restricted module export for 0.2 release.

--  0.3      : Factored/reorganized modules and packages.  
--             *This* package is the original, core monad-par.


Description:         This library offers an alternative parallel programming
                     API to that provided by the @parallel@ package.

                     A 'Par' monad allows the simple description of
                     parallel computations, and can be used to add
                     parallelism to pure Haskell code.  The basic API
                     is straightforward: the monad supports forking
                     and simple communication in terms of 'IVar's.

                     The library comes with a work-stealing
                     implementation, but the internals are also
                     exposed so that you can build your own scheduler
                     if necessary.


                     Examples of use can be found in the examples/ directory
                     of the source package.


                     The modules below provide additionaly schedulers,
                     data structures, and other added capabilities
                     layered on top of the 'Par' monad.

--                       * Finish These
--                       * Module Descriptions

Homepage:            https://github.com/simonmar/monad-par
License:             BSD3
License-file:        LICENSE
Author:              Simon Marlow
Maintainer:          Simon Marlow <marlowsd@gmail.com>
Copyright:           (c) Simon Marlow 2011
Stability:           Experimental
Category:            Control,Parallelism,Monads
Build-type:          Simple
Cabal-version:       >=1.8


extra-source-files:
     tests/AListTest.hs
     tests/AllTests.hs
     tests/AsyncTest.hs
     tests/Makefile
     tests/ParTests.hs
     tests/TestHelpers.hs
     tests/TestParDist.hs
     tests/Test_ContReaderT.hs
     tests/Test_ReaderContT.hs
     tests/hs_cassandra_microbench.hs
     tests/hs_cassandra_microbench2.hs

Library
  Exposed-modules: 
                 -- The classic, simple monad-par interface:
                   Control.Monad.Par

                 -- This is the default scheduler:
                 , Control.Monad.Par.Scheds.Trace
                 , Control.Monad.Par.Scheds.TraceInternal

                 -- Replacement scheduler for Trace:
                 , Control.Monad.Par.Scheds.Direct

                 -- This scheduler uses sparks rather than IO threads.
                 -- It only supports Futures, not full IVars:
                 , Control.Monad.Par.Scheds.Sparks

  Build-depends: base >= 4 && < 5
               -- This provides the interface which monad-par implements:
               , abstract-par 
               , abstract-deque >= 0.1.4
               -- Extras such as parMap, RNG, State
               , monad-par-extras == 0.3.*
               , deepseq >= 1.1
               , array >= 0.3
               , mwc-random >= 0.11
               , containers
               , parallel >= 3.1
               , mtl >= 2.0.1.0

  ghc-options: -O2
  Other-modules:
               ------------------------------------------------------------
               --                Schedulers & Infrastructure             --
               ------------------------------------------------------------

               -- Strawman scheduler that forks IO threads:
               -- Control.Monad.Par.Scheds.ContFree,

               -- Internal logging framework:
               -- Control.Monad.Par.Logging,

               -- Serial Elision is currently experimental:
               -- Control.Monad.Par.Scheds.SerialElision

               ------------------------------------------------------------
               --                   Data Structures                      -- 
               ------------------------------------------------------------

               -- ILists are internal:
               -- , Control.Monad.Par.IList

               -- RRN: Not exposing Streams or OpenLists yet.  Need to improve performance.
               -- We have some ideas for enabling bounded chans while preventing deadlock:
               -- , Control.Monad.Par.OpenList
               -- , Control.Monad.Par.Stream


Test-Suite test-monad-par
    type:       exitcode-stdio-1.0
    main-is:    tests/AllTests.hs
    ghc-options: -itests -rtsopts -threaded
    build-depends: base >= 4 && < 5
                 , abstract-par, monad-par-extras
                 , array >= 0.3
                 , deepseq >= 1.2
                 , time
                 , QuickCheck, HUnit
                 , test-framework-hunit, test-framework-quickcheck2
                 , test-framework, test-framework-th
                 -- , binary