on cf4ddc0 help sign in
reflex/reflex.cabal
487 lines 12 kB history raw
1Name: reflex
2Version: 0.7.1.0
3Synopsis: Higher-order Functional Reactive Programming
4Description:
5 Interactive programs without callbacks or side-effects.
6 Functional Reactive Programming (FRP) uses composable events and time-varying
7 values to describe interactive systems as pure functions.
8 Just like other pure functional code, functional reactive code is easier
9 to get right on the first try, maintain, and reuse.
10 .
11 Reflex is a fully-deterministic, higher-order Functional Reactive Programming
12 interface and an engine that efficiently implements that interface.
13 .
14 <https://reflex-frp.org>
15License: BSD3
16License-file: LICENSE
17Author: Ryan Trinkle
18Maintainer: ryan.trinkle@gmail.com
19Stability: Experimental
20Category: FRP
21Build-type: Simple
22Cabal-version: 1.22
23homepage: https://reflex-frp.org
24bug-reports: https://github.com/reflex-frp/reflex/issues
25extra-source-files:
26 README.md
27 Quickref.md
28 ChangeLog.md
30tested-with:
31 GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.1,
32 GHCJS ==8.4
34flag use-reflex-optimizer
35 description: Use the GHC plugin Reflex.Optimizer on some of the modules in the package. This is still experimental.
36 default: False
37 manual: True
39flag use-template-haskell
40 description: Use template haskell to generate lenses
41 default: True
42 manual: True
44flag debug-trace-events
45 description: Add instrumentation that outputs the stack trace of the definition of an event whenever it is subscribed to. Warning: It is very slow!
46 default: False
47 manual: True
49flag fast-weak
50 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
51 default: False
52 manual: True
54flag debug-propagation
55 description: Enable debugging of spider internals
56 default: False
57 manual: True
59flag debug-cycles
60 description: Enable debugging of event cycles
61 default: False
62 manual: True
64flag split-these
65 description: Use split these/semialign packages
66 manual: False
67 default: True
69library
70 default-language: Haskell2010
71 hs-source-dirs: src
72 build-depends:
73 MemoTrie == 0.6.*,
74 base >= 4.9 && < 4.14,
75 bifunctors >= 5.2 && < 5.6,
76 comonad >= 5.0.4 && < 5.1,
77 constraints-extras >= 0.3 && < 0.4,
78 containers >= 0.6 && < 0.7,
79 data-default >= 0.5 && < 0.8,
80 dependent-map >= 0.3 && < 0.4,
81 exception-transformers == 0.4.*,
82 lens >= 4.7 && < 5,
83 monad-control >= 1.0.1 && < 1.1,
84 mtl >= 2.1 && < 2.3,
85 patch >= 0.0.1 && < 0.1,
86 prim-uniq >= 0.1.0.1 && < 0.3,
87 primitive >= 0.5 && < 0.8,
88 profunctors >= 5.3 && < 5.6,
89 random == 1.1.*,
90 ref-tf == 0.4.*,
91 reflection == 2.1.*,
92 semigroupoids >= 4.0 && < 6,
93 stm >= 2.4 && < 2.6,
94 syb >= 0.5 && < 0.8,
95 time >= 1.4 && < 1.10,
96 transformers >= 0.5.6.0 && < 0.6,
97 unbounded-delays >= 0.1.0.0 && < 0.2,
98 witherable >= 0.3 && < 0.4
100 if flag(split-these)
101 build-depends: these >= 1 && <1.2,
102 semialign >=1 && <1.2,
103 monoidal-containers >= 0.6 && < 0.7
104 else
105 build-depends: these >= 0.4 && <0.9,
106 monoidal-containers == 0.4.0.0
108 exposed-modules:
109 Control.Monad.ReaderIO
110 Data.AppendMap,
111 Data.FastMutableIntMap,
112 Data.FastWeakBag,
113 Data.Map.Misc,
114 Data.WeakBag,
115 Reflex,
116 Reflex.Class,
117 Reflex.Adjustable.Class,
118 Reflex.BehaviorWriter.Base,
119 Reflex.BehaviorWriter.Class,
120 Reflex.Collection,
121 Reflex.Dynamic,
122 Reflex.Dynamic.Uniq,
123 Reflex.DynamicWriter,
124 Reflex.DynamicWriter.Base,
125 Reflex.DynamicWriter.Class,
126 Reflex.EventWriter,
127 Reflex.EventWriter.Base,
128 Reflex.EventWriter.Class,
129 Reflex.FastWeak,
130 Reflex.FunctorMaybe,
131 Reflex.Host.Class,
132 Reflex.Host.Headless,
133 Reflex.Network,
134 Reflex.NotReady.Class,
135 Reflex.PerformEvent.Base,
136 Reflex.PerformEvent.Class,
137 Reflex.PostBuild.Base,
138 Reflex.PostBuild.Class,
139 Reflex.Profiled,
140 Reflex.Pure,
141 Reflex.Query.Base,
142 Reflex.Query.Class,
143 Reflex.Requester.Base,
144 Reflex.Requester.Class,
145 Reflex.Spider,
146 Reflex.Spider.Internal,
147 Reflex.Time,
148 Reflex.TriggerEvent.Base,
149 Reflex.TriggerEvent.Class,
150 Reflex.Widget.Basic,
151 Reflex.Workflow
153 reexported-modules:
154 patch:Data.Functor.Misc,
155 patch:Data.Patch as Reflex.Patch,
156 patch:Data.Patch.Class as Reflex.Patch.Class,
157 patch:Data.Patch.DMap as Reflex.Patch.DMap,
158 patch:Data.Patch.DMapWithMove as Reflex.Patch.DMapWithMove,
159 patch:Data.Patch.IntMap as Reflex.Patch.IntMap,
160 patch:Data.Patch.Map as Reflex.Patch.Map,
161 patch:Data.Patch.MapWithMove as Reflex.Patch.MapWithMove
163 ghc-options: -Wall -fwarn-redundant-constraints -fwarn-tabs -funbox-strict-fields -O2 -fspecialise-aggressively
165 if flag(debug-trace-events)
166 cpp-options: -DDEBUG_TRACE_EVENTS
167 build-depends:
168 bytestring >= 0.10.8 && < 0.11
170 if flag(use-reflex-optimizer)
171 cpp-options: -DUSE_REFLEX_OPTIMIZER
172 build-depends: ghc
173 exposed-modules: Reflex.Optimizer
175 if flag(debug-propagation)
176 cpp-options: -DDEBUG -DDEBUG_TRACE_PROPAGATION -DDEBUG_TRACE_INVALIDATION
178 if flag(debug-cycles)
179 cpp-options: -DDEBUG_CYCLES
181 if flag(use-template-haskell)
182 cpp-options: -DUSE_TEMPLATE_HASKELL
183 build-depends:
184 dependent-sum >= 0.6 && < 0.8,
185 haskell-src-exts >= 1.16 && < 1.24,
186 haskell-src-meta >= 0.6 && < 0.9,
187 template-haskell >= 2.9 && < 2.16
188 exposed-modules:
189 Reflex.Dynamic.TH
190 other-extensions: TemplateHaskell
191 else
192 build-depends:
193 dependent-sum >= 0.6 && < 0.8
195 if flag(fast-weak) && impl(ghcjs)
196 cpp-options: -DGHCJS_FAST_WEAK
198 if impl(ghcjs)
199 build-depends:
200 ghcjs-base == 0.2.*
202test-suite semantics
203 default-language: Haskell2010
204 type: exitcode-stdio-1.0
205 main-is: semantics.hs
206 hs-source-dirs: test
207 ghc-options: -O2 -Wall -rtsopts
208 build-depends:
209 base,
210 bifunctors,
211 containers,
212 deepseq,
213 dependent-map,
214 dependent-sum,
215 mtl,
216 ref-tf,
217 reflex,
218 split,
219 transformers
220 other-modules:
221 Reflex.Bench.Focused
222 Reflex.Plan.Pure
223 Reflex.Plan.Reflex
224 Reflex.Test
225 Reflex.Test.Micro
226 Reflex.TestPlan
228test-suite CrossImpl
229 default-language: Haskell2010
230 type: exitcode-stdio-1.0
231 main-is: Reflex/Test/CrossImpl.hs
232 hs-source-dirs: test
233 ghc-options: -O2 -Wall -rtsopts
234 build-depends:
235 base,
236 containers,
237 dependent-map,
238 dependent-sum,
239 deepseq,
240 mtl,
241 transformers,
242 ref-tf,
243 reflex
244 other-modules:
245 Reflex.Test
246 Reflex.TestPlan
247 Reflex.Plan.Reflex
248 Reflex.Plan.Pure
250test-suite hlint
251 default-language: Haskell2010
252 type: exitcode-stdio-1.0
253 main-is: hlint.hs
254 hs-source-dirs: test
255 build-depends: base
256 , directory
257 , filepath
258 , filemanip
259 , hlint (< 2.1 || >= 2.2.2) && < 3
260 if impl(ghcjs)
261 buildable: False
263test-suite EventWriterT
264 default-language: Haskell2010
265 type: exitcode-stdio-1.0
266 main-is: EventWriterT.hs
267 hs-source-dirs: test
268 build-depends: base
269 , containers
270 , deepseq
271 , dependent-map
272 , dependent-sum
273 , lens
274 , mtl
275 , these
276 , transformers
277 , reflex
278 , ref-tf
280 if flag(split-these)
281 build-depends: these-lens
283 other-modules:
284 Test.Run
287test-suite DebugCycles
288 default-language: Haskell2010
289 type: exitcode-stdio-1.0
290 main-is: DebugCycles.hs
291 hs-source-dirs: test
292 ghc-options: -threaded
293 build-depends: base
294 , containers
295 , deepseq
296 , dependent-map
297 , dependent-sum
298 , hspec
299 , lens
300 , mtl
301 , these
302 , transformers
303 , reflex
304 , ref-tf
305 , witherable
306 , proctest
309 if flag(split-these)
310 build-depends: these-lens, semialign
312 other-modules:
313 Test.Run
316test-suite RequesterT
317 default-language: Haskell2010
318 type: exitcode-stdio-1.0
319 main-is: RequesterT.hs
320 hs-source-dirs: test
321 build-depends: base
322 , constraints
323 , constraints-extras
324 , containers
325 , deepseq
326 , dependent-map
327 , dependent-sum
328 , lens
329 , mtl
330 , ref-tf
331 , reflex
332 , text
333 , these
334 , transformers
336 if flag(split-these)
337 build-depends: these-lens
339 other-modules:
340 Reflex.TestPlan
341 Reflex.Plan.Pure
342 Test.Run
344test-suite Adjustable
345 default-language: Haskell2010
346 type: exitcode-stdio-1.0
347 main-is: Adjustable.hs
348 hs-source-dirs: test
349 build-depends: base
350 , containers
351 , dependent-sum
352 , reflex
353 , ref-tf
354 , these
356 other-modules:
357 Test.Run
359test-suite QueryT
360 default-language: Haskell2010
361 type: exitcode-stdio-1.0
362 main-is: QueryT.hs
363 hs-source-dirs: test
364 build-depends: base
365 , containers
366 , dependent-map
367 , dependent-sum
368 , deepseq
369 , lens
370 , monoidal-containers
371 , mtl
372 , patch
373 , ref-tf
374 , reflex
375 , these
376 , transformers
378 if flag(split-these)
379 build-depends: semialign, these-lens
381 other-modules:
382 Test.Run
383 Reflex.TestPlan
384 Reflex.Plan.Reflex
385 Reflex.Plan.Pure
387test-suite GC-Semantics
388 default-language: Haskell2010
389 type: exitcode-stdio-1.0
390 main-is: GC.hs
391 hs-source-dirs: test
392 build-depends: base
393 , containers
394 , dependent-sum
395 , dependent-map
396 , deepseq
397 , mtl
398 , patch
399 , these
400 , transformers
401 , reflex
402 , ref-tf
404 if flag(split-these)
405 build-depends: semialign
407 other-modules:
408 Reflex.Plan.Pure
409 Reflex.Plan.Reflex
410 Reflex.TestPlan
411 Test.Run
413test-suite rootCleanup
414 default-language: Haskell2010
415 type: exitcode-stdio-1.0
416 main-is: rootCleanup.hs
417 hs-source-dirs: test
418 build-depends: base
419 , containers
420 , deepseq
421 , dependent-sum
422 , mtl
423 , reflex
424 , ref-tf
425 , these
426 other-modules:
427 Reflex.Plan.Pure
428 Reflex.TestPlan
429 Test.Run
431benchmark spider-bench
432 default-language: Haskell2010
433 type: exitcode-stdio-1.0
434 hs-source-dirs: bench test
435 main-is: Main.hs
436 ghc-options: -Wall -O2 -rtsopts
437 build-depends:
438 base,
439 containers,
440 criterion,
441 deepseq,
442 dependent-map,
443 dependent-sum,
444 ref-tf,
445 mtl,
446 primitive,
447 reflex,
448 split,
449 stm,
450 transformers
451 other-modules:
452 Reflex.TestPlan
453 Reflex.Plan.Reflex
454 Reflex.Bench.Focused
456benchmark saulzar-bench
457 default-language: Haskell2010
458 type: exitcode-stdio-1.0
459 hs-source-dirs: bench test
460 c-sources: bench-cbits/checkCapability.c
461 main-is: RunAll.hs
462 ghc-options: -Wall -O2 -rtsopts -threaded
463 build-depends:
464 base,
465 containers,
466 criterion,
467 deepseq,
468 dependent-map,
469 dependent-sum,
470 loch-th,
471 mtl,
472 primitive,
473 process,
474 ref-tf,
475 reflex,
476 split,
477 stm,
478 time,
479 transformers
480 other-modules:
481 Reflex.TestPlan
482 Reflex.Plan.Reflex
483 Reflex.Bench.Focused
485source-repository head
486 type: git
487 location: https://github.com/reflex-frp/reflex