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