I don’t think that’s far from how it will end up. SnoopCompileBot and invalidation fixes will allow a lot more to precompile, and the module-specific optimization levels are being released in v1.5. Jeff found that with module-specific optimizations, -O1 was better than -O0 anyways, so I think what we’ll see is more basic packages opting into -O1 snoopcompiling enough. v1.6 has a few fixes for things like kwarg splatting coming that I know will increase the amount of good type inference that large packages like DiffEq get, which will further help compile times, and allow pairing with compile snooping a bit better. In the end, I think we’re not too far away from a very comfortable position in terms of compile times, and if you try v1.0 Plots.jl without the precompile file you’ll see just how far we’ve come in just recent advances.
5 Likes