Makie.jl Extensions frequently recompiled

ArchGDAL.jl has the extension ArchGDALMakieExt (ArchGDAL.jl/Project.toml at master · yeesian/ArchGDAL.jl · GitHub).

My pkg Ipaper.jl has an extension relies on ArchGDAL.jl. Each time I update Ipaper.jl in the system environment, Makie.jl was needed to recompiled. It comsumed a very long time.

Any idea how to avoid recompiling Makie.jl?

Could you clarify what you mean by “update” your package (edit some code or update deps or?) and what the “system environment” is and if there’s other packages in there?

Makie should not need recompilation if none of its dependencies have changed when it’s loaded. So if you update your main env and some dependencies get updated, that would cause recompilation but that doesn’t have anything to do with package extensions.

Basically one should avoid loading packages from multiple different environments because the chance is bigger that there are mismatches between some versions.

One common problem is that you have something like using Revise in your startup (which load some deps) and change environment afterwards. This can lead to cache miss in precompilation (because some shared deps might be already loaded). Nearly all of my preconpilation gripes where resolved once I startet always invoking Julia with —project=@..

1 Like