on workflow-monad help sign in
reflex/reflex.cabal
323 lines 8.2 kB history raw
1Name: reflex
2Version: 0.5
3Synopsis: Higher-order Functional Reactive Programming
4Description: Reflex is a high-performance, deterministic, higher-order Functional Reactive Programming system
5License: BSD3
6License-file: LICENSE
7Author: Ryan Trinkle
8Maintainer: ryan.trinkle@gmail.com
9Stability: Experimental
10Category: FRP
11Build-type: Simple
12Cabal-version: >=1.9.2
13homepage: https://github.com/reflex-frp/reflex
14bug-reports: https://github.com/reflex-frp/reflex/issues
16flag specialize-to-spidertimeline-global
17 description: Specialize all Reflex functions to the SpiderTimeline Global implementation. This may improve performance, but will disable all other implementations.
18 default: False
19 manual: True
21flag use-reflex-optimizer
22 description: Use the GHC plugin Reflex.Optimizer on some of the modules in the package. This is still experimental.
23 default: False
24 manual: True
26flag use-template-haskell
27 description: Use template haskell to generate lenses
28 default: True
29 manual: True
31flag expose-all-unfoldings
32 description: Build the library with -fexpose-all-unfoldings which can help client code specialize better
33 default: False
34 manual: True
36flag debug-trace-events
37 description: Add instrumentation that outputs the stack trace of the definition of an event whenever it is subscribed to. Warning: It is very slow!
38 default: False
39 manual: True
41flag experimental-dependent-sum-instances
42 description: Use experimental incoherent instances for certain forked dependent-sum typeclasses
43 default: False
44 manual: True
46flag fast-weak
47 description: Use the primitive implementation of FastWeak in GHCJS; note that this requires GHCJS to be built with FastWeak and FastWeakBag present in the RTS, which is not the default
48 default: False
49 manual: True
51library
52 hs-source-dirs: src
53 build-depends:
54 MemoTrie == 0.6.*,
55 base >= 4.7 && < 4.11,
56 bifunctors >= 5.2 && < 5.6,
57 comonad,
58 containers == 0.5.*,
59 data-default >= 0.5 && < 0.8,
60 dependent-map >= 0.2.4 && < 0.3,
61 exception-transformers == 0.4.*,
62 free == 4.12.*,
63 lens >= 4.7 && < 5,
64 monad-control >= 1.0.1 && < 1.1,
65 mtl >= 2.1 && < 2.3,
66 prim-uniq >= 0.1.0.1 && < 0.2,
67 primitive >= 0.5 && < 0.7,
68 random == 1.1.*,
69 ref-tf == 0.4.*,
70 reflection == 2.1.*,
71 semigroupoids >= 4.0 && < 6,
72 semigroups >= 0.16 && < 0.19,
73 stm == 2.4.*,
74 syb >= 0.5 && < 0.8,
75 these >= 0.4 && < 0.8,
76 time >= 1.4 && < 1.9,
77 transformers >= 0.2,
78 transformers-compat >= 0.3,
79 unbounded-delays >= 0.1.0.0 && < 0.2
81 exposed-modules:
82 Data.AppendMap,
83 Data.Map.Misc,
84 Data.Functor.Misc,
85 Data.WeakBag,
86 Data.FastWeakBag,
87 Data.FastMutableIntMap,
88 Reflex,
89 Reflex.Class,
90 Reflex.Collection,
91 Reflex.EventWriter,
92 Reflex.Dynamic,
93 Reflex.Dynamic.Uniq,
94 Reflex.DynamicWriter,
95 Reflex.FastWeak,
96 Reflex.FunctorMaybe,
97 Reflex.Host.Class,
98 Reflex.Network,
99 Reflex.NotReady.Class,
100 Reflex.Patch,
101 Reflex.Patch.Class,
102 Reflex.Patch.DMap,
103 Reflex.Patch.DMapWithMove,
104 Reflex.Patch.IntMap,
105 Reflex.Patch.Map,
106 Reflex.Patch.MapWithMove,
107 Reflex.TriggerEvent.Base,
108 Reflex.TriggerEvent.Class,
109 Reflex.PerformEvent.Base,
110 Reflex.PerformEvent.Class,
111 Reflex.PostBuild.Base,
112 Reflex.PostBuild.Class,
113 Reflex.Profiled,
114 Reflex.Query.Base,
115 Reflex.Query.Class,
116 Reflex.Requester.Base,
117 Reflex.Requester.Class,
118 Reflex.Spider,
119 Reflex.Spider.Internal,
120 Reflex.Time,
121 Reflex.Widget.Basic,
122 Reflex.Workflow
124 ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2 -fspecialise-aggressively -ddump-simpl -ddump-to-file -dsuppress-coercions -dsuppress-idinfo
125 ghc-prof-options: -fprof-auto
127 if flag(specialize-to-spidertimeline-global)
128 cpp-options: -DSPECIALIZE_TO_SPIDERTIMELINE_GLOBAL
129 else
130 exposed-modules: Reflex.Pure
132 if flag(debug-trace-events)
133 cpp-options: -DDEBUG_TRACE_EVENTS
134 build-depends: bytestring
136 if flag(use-reflex-optimizer)
137 cpp-options: -DUSE_REFLEX_OPTIMIZER
138 build-depends: ghc
139 exposed-modules: Reflex.Optimizer
141 if flag(use-template-haskell)
142 cpp-options: -DUSE_TEMPLATE_HASKELL
143 build-depends:
144 dependent-sum >= 0.3 && < 0.5,
145 haskell-src-exts >= 1.16 && < 1.21,
146 haskell-src-meta >= 0.6 && < 0.9,
147 template-haskell >= 2.9 && < 2.13
148 exposed-modules:
149 Reflex.Dynamic.TH
150 other-extensions: TemplateHaskell
151 else
152 build-depends:
153 dependent-sum == 0.4.*
155 if flag(expose-all-unfoldings)
156 ghc-options: -fexpose-all-unfoldings
158 if flag(experimental-dependent-sum-instances)
159 ghc-options: -DEXPERIMENTAL_DEPENDENT_SUM_INSTANCES
161 if flag(fast-weak) && impl(ghcjs)
162 ghc-options: -DGHCJS_FAST_WEAK
164 if impl(ghcjs)
165 build-depends: ghcjs-base
167test-suite semantics
168 type: exitcode-stdio-1.0
169 main-is: semantics.hs
170 hs-source-dirs: test
171 ghc-options: -O2 -Wall -rtsopts
172 build-depends:
173 base,
174 bifunctors,
175 containers,
176 deepseq >= 1.3 && < 1.5,
177 dependent-map,
178 dependent-sum,
179 mtl,
180 ref-tf,
181 reflex,
182 split,
183 transformers >= 0.3
184 if flag(specialize-to-spidertimeline-global)
185 buildable: False
187test-suite CrossImpl
188 type: exitcode-stdio-1.0
189 main-is: Reflex/Test/CrossImpl.hs
190 hs-source-dirs: test
191 ghc-options: -O2 -Wall -rtsopts -main-is Reflex.Test.CrossImpl.test
192 build-depends:
193 base,
194 containers,
195 dependent-map,
196 mtl,
197 ref-tf,
198 reflex
199 if flag(specialize-to-spidertimeline-global)
200 buildable: False
202test-suite hlint
203 type: exitcode-stdio-1.0
204 main-is: hlint.hs
205 hs-source-dirs: test
206 build-depends: base
207 , directory
208 , filepath
209 , filemanip
210 , hlint
211 if impl(ghcjs)
212 buildable: False
213 buildable: False
215test-suite EventWriterT
216 type: exitcode-stdio-1.0
217 main-is: EventWriterT.hs
218 hs-source-dirs: test
219 build-depends: base
220 , dependent-sum
221 , lens
222 , these
223 , transformers
224 , reflex
225 , ref-tf
227test-suite RequesterT
228 type: exitcode-stdio-1.0
229 main-is: RequesterT.hs
230 hs-source-dirs: test
231 build-depends: base
232 , dependent-sum
233 , dependent-map
234 , lens
235 , these
236 , transformers
237 , reflex
238 , ref-tf
239 buildable: False
241test-suite QueryT
242 type: exitcode-stdio-1.0
243 main-is: QueryT.hs
244 hs-source-dirs: test
245 build-depends: base
246 , containers
247 , dependent-sum
248 , dependent-map
249 , lens
250 , these
251 , transformers
252 , semigroups
253 , reflex
254 , ref-tf
256test-suite GC-Semantics
257 type: exitcode-stdio-1.0
258 main-is: GC.hs
259 hs-source-dirs: test
260 if flag(specialize-to-spidertimeline-global)
261 buildable: False
262 build-depends: base
263 , dependent-sum
264 , dependent-map
265 , these
266 , transformers
267 , reflex
268 , ref-tf
269 if impl(ghc < 8)
270 build-depends: semigroups
272test-suite rootCleanup
273 type: exitcode-stdio-1.0
274 main-is: rootCleanup.hs
275 hs-source-dirs: test
276 build-depends: base
277 , reflex
279benchmark spider-bench
280 type: exitcode-stdio-1.0
281 hs-source-dirs: bench
282 main-is: Main.hs
283 ghc-options: -Wall -O2 -rtsopts
284 build-depends:
285 base,
286 criterion == 1.1.*,
287 deepseq >= 1.3 && < 1.5,
288 dependent-map,
289 dependent-sum,
290 mtl,
291 primitive,
292 reflex,
293 stm,
294 transformers >= 0.3
296benchmark saulzar-bench
297 type: exitcode-stdio-1.0
298 hs-source-dirs: bench test
299 c-sources: bench-cbits/checkCapability.c
300 main-is: RunAll.hs
301 ghc-options: -Wall -O2 -rtsopts -threaded
302 ghc-prof-options: -fprof-auto
303 build-depends:
304 base,
305 containers == 0.5.*,
306 criterion == 1.1.*,
307 deepseq >= 1.3 && < 1.5,
308 dependent-map,
309 dependent-sum,
310 loch-th,
311 mtl,
312 primitive,
313 process,
314 ref-tf,
315 reflex,
316 split,
317 stm,
318 time,
319 transformers >= 0.3
321source-repository head
322 type: git
323 location: https://github.com/reflex-frp/reflex