packages feed

DSH-0.12.0.0: DSH.cabal

Name:                DSH
Version:             0.12.0.0
Synopsis:            Database Supported Haskell
Description:
  This is a Haskell library for database-supported program
  execution. Using DSH, a relational database management
  system (RDBMS) can be used as a coprocessor for the Haskell
  programming language, especially for those program fragments that
  carry out data-intensive and data-parallel computations.
  .
  Database executable program fragments can be written using the monad
  comprehension notation [2] and list processing combinators from the
  Haskell list prelude. Note that rather than embedding a relational
  language into Haskell, we turn idiomatic Haskell programs into SQL
  queries.
  .
  DSH faithfully represents list order and nesting, and compiles the
  list processing combinators into relational queries. The
  implementation avoids unnecessary data transfer and context
  switching between the database coprocessor and the Haskell runtime
  by ensuring that the number of generated relational queries is only
  determined by the program fragment's type and not by the database
  size.
  .
  DSH can be used to allow existing Haskell programs to operate on
  large scale data (e.g., larger than the available heap) or query
  existing database resident data with Haskell.
  .
  Note that this package is flagged experimental and therefore is not
  suited for production use (we mean it!). This is a proof of concept
  implementation only. To learn more about DSH, our paper "The
  Flatter, the Better — Query Compilation Based on the Flattening
  Transformation." [1] is a recommended reading. The package includes
  a couple of examples that demonstrate how to use DSH.
  .
  The current release does not rely anymore on the loop-lifting
  compilation technique and the Pathfinder optimizer. Instead, it
  brings a completely rewritten query compiler based on Guy Blelloch's
  flattening transformation. This approach leads to a more robust
  compilation and produces more efficient query code.
  .
  To generate actual code for a relational backend, an additional
  backend package needs to be installed. Currently, the package
  'dsh-sql' on Hackage provides SQL code generation for PostgreSQL.
  .
  Please read the release notes in 'README.md'.
  .
  1. <http://db.inf.uni-tuebingen.de/publications/TheFlatter-theBetter-QueryCompilationBasedontheFlatteningTransformation.html>
  .
  2. <http://db.inf.uni-tuebingen.de/staticfiles/publications/haskell2011.pdf>

License:             BSD3
License-file:        LICENSE
Author:              Alexander Ulrich, George Giorgidze, Jeroen Weijers, Nils Schweinsberg
Maintainer:          alex@etc-network.de
Stability:           Experimental
Category:            Database
Build-type:          Simple

Extra-source-files:  examples/Example01.hs
                     examples/Example02.hs
                     examples/Example03.hs
                     examples/dshify-tpch.sql
                     README.md

Cabal-version:       >= 1.8

Flag debugcomp
  Description: Print debugging information for comprehension rewrites
  Default:     False

Flag debuggraph
  Description: Print debugging information for graph rewrites
  Default:     False

