Ah, good point. If you want to get rid of assertion in the release mode, yet another possibility is to release version x.y
and x.(y - 1)
of MayAssert
where y
is an even number such that @mayassert
from version x.y
is a no-op and it’s @assert
for x.(y - 1)
(like old Linux kernel which used odd minor version to mean dev version). This way, you can use jlm
(a tool I made) to isolate the precompilation cache for “dev builds.”
Aside: even/odd versions work for a binary flag like this. But it would really be nice to have package options (Package options · Issue #38 · JuliaLang/Juleps · GitHub, Package Options · Issue #458 · JuliaLang/Pkg.jl · GitHub) so that we can, e.g., toggle only a subset of assertions.