packages feed

dynamic-pipeline-0.1.0.0: dynamic-pipeline.cabal

cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.34.4.
--
-- see: https://github.com/sol/hpack
--
-- hash: d407255a4c8f1348472a5c3ffd16fa33771e9f71937861df2783d3045db1b031

name:           dynamic-pipeline
version:        0.1.0.0
synopsis:       Library Type Safe implementation of Dynamic Pipeline Paradigm (DPP).
description:    @dynamic-pipeline@ is a __/Type Safe/__ Dynamic and Parallel Streaming Library, which is an implementation of __Dynamic Pipeline Paradigm (DPP)__ 
                proposed in this paper [DPP](https://biblioteca.sistedes.es/articulo/the-dynamic-pipeline-paradigm/).
                .
                The aim of this tool is to provide all the __Type level__ constructs to guide the user in building a /DPP/ flow to solve any algorithm that fits on 
                this computational model. 
                .
                The idea behind the implementation is similar to other __Type level__ programming libraries like [@servant@](https://hackage.haskell.org/package/servant)
                . 
                Some of the feature of this library includes:
                .
                * /Small Number of Dependencies/: Dependencies have been kept to minimum in order to reduce compilation time.
                .
                * /Type Level Encoding/: As it was explained before, there is an intensive use of Type Level techniques in the Library in order to guide the user in 
                defining the Flow Model and fill the gaps with the combinators provided and the Compiler indications. On the other hand some /Type Custom Errors/ have been
                encoded in the Library in order to provide meaningful messages about the Data Flow Grammar Defined in /DPP/.
                .
                * /Stream Parallelization/: __DPP__ model follows a /Parallelization Pipeline/ approach with the use of intermediate Channels. All the burden have been hidden 
                for the user in order to reduce complexity and focus on the algorithm problem implementations.
                .
                * /Safe Scoped Execution/: Use of Existential to define the Scope execution of /DPP/ reducing even more the complexity to the user.
                .
                Import "DynamicPipeline" for using the library.
                .
                * /Examples/: <src/examples examples directory> in the package
category:       Data,Data Flow,Pipes,Streaming,Parallel,Type-safe
homepage:       https://github.com/jproyo/dynamic-pipeline#readme
bug-reports:    https://github.com/jproyo/dynamic-pipeline/issues
author:         Juan Pablo Royo Sales
maintainer:     juanpablo.royo@gmail.com
copyright:      Copyright (C) 2021 Juan Pablo Royo Sales
license:        BSD3
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md

source-repository head
  type: git
  location: https://github.com/jproyo/dynamic-pipeline

library
  exposed-modules:
      DynamicPipeline
  other-modules:
      DynamicPipeline.Channel
      DynamicPipeline.Flow
      DynamicPipeline.Stage
  hs-source-dirs:
      src
  default-extensions:
      ConstraintKinds
      DataKinds
      DefaultSignatures
      DeriveAnyClass
      DeriveFoldable
      DeriveFunctor
      DeriveGeneric
      DeriveLift
      DeriveTraversable
      DerivingStrategies
      DerivingVia
      EmptyCase
      FlexibleContexts
      FlexibleInstances
      FunctionalDependencies
      GADTs
      GeneralizedNewtypeDeriving
      LambdaCase
      MultiParamTypeClasses
      MultiWayIf
      NoImplicitPrelude
      OverloadedStrings
      PackageImports
      PartialTypeSignatures
      PolyKinds
      Rank2Types
      RankNTypes
      RecordWildCards
      ScopedTypeVariables
      StandaloneDeriving
      TemplateHaskell
      TupleSections
      TypeApplications
      TypeOperators
      TypeFamilies
  ghc-options: -Wall -fno-warn-partial-type-signatures -fconstraint-solver-iterations=0 -fspecialise-aggressively -fexpose-all-unfoldings -flate-specialise -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -Wno-unused-top-binds -Wno-unused-foralls -fno-warn-deprecations -fno-warn-orphans
  build-depends:
      HList >=0.5.0.0
    , async >=2.1.0 && <=2.2.3
    , base >=4.7 && <5
    , bytestring >=0.10.9.0 && <=0.11.1.0
    , compdata >=0.10 && <=0.12.1
    , lens >=4.19 && <=5.0.1
    , relude >=0.7.0.0 && <=1.0.0.1
    , unagi-chan >=0.4.1.0
  default-language: Haskell2010

executable examples
  main-is: Main.hs
  other-modules:
      Graph.ConnComp
      Graph.ConnectedComp
      Misc.RepeatedDP
  hs-source-dirs:
      examples
  default-extensions:
      ConstraintKinds
      DataKinds
      DefaultSignatures
      DeriveAnyClass
      DeriveFoldable
      DeriveFunctor
      DeriveGeneric
      DeriveLift
      DeriveTraversable
      DerivingStrategies
      DerivingVia
      EmptyCase
      FlexibleContexts
      FlexibleInstances
      FunctionalDependencies
      GADTs
      GeneralizedNewtypeDeriving
      LambdaCase
      MultiParamTypeClasses
      MultiWayIf
      NoImplicitPrelude
      OverloadedStrings
      PackageImports
      PartialTypeSignatures
      PolyKinds
      Rank2Types
      RankNTypes
      RecordWildCards
      ScopedTypeVariables
      StandaloneDeriving
      TemplateHaskell
      TupleSections
      TypeApplications
      TypeOperators
      TypeFamilies
  ghc-options: -Wall -fno-warn-partial-type-signatures -fconstraint-solver-iterations=0 -fspecialise-aggressively -fexpose-all-unfoldings -flate-specialise -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -Wno-unused-top-binds -Wno-unused-foralls -fno-warn-deprecations -fno-warn-orphans -threaded -O3 -rtsopts -with-rtsopts=-N
  build-depends:
      HList
    , async
    , base >=4.7 && <5
    , bytestring >=0.10.9.0 && <=0.11.1.0
    , compdata >=0.10 && <=0.12.1
    , dynamic-pipeline
    , lens >=4.19 && <=5.0.1
    , optparse-applicative
    , relude >=0.7.0.0 && <=1.0.0.1
    , trifecta
    , unagi-chan >=0.4.1.0
  default-language: Haskell2010

test-suite conn-comp-tests
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Paths_dynamic_pipeline
  hs-source-dirs:
      test
  default-extensions:
      ConstraintKinds
      DataKinds
      DefaultSignatures
      DeriveAnyClass
      DeriveFoldable
      DeriveFunctor
      DeriveGeneric
      DeriveLift
      DeriveTraversable
      DerivingStrategies
      DerivingVia
      EmptyCase
      FlexibleContexts
      FlexibleInstances
      FunctionalDependencies
      GADTs
      GeneralizedNewtypeDeriving
      LambdaCase
      MultiParamTypeClasses
      MultiWayIf
      NoImplicitPrelude
      OverloadedStrings
      PackageImports
      PartialTypeSignatures
      PolyKinds
      Rank2Types
      RankNTypes
      RecordWildCards
      ScopedTypeVariables
      StandaloneDeriving
      TemplateHaskell
      TupleSections
      TypeApplications
      TypeOperators
      TypeFamilies
  ghc-options: -Wall -fno-warn-partial-type-signatures -fconstraint-solver-iterations=0 -fspecialise-aggressively -fexpose-all-unfoldings -flate-specialise -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -Wno-unused-top-binds -Wno-unused-foralls -fno-warn-deprecations -fno-warn-orphans -threaded -O2 -rtsopts -with-rtsopts=-N -Wno-unused-local-binds -Wno-unused-matches
  build-tool-depends:
      hspec-discover:hspec-discover
  build-depends:
      HList >=0.5.0.0
    , QuickCheck
    , async >=2.1.0 && <=2.2.3
    , base >=4.7 && <5
    , bytestring >=0.10.9.0 && <=0.11.1.0
    , compdata >=0.10 && <=0.12.1
    , dynamic-pipeline
    , hspec ==2.*
    , lens >=4.19 && <=5.0.1
    , relude >=1.0.0.0
    , unagi-chan >=0.4.1.0
  default-language: Haskell2010