on cg-quickref help sign in
reflex/reflex.cabal
318 lines 8.1 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
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.5,
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 lens >= 4.7 && < 5,
63 monad-control >= 1.0.1 && < 1.1,
64 mtl >= 2.1 && < 2.3,
65 prim-uniq >= 0.1.0.1 && < 0.2,
66 primitive >= 0.5 && < 0.7,
67 random == 1.1.*,
68 ref-tf == 0.4.*,
69 reflection == 2.1.*,
70 semigroupoids >= 4.0 && < 6,
71 semigroups >= 0.16 && < 0.19,
72 stm == 2.4.*,
73 syb >= 0.5 && < 0.8,
74 these >= 0.4 && < 0.8,
75 time >= 1.4 && < 1.9,
76 transformers >= 0.2,
77 transformers-compat >= 0.3,
78 unbounded-delays >= 0.1.0.0 && < 0.2
80 exposed-modules:
81 Data.AppendMap,
82 Data.Map.Misc,
83 Data.Functor.Misc,
84 Data.WeakBag,
85 Data.FastWeakBag,
86 Data.FastMutableIntMap,
87 Reflex,
88 Reflex.Class,
89 Reflex.Collection,
90 Reflex.EventWriter,
91 Reflex.Dynamic,
92 Reflex.Dynamic.Uniq,
93 Reflex.DynamicWriter,
94 Reflex.FastWeak,
95 Reflex.FunctorMaybe,
96 Reflex.Host.Class,
97 Reflex.Patch,
98 Reflex.Patch.Class,
99 Reflex.Patch.DMap,
100 Reflex.Patch.DMapWithMove,
101 Reflex.Patch.Map,
102 Reflex.Patch.MapWithMove,
103 Reflex.TriggerEvent.Base,
104 Reflex.TriggerEvent.Class,
105 Reflex.PerformEvent.Base,
106 Reflex.PerformEvent.Class,
107 Reflex.PostBuild.Base,
108 Reflex.PostBuild.Class,
109 Reflex.Profiled,
110 Reflex.Query.Base,
111 Reflex.Query.Class,
112 Reflex.Requester.Base,
113 Reflex.Requester.Class,
114 Reflex.Spider,
115 Reflex.Spider.Internal,
116 Reflex.Time,
117 Reflex.Widget.Basic
119 ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2 -fspecialise-aggressively -ddump-simpl -ddump-to-file -dsuppress-coercions -dsuppress-idinfo
120 ghc-prof-options: -fprof-auto
122 if flag(specialize-to-spidertimeline-global)
123 cpp-options: -DSPECIALIZE_TO_SPIDERTIMELINE_GLOBAL
124 else
125 exposed-modules: Reflex.Pure
127 if flag(debug-trace-events)
128 cpp-options: -DDEBUG_TRACE_EVENTS
129 build-depends: bytestring
131 if flag(use-reflex-optimizer)
132 cpp-options: -DUSE_REFLEX_OPTIMIZER
133 build-depends: ghc
134 exposed-modules: Reflex.Optimizer
136 if flag(use-template-haskell)
137 cpp-options: -DUSE_TEMPLATE_HASKELL
138 build-depends:
139 dependent-sum >= 0.3 && < 0.5,
140 haskell-src-exts >= 1.16 && < 1.20,
141 haskell-src-meta >= 0.6 && < 0.9,
142 template-haskell >= 2.9 && < 2.13
143 exposed-modules:
144 Reflex.Dynamic.TH
145 other-extensions: TemplateHaskell
146 else
147 build-depends:
148 dependent-sum == 0.4.*
150 if flag(expose-all-unfoldings)
151 ghc-options: -fexpose-all-unfoldings
153 if flag(experimental-dependent-sum-instances)
154 ghc-options: -DEXPERIMENTAL_DEPENDENT_SUM_INSTANCES
156 if flag(fast-weak) && impl(ghcjs)
157 ghc-options: -DGHCJS_FAST_WEAK
159 if impl(ghcjs)
160 build-depends: ghcjs-base
162test-suite semantics
163 type: exitcode-stdio-1.0
164 main-is: semantics.hs
165 hs-source-dirs: test
166 ghc-options: -O2 -Wall -rtsopts
167 build-depends:
168 base,
169 bifunctors,
170 containers,
171 deepseq >= 1.3 && < 1.5,
172 dependent-map,
173 dependent-sum,
174 mtl,
175 ref-tf,
176 reflex,
177 split,
178 transformers >= 0.3
179 if flag(specialize-to-spidertimeline-global)
180 buildable: False
182test-suite CrossImpl
183 type: exitcode-stdio-1.0
184 main-is: Reflex/Test/CrossImpl.hs
185 hs-source-dirs: test
186 ghc-options: -O2 -Wall -rtsopts -main-is Reflex.Test.CrossImpl.test
187 build-depends:
188 base,
189 containers,
190 dependent-map,
191 mtl,
192 ref-tf,
193 reflex
194 if flag(specialize-to-spidertimeline-global)
195 buildable: False
197test-suite hlint
198 type: exitcode-stdio-1.0
199 main-is: hlint.hs
200 hs-source-dirs: test
201 build-depends: base
202 , directory
203 , filepath
204 , filemanip
205 , hlint
206 if impl(ghcjs)
207 buildable: False
208 buildable: False
210test-suite EventWriterT
211 type: exitcode-stdio-1.0
212 main-is: EventWriterT.hs
213 hs-source-dirs: test
214 build-depends: base
215 , dependent-sum
216 , lens
217 , these
218 , transformers
219 , reflex
220 , ref-tf
222test-suite RequesterT
223 type: exitcode-stdio-1.0
224 main-is: RequesterT.hs
225 hs-source-dirs: test
226 build-depends: base
227 , dependent-sum
228 , dependent-map
229 , lens
230 , these
231 , transformers
232 , reflex
233 , ref-tf
234 buildable: False
236test-suite QueryT
237 type: exitcode-stdio-1.0
238 main-is: QueryT.hs
239 hs-source-dirs: test
240 build-depends: base
241 , containers
242 , dependent-sum
243 , dependent-map
244 , lens
245 , these
246 , transformers
247 , semigroups
248 , reflex
249 , ref-tf
251test-suite GC-Semantics
252 type: exitcode-stdio-1.0
253 main-is: GC.hs
254 hs-source-dirs: test
255 if flag(specialize-to-spidertimeline-global)
256 buildable: False
257 build-depends: base
258 , dependent-sum
259 , dependent-map
260 , these
261 , transformers
262 , reflex
263 , ref-tf
264 if impl(ghc < 8)
265 build-depends: semigroups
267test-suite rootCleanup
268 type: exitcode-stdio-1.0
269 main-is: rootCleanup.hs
270 hs-source-dirs: test
271 build-depends: base
272 , reflex
274benchmark spider-bench
275 type: exitcode-stdio-1.0
276 hs-source-dirs: bench
277 main-is: Main.hs
278 ghc-options: -Wall -O2 -rtsopts
279 build-depends:
280 base,
281 criterion == 1.1.*,
282 deepseq >= 1.3 && < 1.5,
283 dependent-map,
284 dependent-sum,
285 mtl,
286 primitive,
287 reflex,
288 stm,
289 transformers >= 0.3
291benchmark saulzar-bench
292 type: exitcode-stdio-1.0
293 hs-source-dirs: bench test
294 c-sources: bench-cbits/checkCapability.c
295 main-is: RunAll.hs
296 ghc-options: -Wall -O2 -rtsopts -threaded
297 ghc-prof-options: -fprof-auto
298 build-depends:
299 base,
300 containers == 0.5.*,
301 criterion == 1.1.*,
302 deepseq >= 1.3 && < 1.5,
303 dependent-map,
304 dependent-sum,
305 loch-th,
306 mtl,
307 primitive,
308 process,
309 ref-tf,
310 reflex,
311 split,
312 stm,
313 time,
314 transformers >= 0.3
316source-repository head
317 type: git
318 location: https://github.com/reflex-frp/reflex