module TestCompose using Cairo using Compose import Compose.absolute_native_units end
This throws a warning, showing that the Cairo optional code hasn’t been loaded :
julia> using TestCompose [ Info: Precompiling TestCompose [8e4707c8-58a9-410c-9b10-f498f0d6d1ed] WARNING: could not import Compose.absolute_native_units into TestCompose
Previously I would force Compose to load compose to load Cairo code using
@eval, but in v1.5 this had been turned into a precompilation error (instead of a warning).
I’ve tried to do it from
__init__() too and it does work when using the module in isolation but If you try to use it in another module it crashes again at precompilation.
function __init__() Compose.link_cairo() #or @eval... end
Any way to make this work ? It’s not clear to me if it’s an issue with my code, Compose, or Require.
The error message tells me not to do this, but not what to do :
ERROR: LoadError: InitError: Evaluation into the closed module `Compose` breaks incremental compilation because the side effects will not be permanent. This is likely due to some other module mutating `Compose` with `eval` during precompilation - don't do this.