Library
  Extensions:        CPP
  Build-depends:     base                         >= 4.8 && < 5,
                     random                       >= 1.1,
                     process                      >= 1.2,
                     template-haskell             >= 2.9,
                     containers                   >= 0.5,
                     mtl                          >= 2.1,
                     time                         >= 1.4,
                     bytestring                   >= 0.10,
                     text                         >= 1.2,
                     aeson                        >= 0.8,
                     kure                         >= 2.16,
                     either                       >= 4.0,
                     semigroups                   >= 0.16,
                     ansi-wl-pprint               >= 0.6.7.2,
                     dlist                        >= 0.7,
                     Decimal                      >= 0.4,
                     QuickCheck                   >= 2.7,
                     HUnit                        >= 1.2,
                     test-framework               >= 0.8,
                     test-framework-quickcheck2   >= 0.3,
                     test-framework-hunit         >= 0.3,
                     vector                       >= 0.10,
                     hashable                     >= 1.2,
                     unordered-containers         >= 0.2,

                     algebra-dag                  >= 0.1.1

  Hs-source-dirs:    src

  if flag(debugcomp)
    CPP-Options:     -DDEBUGCOMP

  if flag(debuggraph)
    CPP-Options:     -DDEBUGGRAPH

  GHC-Options:       -Wall -fno-warn-orphans -fprof-auto -O2

  Exposed-modules:   Database.DSH
                     Database.DSH.Compiler
                     Database.DSH.Backend
                     Database.DSH.Tests
                     Database.DSH.VL
                     Database.DSH.Common.QueryPlan
                     Database.DSH.Common.Opt
                     Database.DSH.Common.Type
                     Database.DSH.Common.Vector
                     Database.DSH.Common.Lang
                     Database.DSH.Common.Impossible

  Other-modules:     Database.DSH.Frontend.Internals
                     Database.DSH.Frontend.Externals
                     Database.DSH.Frontend.TH
                     Database.DSH.Frontend.TupleTypes
                     Database.DSH.Frontend.Builtins
                     Database.DSH.Translate.Frontend2CL
                     Database.DSH.Execute.TH
                     Database.DSH.Execute

                     Database.DSH.Common.Nat
                     Database.DSH.Common.Pretty
                     Database.DSH.Common.RewriteM
                     Database.DSH.Common.Kure
                     Database.DSH.Common.TH

                     Database.DSH.CL.Lang
                     Database.DSH.CL.Kure
                     Database.DSH.CL.Primitives
                     Database.DSH.CL.Opt
                     Database.DSH.CL.Opt.Auxiliary
                     Database.DSH.CL.Opt.PostProcess
                     Database.DSH.CL.Opt.LoopInvariant
                     Database.DSH.CL.Opt.PredPushdown
                     Database.DSH.CL.Opt.Normalize
                     Database.DSH.CL.Opt.CompNormalization
                     Database.DSH.CL.Opt.PartialEval
                     Database.DSH.CL.Opt.FlatJoin
                     Database.DSH.CL.Opt.ThetaJoin
                     Database.DSH.CL.Opt.SemiJoin
                     Database.DSH.CL.Opt.AntiJoin
                     Database.DSH.CL.Opt.NestJoin
                     Database.DSH.CL.Opt.Resugar
                     Database.DSH.FKL.Lang
                     Database.DSH.FKL.Primitives
                     Database.DSH.FKL.Rewrite
                     Database.DSH.FKL.Kure
                     Database.DSH.NKL.Lang
                     Database.DSH.NKL.Kure
                     Database.DSH.NKL.Rewrite
                     Database.DSH.NKL.Primitives
                     Database.DSH.Translate.CL2NKL
                     Database.DSH.Translate.FKL2VL
                     Database.DSH.Translate.NKL2FKL
                     Database.DSH.Translate.VL2Algebra

                     Database.DSH.VL.Lang
                     Database.DSH.VL.Render.Dot
                     Database.DSH.VL.VectorAlgebra
                     Database.DSH.VL.Vectorize
                     Database.DSH.VL.Primitives

                     Database.DSH.VL.Opt.Properties.BottomUp
                     Database.DSH.VL.Opt.Properties.Card
                     Database.DSH.VL.Opt.Properties.Common
                     Database.DSH.VL.Opt.Properties.Const
                     Database.DSH.VL.Opt.Properties.Empty
                     Database.DSH.VL.Opt.Properties.ReqColumns
                     Database.DSH.VL.Opt.Properties.TopDown
                     Database.DSH.VL.Opt.Properties.Types
                     Database.DSH.VL.Opt.Properties.VectorType
                     Database.DSH.VL.Opt.OptimizeVL
                     Database.DSH.VL.Opt.Rewrite.Common
                     Database.DSH.VL.Opt.Rewrite.Expressions
                     Database.DSH.VL.Opt.Rewrite.PruneEmpty
                     Database.DSH.VL.Opt.Rewrite.Redundant
                     Database.DSH.VL.Opt.Rewrite.Aggregation
                     Database.DSH.VL.Opt.Rewrite.Window
                     Database.DSH.VL.Opt.Rewrite.Unused

                     Database.DSH.Tests.Common
                     Database.DSH.Tests.ComprehensionTests
                     Database.DSH.Tests.LawTests
                     Database.DSH.Tests.CombinatorTests
                     Database.DSH.Tests.DSHComprehensions

executable vldot
    Main-is: Database/DSH/Tools/VLDotGen.hs
    GHC-Options:      -Wall -fno-warn-orphans
    hs-source-dirs:   src
    build-depends:    base                >= 4.8 && < 5,
                      mtl                 >= 2.1,
                      aeson               >= 0.8,
                      time                >= 1.4,
                      containers          >= 0.5,
                      template-haskell    >= 2.9,
                      bytestring          >= 0.10,
                      Decimal             >= 0.4,
                      ansi-wl-pprint      >= 0.6.7.2,
                      semigroups          >= 0.16,
                      text                >= 1.2,
                      vector              >= 0.10,

                      algebra-dag          >= 0.1
    GHC-Options: -Wall -fno-warn-orphans

source-repository head
    type:     git
    location: https://github.com/ulricha/dsh