packages feed

NoSlow-0.1.1: NoSlow.cabal

Name:           NoSlow
Version:        0.1.1
License:        BSD3
License-File:   LICENSE
Author:         Roman Leshchinskiy <rl@cse.unsw.edu.au>
Maintainer:     Roman Leshchinskiy <rl@cse.unsw.edu.au>
Copyright:      Roman Leshchinskiy 2009
Homepage:       http://www.cse.unsw.edu.au/~rl/code/darcs/NoSlow
Category:       Development, Profiling
Synopsis:       Microbenchmarks for various array libraries
Description:
        .
        NoSlow is a benchmark suite for several Haskell array libraries:
        standard lists, primitive sequential arrays from the DPH project,
        uvector, vector (primitive, storable and boxed arrays) and
        storablevector. At the moment, it implements a bunch of fairly random
        loop micro-kernels but will include many more benchmarks in the future.
        .
        In its present state, NoSlow /cannot/ be used to reliably compare the
        performance of the benchmarked libraries. It can be quite helpful for
        identifying cases where a closer inspection of the generated code
        might be warranted, however.
        .
        The package builds two binaries.
        .
        [@noslow -u log@] runs the benchmarks and writes the results to 'log'
        .
        [@noslow-table log > table.html@] outputs the results as a HTML table.
        It also supports the following options.
        .
        [@noslow-table log --type=Double@] only outputs the results of 'Double'
        benchmarks.
        .
        [@noslow-table --diff log1 log2@] produces a table comparing the
        results from 'log1' and 'log2' (2 means the first run was 2x slower
        than the second; 0.5 means 2x faster).
        .
        NoSlow is described in more detail here:
        <http://unlines.wordpress.com/2009/11/27/noslow/>.
        .

Build-Type:     Simple
Cabal-Version:  >= 1.2

Flag dph-prim-seq
Flag vector
Flag uvector
Flag storablevector

Executable noslow
  Main-Is: NoSlow/Main.hs

  Build-Depends:
    base >= 3 && < 5,
    template-haskell,
    criterion >= 0.2 && < 0.3

  Extensions:
    MultiParamTypeClasses

  if flag(dph-prim-seq)
    build-depends: dph-prim-seq, dph-base
    cpp-options: -DUSE_DPH_PRIM_SEQ

  if flag(vector)
    build-depends: vector >= 0.4
    cpp-options: -DUSE_VECTOR

  if flag(uvector)
    build-depends: uvector >= 0.1
    cpp-options: -DUSE_UVECTOR

  if flag(storablevector)
    build-depends: storablevector >= 0.2
    cpp-options: -DUSE_STORABLEVECTOR

  Ghc-Options:
    -O2

  Other-Modules:
        NoSlow.Backend.DPH.Prim.Seq
        NoSlow.Backend.Interface
        NoSlow.Backend.List
        NoSlow.Backend.StorableVector
        NoSlow.Backend.TH
        NoSlow.Backend.Uvector
        NoSlow.Backend.Vector.Primitive
        NoSlow.Backend.Vector.Storable
        NoSlow.Backend.Vector
        NoSlow.Main.TH
        NoSlow.Main.Tree
        NoSlow.Main.Util
        NoSlow.Micro.DPH.Prim.Seq.Double
        NoSlow.Micro.DPH.Prim.Seq
        NoSlow.Micro.Kernels
        NoSlow.Micro.List.Double
        NoSlow.Micro.List
        NoSlow.Micro.StorableVector.Double
        NoSlow.Micro.StorableVector
        NoSlow.Micro.Uvector.Double
        NoSlow.Micro.Uvector
        NoSlow.Micro.Vector.Boxed.Double
        NoSlow.Micro.Vector.Boxed
        NoSlow.Micro.Vector.Primitive.Double
        NoSlow.Micro.Vector.Primitive
        NoSlow.Micro.Vector.Storable.Double
        NoSlow.Micro.Vector.Storable
        NoSlow.Util.Base
        NoSlow.Util.Computation
        

Executable noslow-table
  Main-Is: Table.hs

  Build-Depends:
    base >= 3 && < 5,
    containers,
    criterion >=0.2