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