@@ -141,41 +141,44 @@ function test_functions_on_trees(::Type{T}, operators) where {T}
141141 return nothing
142142end
143143
144- """ Run force_run=true; @precompile_setup otherwise."""
145- macro maybe_precompile_setup (force_run, ex)
144+ macro maybe_precompile_setup (mode, ex)
146145 precompile_ex = Expr (
147146 :macrocall , Symbol (" @precompile_setup" ), LineNumberNode (@__LINE__ ), ex
148147 )
149148 return quote
150- if $ (esc (force_run))
149+ if $ (esc (mode)) == :compile
151150 $ (esc (ex))
152- else
151+ elseif $ ( esc (mode)) == :precompile
153152 $ (esc (precompile_ex))
153+ else
154+ error (" Invalid value for mode: " * show ($ (esc (mode))))
154155 end
155156 end
156157end
157158
158- """ Run force_run=true; @precompile_all_calls otherwise."""
159- macro maybe_precompile_all_calls (force_run, ex)
159+ macro maybe_precompile_all_calls (mode, ex)
160160 precompile_ex = Expr (
161161 :macrocall , Symbol (" @precompile_all_calls" ), LineNumberNode (@__LINE__ ), ex
162162 )
163163 return quote
164- if $ (esc (force_run))
164+ if $ (esc (mode)) == :compile
165165 $ (esc (ex))
166- else
166+ elseif $ ( esc (mode)) == :precompile
167167 $ (esc (precompile_ex))
168+ else
169+ error (" Invalid value for mode: " * show ($ (esc (mode))))
168170 end
169171 end
170172end
171173
172- function do_precompilation (; force_run= false )
173- @maybe_precompile_setup force_run begin
174+ """ `mode=:precompile` will use `@precompile_*` directives; `mode=:compile` runs."""
175+ function do_precompilation (; mode= :precompile )
176+ @maybe_precompile_setup mode begin
174177 binary_operators = [[+ , - , * , / , ^ ]]
175178 unary_operators = [[sin, cos, exp, log, sqrt, abs]]
176179 turbo = [true , false ]
177180 types = [Float32, Float64]
178- @maybe_precompile_all_calls force_run begin
181+ @maybe_precompile_all_calls mode begin
179182 test_all_combinations (;
180183 binary_operators= binary_operators,
181184 unary_operators= unary_operators,
@@ -191,7 +194,7 @@ function do_precompilation(; force_run=false)
191194 # Want to precompile all above calls.
192195 types = [Float16, Float32, Float64]
193196 for T in types
194- @maybe_precompile_all_calls force_run begin
197+ @maybe_precompile_all_calls mode begin
195198 test_functions_on_trees (T, operators)
196199 end
197200 end
0 commit comments