on e8b2d71 help sign in
reflex/reflex.cabal
242 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.Patch.Class,
79 Reflex.Patch.DMap,
80 Reflex.Patch.DMapWithMove,
81 Reflex.Patch.Map,
82 Reflex.Patch.MapWithMove,
83 Reflex.TriggerEvent.Base,
84 Reflex.TriggerEvent.Class,
85 Reflex.PerformEvent.Base,
86 Reflex.PerformEvent.Class,
87 Reflex.PostBuild.Base,
88 Reflex.PostBuild.Class,
89 Reflex.Requester.Base,
90 Reflex.Requester.Class,
91 Reflex.Spider,
92 Reflex.Spider.Internal
94 ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2
95 ghc-prof-options: -fprof-auto
97 if flag(specialize-to-spidertimeline-global)
98 cpp-options: -DSPECIALIZE_TO_SPIDERTIMELINE_GLOBAL
99 else
100 exposed-modules: Reflex.Pure
102 if flag(debug-trace-events)
103 cpp-options: -DDEBUG_TRACE_EVENTS
104 build-depends: bytestring
106 if flag(use-reflex-optimizer)
107 cpp-options: -DUSE_REFLEX_OPTIMIZER
108 build-depends: ghc
109 exposed-modules: Reflex.Optimizer
111 if flag(use-template-haskell)
112 cpp-options: -DUSE_TEMPLATE_HASKELL
113 build-depends:
114 dependent-sum >= 0.3 && < 0.5,
115 haskell-src-exts >= 1.16 && < 1.18,
116 haskell-src-meta == 0.6.*,
117 template-haskell >= 2.9 && < 2.12
118 exposed-modules:
119 Reflex.Dynamic.TH
120 other-extensions: TemplateHaskell
121 else
122 build-depends:
123 dependent-sum == 0.4.*
125 if flag(expose-all-unfoldings)
126 ghc-options: -fexpose-all-unfoldings
128test-suite semantics
129 type: exitcode-stdio-1.0
130 main-is: semantics.hs
131 hs-source-dirs: test
132 ghc-options: -O2 -Wall -rtsopts
133 build-depends:
134 base,
135 bifunctors,
136 containers,
137 deepseq >= 1.3 && < 1.5,
138 dependent-map,
139 dependent-sum,
140 mtl,
141 ref-tf,
142 reflex,
143 split,
144 transformers >= 0.3
145 if flag(specialize-to-spidertimeline-global)
146 buildable: False
148test-suite hlint
149 type: exitcode-stdio-1.0
150 main-is: hlint.hs
151 hs-source-dirs: test
152 build-depends: base, hlint == 1.9.*
153 if impl(ghcjs)
154 buildable: False
156test-suite EventWriterT
157 type: exitcode-stdio-1.0
158 main-is: EventWriterT.hs
159 hs-source-dirs: test
160 build-depends: base
161 , dependent-sum
162 , transformers
163 , reflex
164 , ref-tf
166test-suite RequesterT
167 type: exitcode-stdio-1.0
168 main-is: RequesterT.hs
169 hs-source-dirs: test
170 build-depends: base
171 , dependent-sum
172 , dependent-map
173 , transformers
174 , reflex
175 , ref-tf
177test-suite GC-Semantics
178 type: exitcode-stdio-1.0
179 main-is: GC.hs
180 hs-source-dirs: test
181 if flag(specialize-to-spidertimeline-global)
182 buildable: False
183 build-depends: base
184 , dependent-sum
185 , dependent-map
186 , these
187 , transformers
188 , reflex
189 , ref-tf
191test-suite rootCleanup
192 type: exitcode-stdio-1.0
193 main-is: rootCleanup.hs
194 hs-source-dirs: test
195 build-depends: base
196 , reflex
198benchmark spider-bench
199 type: exitcode-stdio-1.0
200 hs-source-dirs: bench
201 main-is: Main.hs
202 ghc-options: -Wall -O2 -rtsopts
203 build-depends:
204 base,
205 criterion == 1.1.*,
206 deepseq >= 1.3 && < 1.5,
207 dependent-map,
208 dependent-sum,
209 mtl,
210 primitive,
211 reflex,
212 stm,
213 transformers >= 0.3
215benchmark saulzar-bench
216 type: exitcode-stdio-1.0
217 hs-source-dirs: bench test
218 c-sources: bench-cbits/checkCapability.c
219 main-is: RunAll.hs
220 ghc-options: -Wall -O2 -rtsopts -threaded
221 ghc-prof-options: -fprof-auto
222 build-depends:
223 base,
224 containers == 0.5.*,
225 criterion == 1.1.*,
226 deepseq >= 1.3 && < 1.5,
227 dependent-map,
228 dependent-sum,
229 loch-th,
230 mtl,
231 primitive,
232 process,
233 ref-tf,
234 reflex,
235 split,
236 stm,
237 time,
238 transformers >= 0.3
240source-repository head
241 type: git
242 location: https://github.com/reflex-frp/reflex