Skip to content

Commit f4d8fa9

Browse files
committed
Clean up precompilation API
1 parent 99c99a7 commit f4d8fa9

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed

src/DynamicExpressions.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,6 @@ macro ignore(args...) end
4444
@ignore include("../test/runtests.jl")
4545

4646
include("precompile.jl")
47-
do_precompilation(; force_run=false)
47+
do_precompilation(; mode=:precompile)
4848

4949
end

src/precompile.jl

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -141,41 +141,44 @@ function test_functions_on_trees(::Type{T}, operators) where {T}
141141
return nothing
142142
end
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
156157
end
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
170172
end
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

test/test_precompilation.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
using Test
22
using DynamicExpressions
33

4-
DynamicExpressions.do_precompilation(; force_run=true)
4+
DynamicExpressions.do_precompilation(; mode=:compile)

0 commit comments

Comments
 (0)