on postpone help sign in
reflex/reflex.cabal
239 lines 6.0 kB history raw
1Name: reflex
2Version: 0.5.0
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
41library
42 hs-source-dirs: src
43 build-depends:
44 MemoTrie == 0.6.*,
45 base >= 4.7 && < 4.11,
46 bifunctors >= 5.2 && < 5.5,
47 containers == 0.5.*,
48 data-default >= 0.5 && < 0.8,
49 dependent-map >= 0.2.4 && < 0.3,
50 exception-transformers == 0.4.*,
51 lens >= 4.7 && < 5,
52 monad-control >= 1.0.1 && < 1.1,
53 mtl >= 2.1 && < 2.3,
54 prim-uniq >= 0.1.0.1 && < 0.2,
55 primitive >= 0.5 && < 0.7,
56 ref-tf == 0.4.*,
57 reflection == 2.1.*,
58 semigroupoids >= 4.0 && < 6,
59 semigroups >= 0.16 && < 0.19,
60 stm == 2.4.*,
61 syb >= 0.5 && < 0.7,
62 these >= 0.4 && < 0.8,
63 transformers >= 0.2,
64 transformers-compat >= 0.3
66 exposed-modules:
67 Data.Functor.Misc,
68 Data.WeakBag,
69 Reflex,
70 Reflex.Class,
71 Reflex.EventWriter,
72 Reflex.Dynamic,
73 Reflex.Dynamic.Uniq,
74 Reflex.DynamicWriter,
75 Reflex.FunctorMaybe,
76 Reflex.Host.Class,
77 Reflex.Patch,
78 Reflex.TriggerEvent.Base,
79 Reflex.TriggerEvent.Class,
80 Reflex.PerformEvent.Base,
81 Reflex.PerformEvent.Class,
82 Reflex.PostBuild.Base,
83 Reflex.PostBuild.Class,
84 Reflex.Postpone.Base,
85 Reflex.Postpone.Class,
86 Reflex.Requester.Base,
87 Reflex.Requester.Class,
88 Reflex.Spider,
89 Reflex.Spider.Internal
91 ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2
92 ghc-prof-options: -fprof-auto
94 if flag(specialize-to-spidertimeline-global)
95 cpp-options: -DSPECIALIZE_TO_SPIDERTIMELINE_GLOBAL
96 else
97 exposed-modules: Reflex.Pure
99 if flag(debug-trace-events)
100 cpp-options: -DDEBUG_TRACE_EVENTS
101 build-depends: bytestring
103 if flag(use-reflex-optimizer)
104 cpp-options: -DUSE_REFLEX_OPTIMIZER
105 build-depends: ghc
106 exposed-modules: Reflex.Optimizer
108 if flag(use-template-haskell)
109 cpp-options: -DUSE_TEMPLATE_HASKELL
110 build-depends:
111 dependent-sum >= 0.3 && < 0.5,
112 haskell-src-exts >= 1.16 && < 1.18,
113 haskell-src-meta == 0.6.*,
114 template-haskell >= 2.9 && < 2.12
115 exposed-modules:
116 Reflex.Dynamic.TH
117 other-extensions: TemplateHaskell
118 else
119 build-depends:
120 dependent-sum == 0.4.*
122 if flag(expose-all-unfoldings)
123 ghc-options: -fexpose-all-unfoldings
125test-suite semantics
126 type: exitcode-stdio-1.0
127 main-is: semantics.hs
128 hs-source-dirs: test
129 ghc-options: -O2 -Wall -rtsopts
130 build-depends:
131 base,
132 bifunctors,
133 containers,
134 deepseq >= 1.3 && < 1.5,
135 dependent-map,
136 dependent-sum,
137 mtl,
138 ref-tf,
139 reflex,
140 split,
141 transformers >= 0.3
142 if flag(specialize-to-spidertimeline-global)
143 buildable: False
145test-suite hlint
146 type: exitcode-stdio-1.0
147 main-is: hlint.hs
148 hs-source-dirs: test
149 build-depends: base, hlint == 1.9.*
150 if impl(ghcjs)
151 buildable: False
153test-suite EventWriterT
154 type: exitcode-stdio-1.0
155 main-is: EventWriterT.hs
156 hs-source-dirs: test
157 build-depends: base
158 , dependent-sum
159 , transformers
160 , reflex
161 , ref-tf
163test-suite RequesterT
164 type: exitcode-stdio-1.0
165 main-is: RequesterT.hs
166 hs-source-dirs: test
167 build-depends: base
168 , dependent-sum
169 , dependent-map
170 , transformers
171 , reflex
172 , ref-tf
174test-suite GC-Semantics
175 type: exitcode-stdio-1.0
176 main-is: GC.hs
177 hs-source-dirs: test
178 if flag(specialize-to-spidertimeline-global)
179 buildable: False
180 build-depends: base
181 , dependent-sum
182 , dependent-map
183 , these
184 , transformers
185 , reflex
186 , ref-tf
188test-suite rootCleanup
189 type: exitcode-stdio-1.0
190 main-is: rootCleanup.hs
191 hs-source-dirs: test
192 build-depends: base
193 , reflex
195benchmark spider-bench
196 type: exitcode-stdio-1.0
197 hs-source-dirs: bench
198 main-is: Main.hs
199 ghc-options: -Wall -O2 -rtsopts
200 build-depends:
201 base,
202 criterion == 1.1.*,
203 deepseq >= 1.3 && < 1.5,
204 dependent-map,
205 dependent-sum,
206 mtl,
207 primitive,
208 reflex,
209 stm,
210 transformers >= 0.3
212benchmark saulzar-bench
213 type: exitcode-stdio-1.0
214 hs-source-dirs: bench test
215 c-sources: bench-cbits/checkCapability.c
216 main-is: RunAll.hs
217 ghc-options: -Wall -O2 -rtsopts -threaded
218 ghc-prof-options: -fprof-auto
219 build-depends:
220 base,
221 containers == 0.5.*,
222 criterion == 1.1.*,
223 deepseq >= 1.3 && < 1.5,
224 dependent-map,
225 dependent-sum,
226 loch-th,
227 mtl,
228 primitive,
229 process,
230 ref-tf,
231 reflex,
232 split,
233 stm,
234 time,
235 transformers >= 0.3
237source-repository head
238 type: git
239 location: https://github.com/reflex-frp/reflex