on 78ee62a help sign in
reflex/reflex.cabal
496 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.5,
81 exception-transformers == 0.4.*,
82 lens >= 4.7 && < 5,
83 mmorph >= 1.0 && < 1.2,
84 monad-control >= 1.0.1 && < 1.1,
85 mtl >= 2.1 && < 2.3,
86 patch >= 0.0.1 && < 0.1,
87 prim-uniq >= 0.1.0.1 && < 0.3,
88 primitive >= 0.5 && < 0.8,
89 profunctors >= 5.3 && < 5.6,
90 random == 1.1.*,
91 ref-tf == 0.4.*,
92 reflection == 2.1.*,
93 semigroupoids >= 4.0 && < 6,
94 stm >= 2.4 && < 2.6,
95 syb >= 0.5 && < 0.8,
96 time >= 1.4 && < 1.10,
97 transformers >= 0.5.6.0 && < 0.6,
98 unbounded-delays >= 0.1.0.0 && < 0.2,
99 witherable >= 0.3 && < 0.4
101 if flag(split-these)
102 build-depends: these >= 1 && <1.2,
103 semialign >=1 && <1.2,
104 monoidal-containers >= 0.6 && < 0.7
105 else
106 build-depends: these >= 0.4 && <0.9,
107 monoidal-containers == 0.4.0.0
109 exposed-modules:
110 Control.Monad.ReaderIO
111 Data.AppendMap,
112 Data.FastMutableIntMap,
113 Data.FastWeakBag,
114 Data.Map.Misc,
115 Data.WeakBag,
116 Reflex,
117 Reflex.Class,
118 Reflex.Adjustable.Class,
119 Reflex.BehaviorWriter.Base,
120 Reflex.BehaviorWriter.Class,
121 Reflex.Collection,
122 Reflex.Dynamic,
123 Reflex.Dynamic.Uniq,
124 Reflex.DynamicWriter,
125 Reflex.DynamicWriter.Base,
126 Reflex.DynamicWriter.Class,
127 Reflex.EventWriter,
128 Reflex.EventWriter.Base,
129 Reflex.EventWriter.Class,
130 Reflex.FastWeak,
131 Reflex.FunctorMaybe,
132 Reflex.Host.Class,
133 Reflex.Host.Headless,
134 Reflex.Network,
135 Reflex.NotReady.Class,
136 Reflex.PerformEvent.Base,
137 Reflex.PerformEvent.Class,
138 Reflex.PostBuild.Base,
139 Reflex.PostBuild.Class,
140 Reflex.Profiled,
141 Reflex.Pure,
142 Reflex.Query.Base,
143 Reflex.Query.Class,
144 Reflex.Requester.Base,
145 Reflex.Requester.Class,
146 Reflex.Spider,
147 Reflex.Spider.Internal,
148 Reflex.Time,
149 Reflex.TriggerEvent.Base,
150 Reflex.TriggerEvent.Class,
151 Reflex.Widget.Basic,
152 Reflex.Workflow
154 reexported-modules:
155 patch:Data.Functor.Misc,
156 patch:Data.Patch as Reflex.Patch,
157 patch:Data.Patch.Class as Reflex.Patch.Class,
158 patch:Data.Patch.DMap as Reflex.Patch.DMap,
159 patch:Data.Patch.DMapWithMove as Reflex.Patch.DMapWithMove,
160 patch:Data.Patch.IntMap as Reflex.Patch.IntMap,
161 patch:Data.Patch.Map as Reflex.Patch.Map,
162 patch:Data.Patch.MapWithMove as Reflex.Patch.MapWithMove
164 ghc-options: -Wall -fwarn-redundant-constraints -fwarn-tabs -funbox-strict-fields -O2 -fspecialise-aggressively
166 if flag(debug-trace-events)
167 cpp-options: -DDEBUG_TRACE_EVENTS
168 build-depends:
169 bytestring >= 0.10.8 && < 0.11
171 if flag(use-reflex-optimizer)
172 cpp-options: -DUSE_REFLEX_OPTIMIZER
173 build-depends: ghc
174 exposed-modules: Reflex.Optimizer
176 if flag(debug-propagation)
177 cpp-options: -DDEBUG -DDEBUG_TRACE_PROPAGATION -DDEBUG_TRACE_INVALIDATION
179 if flag(debug-cycles)
180 cpp-options: -DDEBUG_CYCLES
182 if flag(use-template-haskell)
183 cpp-options: -DUSE_TEMPLATE_HASKELL
184 build-depends:
185 dependent-sum >= 0.6 && < 0.8,
186 haskell-src-exts >= 1.16 && < 1.24,
187 haskell-src-meta >= 0.6 && < 0.9,
188 template-haskell >= 2.9 && < 2.16
189 exposed-modules:
190 Reflex.Dynamic.TH
191 other-extensions: TemplateHaskell
192 else
193 build-depends:
194 dependent-sum >= 0.6 && < 0.8
196 if flag(fast-weak) && impl(ghcjs)
197 cpp-options: -DGHCJS_FAST_WEAK
199 if impl(ghcjs)
200 build-depends:
201 ghcjs-base == 0.2.*
203test-suite semantics
204 default-language: Haskell2010
205 type: exitcode-stdio-1.0
206 main-is: semantics.hs
207 hs-source-dirs: test
208 ghc-options: -O2 -Wall -rtsopts
209 build-depends:
210 base,
211 bifunctors,
212 containers,
213 deepseq,
214 dependent-map,
215 dependent-sum,
216 mtl,
217 ref-tf,
218 reflex,
219 split,
220 transformers
221 other-modules:
222 Reflex.Bench.Focused
223 Reflex.Plan.Pure
224 Reflex.Plan.Reflex
225 Reflex.Test
226 Reflex.Test.Micro
227 Reflex.TestPlan
229test-suite CrossImpl
230 default-language: Haskell2010
231 type: exitcode-stdio-1.0
232 main-is: Reflex/Test/CrossImpl.hs
233 hs-source-dirs: test
234 ghc-options: -O2 -Wall -rtsopts
235 build-depends:
236 base,
237 containers,
238 dependent-map,
239 dependent-sum,
240 deepseq,
241 mtl,
242 transformers,
243 ref-tf,
244 reflex
245 other-modules:
246 Reflex.Test
247 Reflex.TestPlan
248 Reflex.Plan.Reflex
249 Reflex.Plan.Pure
251test-suite hlint
252 default-language: Haskell2010
253 type: exitcode-stdio-1.0
254 main-is: hlint.hs
255 hs-source-dirs: test
256 build-depends: base
257 , directory
258 , filepath
259 , filemanip
260 , hlint (< 2.1 || >= 2.2.2) && < 3
261 if impl(ghcjs)
262 buildable: False
264test-suite EventWriterT
265 default-language: Haskell2010
266 type: exitcode-stdio-1.0
267 main-is: EventWriterT.hs
268 hs-source-dirs: test
269 build-depends: base
270 , containers
271 , deepseq
272 , dependent-map
273 , dependent-sum
274 , lens
275 , mtl
276 , these
277 , transformers
278 , reflex
279 , ref-tf
281 if flag(split-these)
282 build-depends: these-lens
284 other-modules:
285 Test.Run
288test-suite DebugCycles
289 default-language: Haskell2010
290 type: exitcode-stdio-1.0
291 main-is: DebugCycles.hs
292 hs-source-dirs: test
293 ghc-options: -threaded
294 build-depends: base
295 , containers
296 , deepseq
297 , dependent-map
298 , dependent-sum
299 , hspec
300 , lens
301 , mtl
302 , these
303 , transformers
304 , reflex
305 , ref-tf
306 , witherable
307 , proctest
310 if flag(split-these)
311 build-depends: these-lens, semialign
313 other-modules:
314 Test.Run
317test-suite RequesterT
318 default-language: Haskell2010
319 type: exitcode-stdio-1.0
320 main-is: RequesterT.hs
321 hs-source-dirs: test
322 build-depends: base
323 , constraints
324 , constraints-extras
325 , containers
326 , deepseq
327 , dependent-map
328 , dependent-sum
329 , lens
330 , mtl
331 , ref-tf
332 , reflex
333 , text
334 , these
335 , transformers
337 if flag(split-these)
338 build-depends: these-lens
340 other-modules:
341 Reflex.TestPlan
342 Reflex.Plan.Pure
343 Test.Run
345test-suite Headless
346 default-language: Haskell2010
347 type: exitcode-stdio-1.0
348 main-is: Headless.hs
349 hs-source-dirs: test
350 build-depends: base
351 , reflex
353test-suite Adjustable
354 default-language: Haskell2010
355 type: exitcode-stdio-1.0
356 main-is: Adjustable.hs
357 hs-source-dirs: test
358 build-depends: base
359 , containers
360 , dependent-sum
361 , reflex
362 , ref-tf
363 , these
365 other-modules:
366 Test.Run
368test-suite QueryT
369 default-language: Haskell2010
370 type: exitcode-stdio-1.0
371 main-is: QueryT.hs
372 hs-source-dirs: test
373 build-depends: base
374 , containers
375 , dependent-map
376 , dependent-sum
377 , deepseq
378 , lens
379 , monoidal-containers
380 , mtl
381 , patch
382 , ref-tf
383 , reflex
384 , these
385 , transformers
387 if flag(split-these)
388 build-depends: semialign, these-lens
390 other-modules:
391 Test.Run
392 Reflex.TestPlan
393 Reflex.Plan.Reflex
394 Reflex.Plan.Pure
396test-suite GC-Semantics
397 default-language: Haskell2010
398 type: exitcode-stdio-1.0
399 main-is: GC.hs
400 hs-source-dirs: test
401 build-depends: base
402 , containers
403 , dependent-sum
404 , dependent-map
405 , deepseq
406 , mtl
407 , patch
408 , these
409 , transformers
410 , reflex
411 , ref-tf
413 if flag(split-these)
414 build-depends: semialign
416 other-modules:
417 Reflex.Plan.Pure
418 Reflex.Plan.Reflex
419 Reflex.TestPlan
420 Test.Run
422test-suite rootCleanup
423 default-language: Haskell2010
424 type: exitcode-stdio-1.0
425 main-is: rootCleanup.hs
426 hs-source-dirs: test
427 build-depends: base
428 , containers
429 , deepseq
430 , dependent-sum
431 , mtl
432 , reflex
433 , ref-tf
434 , these
435 other-modules:
436 Reflex.Plan.Pure
437 Reflex.TestPlan
438 Test.Run
440benchmark spider-bench
441 default-language: Haskell2010
442 type: exitcode-stdio-1.0
443 hs-source-dirs: bench test
444 main-is: Main.hs
445 ghc-options: -Wall -O2 -rtsopts
446 build-depends:
447 base,
448 containers,
449 criterion,
450 deepseq,
451 dependent-map,
452 dependent-sum,
453 ref-tf,
454 mtl,
455 primitive,
456 reflex,
457 split,
458 stm,
459 transformers
460 other-modules:
461 Reflex.TestPlan
462 Reflex.Plan.Reflex
463 Reflex.Bench.Focused
465benchmark saulzar-bench
466 default-language: Haskell2010
467 type: exitcode-stdio-1.0
468 hs-source-dirs: bench test
469 c-sources: bench-cbits/checkCapability.c
470 main-is: RunAll.hs
471 ghc-options: -Wall -O2 -rtsopts -threaded
472 build-depends:
473 base,
474 containers,
475 criterion,
476 deepseq,
477 dependent-map,
478 dependent-sum,
479 loch-th,
480 mtl,
481 primitive,
482 process,
483 ref-tf,
484 reflex,
485 split,
486 stm,
487 time,
488 transformers
489 other-modules:
490 Reflex.TestPlan
491 Reflex.Plan.Reflex
492 Reflex.Bench.Focused
494source-repository head
495 type: git
496 location: https://github.com/reflex-frp/reflex