on 4de7d18 help sign in
patch/reflex.cabal
326 lines 8.3 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.12,
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 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.EventWriter.Base,
92 Reflex.EventWriter.Class,
93 Reflex.Dynamic,
94 Reflex.Dynamic.Uniq,
95 Reflex.DynamicWriter,
96 Reflex.DynamicWriter.Base,
97 Reflex.DynamicWriter.Class,
98 Reflex.FastWeak,
99 Reflex.FunctorMaybe,
100 Reflex.Host.Class,
101 Reflex.Network,
102 Reflex.NotReady.Class,
103 Reflex.Patch,
104 Reflex.Patch.Class,
105 Reflex.Patch.DMap,
106 Reflex.Patch.DMapWithMove,
107 Reflex.Patch.IntMap,
108 Reflex.Patch.Map,
109 Reflex.Patch.MapWithMove,
110 Reflex.TriggerEvent.Base,
111 Reflex.TriggerEvent.Class,
112 Reflex.PerformEvent.Base,
113 Reflex.PerformEvent.Class,
114 Reflex.PostBuild.Base,
115 Reflex.PostBuild.Class,
116 Reflex.Profiled,
117 Reflex.Query.Base,
118 Reflex.Query.Class,
119 Reflex.Requester.Base,
120 Reflex.Requester.Class,
121 Reflex.Spider,
122 Reflex.Spider.Internal,
123 Reflex.Time,
124 Reflex.Widget.Basic,
125 Reflex.Workflow
127 ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2 -fspecialise-aggressively -ddump-simpl -ddump-to-file -dsuppress-coercions -dsuppress-idinfo
128 ghc-prof-options: -fprof-auto
130 if flag(specialize-to-spidertimeline-global)
131 cpp-options: -DSPECIALIZE_TO_SPIDERTIMELINE_GLOBAL
132 else
133 exposed-modules: Reflex.Pure
135 if flag(debug-trace-events)
136 cpp-options: -DDEBUG_TRACE_EVENTS
137 build-depends: bytestring
139 if flag(use-reflex-optimizer)
140 cpp-options: -DUSE_REFLEX_OPTIMIZER
141 build-depends: ghc
142 exposed-modules: Reflex.Optimizer
144 if flag(use-template-haskell)
145 cpp-options: -DUSE_TEMPLATE_HASKELL
146 build-depends:
147 dependent-sum >= 0.3 && < 0.5,
148 haskell-src-exts >= 1.16 && < 1.21,
149 haskell-src-meta >= 0.6 && < 0.9,
150 template-haskell >= 2.9 && < 2.14
151 exposed-modules:
152 Reflex.Dynamic.TH
153 other-extensions: TemplateHaskell
154 else
155 build-depends:
156 dependent-sum == 0.4.*
158 if flag(expose-all-unfoldings)
159 ghc-options: -fexpose-all-unfoldings
161 if flag(experimental-dependent-sum-instances)
162 ghc-options: -DEXPERIMENTAL_DEPENDENT_SUM_INSTANCES
164 if flag(fast-weak) && impl(ghcjs)
165 ghc-options: -DGHCJS_FAST_WEAK
167 if impl(ghcjs)
168 build-depends: ghcjs-base
170test-suite semantics
171 type: exitcode-stdio-1.0
172 main-is: semantics.hs
173 hs-source-dirs: test
174 ghc-options: -O2 -Wall -rtsopts
175 build-depends:
176 base,
177 bifunctors,
178 containers,
179 deepseq >= 1.3 && < 1.5,
180 dependent-map,
181 dependent-sum,
182 mtl,
183 ref-tf,
184 reflex,
185 split,
186 transformers >= 0.3
187 if flag(specialize-to-spidertimeline-global)
188 buildable: False
190test-suite CrossImpl
191 type: exitcode-stdio-1.0
192 main-is: Reflex/Test/CrossImpl.hs
193 hs-source-dirs: test
194 ghc-options: -O2 -Wall -rtsopts -main-is Reflex.Test.CrossImpl.test
195 build-depends:
196 base,
197 containers,
198 dependent-map,
199 mtl,
200 ref-tf,
201 reflex
202 if flag(specialize-to-spidertimeline-global)
203 buildable: False
205test-suite hlint
206 type: exitcode-stdio-1.0
207 main-is: hlint.hs
208 hs-source-dirs: test
209 build-depends: base
210 , directory
211 , filepath
212 , filemanip
213 , hlint
214 if impl(ghcjs)
215 buildable: False
216 buildable: False
218test-suite EventWriterT
219 type: exitcode-stdio-1.0
220 main-is: EventWriterT.hs
221 hs-source-dirs: test
222 build-depends: base
223 , dependent-sum
224 , lens
225 , these
226 , transformers
227 , reflex
228 , ref-tf
230test-suite RequesterT
231 type: exitcode-stdio-1.0
232 main-is: RequesterT.hs
233 hs-source-dirs: test
234 build-depends: base
235 , dependent-sum
236 , dependent-map
237 , lens
238 , these
239 , transformers
240 , reflex
241 , ref-tf
242 buildable: False
244test-suite QueryT
245 type: exitcode-stdio-1.0
246 main-is: QueryT.hs
247 hs-source-dirs: test
248 build-depends: base
249 , containers
250 , dependent-sum
251 , dependent-map
252 , lens
253 , these
254 , transformers
255 , semigroups
256 , reflex
257 , ref-tf
259test-suite GC-Semantics
260 type: exitcode-stdio-1.0
261 main-is: GC.hs
262 hs-source-dirs: test
263 if flag(specialize-to-spidertimeline-global)
264 buildable: False
265 build-depends: base
266 , dependent-sum
267 , dependent-map
268 , these
269 , transformers
270 , reflex
271 , ref-tf
272 if impl(ghc < 8)
273 build-depends: semigroups
275test-suite rootCleanup
276 type: exitcode-stdio-1.0
277 main-is: rootCleanup.hs
278 hs-source-dirs: test
279 build-depends: base
280 , reflex
282benchmark spider-bench
283 type: exitcode-stdio-1.0
284 hs-source-dirs: bench
285 main-is: Main.hs
286 ghc-options: -Wall -O2 -rtsopts
287 build-depends:
288 base,
289 criterion == 1.1.*,
290 deepseq >= 1.3 && < 1.5,
291 dependent-map,
292 dependent-sum,
293 mtl,
294 primitive,
295 reflex,
296 stm,
297 transformers >= 0.3
299benchmark saulzar-bench
300 type: exitcode-stdio-1.0
301 hs-source-dirs: bench test
302 c-sources: bench-cbits/checkCapability.c
303 main-is: RunAll.hs
304 ghc-options: -Wall -O2 -rtsopts -threaded
305 ghc-prof-options: -fprof-auto
306 build-depends:
307 base,
308 containers == 0.5.*,
309 criterion == 1.1.*,
310 deepseq >= 1.3 && < 1.5,
311 dependent-map,
312 dependent-sum,
313 loch-th,
314 mtl,
315 primitive,
316 process,
317 ref-tf,
318 reflex,
319 split,
320 stm,
321 time,
322 transformers >= 0.3
324source-repository head
325 type: git
326 location: https://github.com/reflex-frp/reflex