-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpackage.yaml
150 lines (142 loc) · 4.24 KB
/
package.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
name: dynamic-pipeline
version: 0.3.1.3
category: Data,Data Flow,Pipes,Streaming,Parallel,Type-safe
author: Juan Pablo Royo Sales
maintainer: [email protected]
copyright: Copyright (C) 2021 Juan Pablo Royo Sales
license: BSD3
github: jproyo/dynamic-pipeline
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
.
extra-source-files:
- README.md
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
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
dependencies:
- base >= 4.7 && < 5
- async >= 2.1.0 && <= 2.2.3
- bytestring >= 0.10.9.0 && <= 0.11.1.0
- HList >= 0.5.0.0
- lens >= 4.19 && <= 5.0.1
- relude >= 0.7.0.0 && <= 1.0.0.1
- unagi-chan >= 0.4.1.0
library:
when:
- condition: false
other-modules: Paths_dynamic_pipeline
source-dirs: src
exposed-modules:
- DynamicPipeline
executables:
examples:
when:
- condition: false
other-modules: Paths_dynamic_pipeline
source-dirs:
examples
main:
Main.hs
dependencies:
- dynamic-pipeline
- async
- containers
- HList
- optparse-applicative
- trifecta
- relude
ghc-options:
- -threaded
- -O3
- -rtsopts
- -with-rtsopts=-N
tests:
conn-comp-tests:
main: Spec.hs
source-dirs:
- test
build-tools:
- hspec-discover
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
- -Wno-unused-local-binds
- -Wno-unused-matches
dependencies:
- dynamic-pipeline
- hspec == 2.*
- QuickCheck
- relude >= 1.0.0.0