Package load time regressions in v1.8-beta3

There are, but instead of encouraging you to stop using broadcasting I dug into the problem more deeply. There’s a fix up at https://github.com/JuliaLang/julia/pull/45001.

But there is still something you might consider fixing: https://github.com/GenericMappingTools/GMT.jl/blob/df9c6f872ead5655165ca3dadd80ae1116177a02/src/gmt_main.jl#L1503 is piracy (it’s not very nice to change Julia’s printing for all users who might want to combine GMT and something else where they expect printing of Unsigned to remain unchanged). It invalidates ~120 compiled MethodInstances. It does not affect plot, however.

You also have a few more invalidations which appear to be internal (you’re invalidating your own code) but I’m not making sense of it right now. In case it makes sense to you, here’s the output:

julia> trees = invalidation_trees(invs)
┌ Warning: Could not attribute the following delayed invalidations:
└ @ SnoopCompile ~/.julia/dev/SnoopCompile/src/invalidations.jl:463
Any[Tuple{Union{typeof(GMT.add_opt_pen), Char}, Dict{Symbol, Any}, Vector{Symbol}}, Tuple{Union{typeof(GMT.font), Char}, Dict{Symbol, Any}, Vector{Symbol}}] invalidated Core.MethodInstance[MethodInstance for GMT.add_opt(::Dict{Symbol, Any}, ::String, ::String, ::Vector{Symbol}, ::NamedTuple{(:x, :y, :xy, :X, :Y, :asym, :colored, :cline, :csymbol, :wiskers, :cap, :pen), Tuple{String, String, String, String, String, String, String, String, String, String, String, Tuple{String, typeof(GMT.add_opt_pen)}}}, ::Bool, ::Any), MethodInstance for GMT.add_opt(::Dict{Symbol, Any}, ::String, ::String, ::Matrix{Symbol}, ::NamedTuple{(:angle, :Angle, :font, :justify, :region_justify, :header, :label, :rec_number, :text, :zvalues), Tuple{String, String, Tuple{String, typeof(GMT.font)}, Vararg{String, 7}}}, ::Bool, ::Bool)]
SnoopCompile.MethodInvalidations[]

(It’s empty because I also commented-out that pirating method.)

7 Likes