The example used he is precompiled and runs much faster on Julia 1.10 but to use @trace_compile I must use 1.12
Note, I checked that the same precompiled cache is been used in both cases.
## 'Normal' REPL
julia> @time @eval basemap(region=(-5, 5, -5, 5), proj="X10c", frame=(axes=:WSne, annot=:auto, grid=5))
0.249256 seconds (262.62 k allocations: 13.169 MiB, 18.36% gc time, 97.12% compilation time)
## VSCode REPL
julia> @time @eval basemap(region=(-5, 5, -5, 5), proj="X10c", frame=(axes=:WSne, annot=:auto, grid=5))
4.723793 seconds (24.08 M allocations: 1.145 GiB, 3.56% gc time, 99.94% compilation time: 12% of which was recompilation)
## 'Normal' REPL
julia> @trace_compile basemap(region=(-5, 5, -5, 5), proj="X10c", frame=(axes=:WSne, annot=:auto, grid=5))
#= 2.3 ms =# precompile(Tuple{typeof(Base.join), Array{String, 1}})
#= 3.3 ms =# precompile(Tuple{Type{NamedTuple{(:x, :y, :z, :secondary), T} where T<:Tuple}, NTuple{4, Bool}})
#= 26.7 ms =# precompile(Tuple{typeof(GMT.axis), NamedTuple{(:axes, :annot, :grid), Tuple{Symbol, Symbol, Int64}}, Base.Dict{Symbol, Any}})
#= 3.4 ms =# precompile(Tuple{typeof(GMT.helper0_axes), Symbol})
## VSCode REPL
julia> @trace_compile basemap(region=(-5, 5, -5, 5), proj="X10c", frame=(axes=:WSne, annot=:auto, grid=5))
#= 2.6 ms =# precompile(Tuple{typeof(Base.join), Array{String, 1}})
#= 3.5 ms =# precompile(Tuple{Type{NamedTuple{(:x, :y, :z, :secondary), T} where T<:Tuple}, NTuple{4, Bool}})
#= 26.4 ms =# precompile(Tuple{typeof(GMT.axis), NamedTuple{(:axes, :annot, :grid), Tuple{Symbol, Symbol, Int64}}, Base.Dict{Symbol, Any}})
#= 354.1 ms =# precompile(Tuple{typeof(GMT.axis), Base.Dict{Symbol, Any}, Bool, Bool, Bool, Bool, Base.Dict{Symbol, Any}}) # recompile
#= 3.6 ms =# precompile(Tuple{typeof(GMT.helper0_axes), Symbol})
#= 219.8 ms =# precompile(Tuple{GMT.var"##add_opt_pen#230", String, Bool, typeof(GMT.add_opt_pen), Base.Dict{Symbol, Any}, Union{Nothing, Array{Symbol, 1}, Array{Symbol, 2}}}) # recompile