Base: bootstrap: eliminate Array-specific length methods#57627
Conversation
|
|
|
Absolutely, this causes tons of invalidations, which is why I marked the PR as draft. Perhaps it'd make sense to set |
The method return type is known concretely as `OneTo{Int}`, however the
compiler can't tell because there are too many methods matching
`length(::Array)`, over the world-splitting threshold, `max_methods`.
Cross-reference PR JuliaLang#57627, which might help here in another way by
decreasing the number of unnecessary methods, however merging that PR
would also cause regressions if world-splitting is not disabled first
for `length` (xref PR JuliaLang#59377).
Fix that by asserting the return type of the `length` call as `Int`.
The `typeassert` should improve abstract return type inference, and
consequently make the sysimage more resistant to invalidation.
The method return type is known concretely as `OneTo{Int}`, however the
compiler can't tell because there are too many methods matching
`length(::Array)`, over the world-splitting threshold, `max_methods`.
Cross-reference WIP PR JuliaLang#57627, which might help here in another way by
decreasing the number of unnecessary methods, however merging that PR
would also cause regressions if world-splitting is not disabled first
for `length` (xref WIP PR JuliaLang#59377).
Fix that by asserting the return type of the `length` call as `Int`.
The `typeassert` should improve abstract return type inference, and
consequently make the sysimage more resistant to invalidation.
Three methods of `length` are deleted. Made possible by moving the following methods to earlier within the bootstrapping: * `size(a::Array)` * `length(t::AbstractArray)` Improves abstract return type inference of `f(x::Array) = length(a)`, presumably because the method count is now low enough for the world-splitting optimization to kick in. (cherry picked from commit c4e59a6) (cherry picked from PR JuliaLang#57627) Closes PR JuliaLang#57627
|
Just tried checking again how this PR affects the resistance of the sysimage to invalidation:
In particular, this entire tree of invalidations is prevented by this PR: Details
{
"method_instance": {
"method": "_iterate_abstractarray(A::AbstractArray, state::Integer) @ Base abstractarray.jl:1247",
"method_instance": "MethodInstance for Base._iterate_abstractarray(::Array, ::Integer)"
},
"children": [
{
"method_instance": {
"method": "iterate(A::AbstractArray, state) @ Base abstractarray.jl:1241",
"method_instance": "MethodInstance for iterate(::Array, ::Any)"
},
"children": [
{
"method_instance": {
"method": "iterate(A::AbstractArray) @ Base abstractarray.jl:1241",
"method_instance": "MethodInstance for iterate(::Array)"
},
"children": [
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOContext{IOBuffer}, ::Array, ::String, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOContext{IOBuffer}, ::Vector, ::String, ::Int64, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_block(io::IO, head, args::Vector, body, indent::Int64, quote_level::Int64) @ Base show.jl:1625",
"method_instance": "MethodInstance for Base.show_block(::IOContext{IOBuffer}, ::String, ::Vector, ::Expr, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_block(io::IO, head, args::Vector, body, indent::Int64, quote_level::Int64) @ Base show.jl:1625",
"method_instance": "MethodInstance for Base.show_block(::IOContext{IOBuffer}, ::Symbol, ::Vector, ::Any, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_block(io::IO, head, args::Vector, body, indent::Int64, quote_level::Int64) @ Base show.jl:1625",
"method_instance": "MethodInstance for Base.show_block(::IOBuffer, ::String, ::Vector{Any}, ::Expr, ::Int64, ::Int64)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_call(io::IO, head, func, func_args, indent, quote_level, kw::Bool) @ Base show.jl:1691",
"method_instance": "MethodInstance for Base.show_call(::IOBuffer, ::Symbol, ::Any, ::Vector{Any}, ::Int64, ::Int64, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_call(io::IO, head, func, func_args, indent, quote_level, kw::Bool) @ Base show.jl:1691",
"method_instance": "MethodInstance for Base.show_call(::IOBuffer, ::Symbol, ::Expr, ::Vector{Any}, ::Int64, ::Int64, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_generator(io, ex::Expr, indent, quote_level) @ Base show.jl:1806",
"method_instance": "MethodInstance for Base.show_generator(::IOBuffer, ::Expr, ::Int64, ::Int64)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_import_path(io::IO, ex, quote_level) @ Base show.jl:1834",
"method_instance": "MethodInstance for Base.show_import_path(::IOBuffer, ::Any, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_import_path(io::IO, ex, quote_level) @ Base show.jl:1834",
"method_instance": "MethodInstance for Base.show_import_path(::IOBuffer, ::Any, ::Int64)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Any, ::String, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::Char, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::String, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_call(io::IO, head, func, func_args, indent, quote_level, kw::Bool) @ Base show.jl:1691",
"method_instance": "MethodInstance for Base.show_call(::IOBuffer, ::Symbol, ::Any, ::Vector{Any}, ::Int64, ::Int64, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_call(io::IO, head, func, func_args, indent, quote_level, kw::Bool) @ Base show.jl:1691",
"method_instance": "MethodInstance for Base.show_call(::IOBuffer, ::Symbol, ::Expr, ::Vector{Any}, ::Int64, ::Int64, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_call(io::IO, head, func, func_args, indent, quote_level, kw::Bool) @ Base show.jl:1691",
"method_instance": "MethodInstance for Base.show_call(::IOBuffer, ::Symbol, ::Symbol, ::Vector{Any}, ::Int64, ::Int64, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_enclosed_list(io::IO, op, items, sep, cl, indent, prec, quote_level, encl_ops, kw::Bool) @ Base show.jl:1682",
"method_instance": "MethodInstance for Base.show_enclosed_list(::IOBuffer, ::Char, ::Vector{Any}, ::String, ::Char, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_call(io::IO, head, func, func_args, indent, quote_level, kw::Bool) @ Base show.jl:1691",
"method_instance": "MethodInstance for Base.show_call(::IOBuffer, ::Symbol, ::Any, ::Vector{Any}, ::Int64, ::Int64, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_call(io::IO, head, func, func_args, indent, quote_level, kw::Bool) @ Base show.jl:1691",
"method_instance": "MethodInstance for Base.show_call(::IOBuffer, ::Symbol, ::Expr, ::Vector{Any}, ::Int64, ::Int64, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_call(io::IO, head, func, func_args, indent, quote_level, kw::Bool) @ Base show.jl:1691",
"method_instance": "MethodInstance for Base.show_call(::IOBuffer, ::Symbol, ::Symbol, ::Vector{Any}, ::Int64, ::Int64, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_enclosed_list(io::IO, op, items, sep, cl, indent, prec) @ Base show.jl:1682",
"method_instance": "MethodInstance for Base.show_enclosed_list(::IOBuffer, ::Char, ::Vector{Any}, ::String, ::Char, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_enclosed_list(io::IO, op, items, sep, cl, indent, prec, quote_level) @ Base show.jl:1682",
"method_instance": "MethodInstance for Base.show_enclosed_list(::IOBuffer, ::Char, ::Vector{Any}, ::String, ::Char, ::Int64, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_enclosed_list(io::IO, op, items, sep, cl, indent, prec, quote_level, encl_ops) @ Base show.jl:1682",
"method_instance": "MethodInstance for Base.show_enclosed_list(::IOBuffer, ::Char, ::Vector{Any}, ::String, ::Char, ::Int64, ::Int64, ::Int64, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
}
]
},
{
"method_instance": {
"method": "show_enclosed_list(io::IO, op, items, sep, cl, indent, prec, quote_level, encl_ops, kw::Bool) @ Base show.jl:1682",
"method_instance": "MethodInstance for Base.show_enclosed_list(::IOBuffer, ::String, ::Vector{Any}, ::String, ::String, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_enclosed_list(io::IO, op, items, sep, cl, indent, prec, quote_level) @ Base show.jl:1682",
"method_instance": "MethodInstance for Base.show_enclosed_list(::IOBuffer, ::String, ::Vector{Any}, ::String, ::String, ::Int64, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
}
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::String, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::String, ::Int64, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_block(io::IO, head, args::Vector, body, indent::Int64, quote_level::Int64) @ Base show.jl:1625",
"method_instance": "MethodInstance for Base.show_block(::IOBuffer, ::String, ::Vector{Any}, ::Expr, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_block(io::IO, head, block, i::Int64, quote_level::Int64) @ Base show.jl:1644",
"method_instance": "MethodInstance for Base.show_block(::IOBuffer, ::String, ::Expr, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
}
]
},
{
"method_instance": {
"method": "show_generator(io, ex::Expr, indent, quote_level) @ Base show.jl:1806",
"method_instance": "MethodInstance for Base.show_generator(::IOBuffer, ::Expr, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::String, ::Int64, ::Int64, ::Int64, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::Symbol, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Expr}, ::String, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex) @ Base show.jl:1525",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
},
{
"method_instance": {
"method": "showerror(io::IO, ex::MethodError) @ Base errorshow.jl:255",
"method_instance": "MethodInstance for showerror(::IOBuffer, ::MethodError)"
},
"children": [
{
"method_instance": {
"method": "(::Base.var\"#which##0#which##1\")(io) @ Base reflection.jl:946",
"method_instance": "MethodInstance for (::Base.var\"#which##0#which##1\"{MethodError})(::IOBuffer)"
},
"children": [
{
"method_instance": {
"method": "var\"#sprint#439\"(context, sizehint::Integer, ::typeof(sprint), f::Function, args...) @ Base strings/io.jl:106",
"method_instance": "MethodInstance for Base.var\"#sprint#439\"(::Nothing, ::Int64, ::typeof(sprint), ::Base.var\"#which##0#which##1\"{MethodError})"
},
"children": [
{
"method_instance": {
"method": "sprint(f::Function, args...; context, sizehint) @ Base strings/io.jl:106",
"method_instance": "MethodInstance for sprint(::Base.var\"#which##0#which##1\"{MethodError})"
},
"children": [
{
"method_instance": {
"method": "which(f, t) @ Base reflection.jl:940",
"method_instance": "MethodInstance for which(::Any, ::Any)"
},
"children": [
{
"method_instance": {
"method": "_propertynames_bytype(T::Type) @ Base errorshow.jl:1230",
"method_instance": "MethodInstance for Base._propertynames_bytype(::Type)"
},
"children": [
]
},
{
"method_instance": {
"method": "functionloc(f, types) @ Base methodshow.jl:183",
"method_instance": "MethodInstance for functionloc(::Any, ::Any)"
},
"children": [
]
},
{
"method_instance": {
"method": "load_irshow!() @ Compiler ~/tmp/jl/jl/julia-cbea8cf28e/share/julia/Compiler/src/Compiler.jl:211",
"method_instance": "MethodInstance for Compiler.load_irshow!()"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "which(f, t) @ Base reflection.jl:940",
"method_instance": "MethodInstance for which(::typeof(Compiler.verify_typeinf_trim), ::Tuple{DataType, DataType, DataType})"
},
"children": [
]
},
{
"method_instance": {
"method": "which(f, t) @ Base reflection.jl:940",
"method_instance": "MethodInstance for which(::typeof(Compiler.verify_typeinf_trim), ::Tuple{DataType, DataType, DataType})"
},
"children": [
{
"method_instance": {
"method": "load_irshow!() @ Compiler ~/tmp/jl/jl/julia-cbea8cf28e/share/julia/Compiler/src/Compiler.jl:211",
"method_instance": "MethodInstance for Compiler.load_irshow!()"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "which(f, t) @ Base reflection.jl:940",
"method_instance": "MethodInstance for which(::typeof(propertynames), ::Tuple{DataType})"
},
"children": [
]
},
{
"method_instance": {
"method": "which(f, t) @ Base reflection.jl:940",
"method_instance": "MethodInstance for which(::typeof(propertynames), ::Tuple{DataType})"
},
"children": [
{
"method_instance": {
"method": "_propertynames_bytype(T::Type) @ Base errorshow.jl:1230",
"method_instance": "MethodInstance for Base._propertynames_bytype(::Type)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "which(f, t) @ Base reflection.jl:940",
"method_instance": "MethodInstance for which(::typeof(propertynames), ::Tuple{Type})"
},
"children": [
{
"method_instance": {
"method": "_propertynames_bytype(T::Type) @ Base errorshow.jl:1230",
"method_instance": "MethodInstance for Base._propertynames_bytype(::Type)"
},
"children": [
]
}
]
}
]
}
]
}
]
}
]
},
{
"method_instance": {
"method": "var\"#sprint#439\"(context, sizehint::Integer, ::typeof(sprint), f::Function, args...) @ Base strings/io.jl:106",
"method_instance": "MethodInstance for Base.var\"#sprint#439\"(::Nothing, ::Int64, ::typeof(sprint), ::typeof(Base.show_unquoted), ::Expr)"
},
"children": [
]
}
]
}
]
},
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_unquoted_quote_expr(io::IO, value, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1781",
"method_instance": "MethodInstance for Base.show_unquoted_quote_expr(::IOBuffer, ::Any, ::Int64, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show(io::IO, s::Symbol) @ Base show.jl:1485",
"method_instance": "MethodInstance for show(::IOBuffer, ::Symbol)"
},
"children": [
{
"method_instance": {
"method": "print(io::IO, x) @ Base strings/io.jl:32",
"method_instance": "MethodInstance for print(::IOBuffer, ::Symbol)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_unquoted_expr_fallback(io::IO, ex::Expr, indent::Int64, quote_level::Int64) @ Base show.jl:1887",
"method_instance": "MethodInstance for Base.show_unquoted_expr_fallback(::IOBuffer, ::Expr, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Any, ::String, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Any, ::String, ::Int64, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_generator(io, ex::Expr, indent, quote_level) @ Base show.jl:1806",
"method_instance": "MethodInstance for Base.show_generator(::IOBuffer, ::Expr, ::Int64, ::Int64)"
},
"children": [
]
}
]
}
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::Char, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::Char, ::Int64, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
}
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::String, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::Symbol, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_enclosed_list(io::IO, op, items, sep, cl, indent, prec, quote_level, encl_ops, kw::Bool) @ Base show.jl:1682",
"method_instance": "MethodInstance for Base.show_enclosed_list(::IOBuffer, ::Char, ::Vector{Any}, ::Symbol, ::Char, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_enclosed_list(io::IO, op, items, sep, cl, indent, prec, quote_level, encl_ops) @ Base show.jl:1682",
"method_instance": "MethodInstance for Base.show_enclosed_list(::IOBuffer, ::Char, ::Vector{Any}, ::Symbol, ::Char, ::Int64, ::Int64, ::Int64, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
}
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Any}, ::Symbol, ::Int64, ::Int64, ::Int64, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
}
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOBuffer, ::Vector{Expr}, ::String, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_enclosed_list(io::IO, op, items, sep, cl, indent, prec, quote_level, encl_ops, kw::Bool) @ Base show.jl:1682",
"method_instance": "MethodInstance for Base.show_enclosed_list(::IOBuffer, ::Char, ::Vector{Expr}, ::String, ::Char, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
{
"method_instance": {
"method": "show_enclosed_list(io::IO, op, items, sep, cl, indent, prec) @ Base show.jl:1682",
"method_instance": "MethodInstance for Base.show_enclosed_list(::IOBuffer, ::Char, ::Vector{Expr}, ::String, ::Char, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
}
]
}
]
},
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "var\"#sprint#439\"(context, sizehint::Integer, ::typeof(sprint), f::Function, args...) @ Base strings/io.jl:106",
"method_instance": "MethodInstance for Base.var\"#sprint#439\"(::Nothing, ::Int64, ::typeof(sprint), ::typeof(show), ::Symbol)"
},
"children": [
]
},
{
"method_instance": {
"method": "var\"#sprint#439\"(context, sizehint::Integer, ::typeof(sprint), f::Function, args...) @ Base strings/io.jl:106",
"method_instance": "MethodInstance for Base.var\"#sprint#439\"(::Nothing, ::Int64, ::typeof(sprint), ::typeof(show), ::Symbol)"
},
"children": [
{
"method_instance": {
"method": "kwcall(::NamedTuple, ::typeof(sprint), f::Function, args...) @ Base strings/io.jl:106",
"method_instance": "MethodInstance for Core.kwcall(::@NamedTuple{context::Nothing}, ::typeof(sprint), ::typeof(show), ::Symbol)"
},
"children": [
{
"method_instance": {
"method": "var\"#repr#442\"(context, ::typeof(repr), x) @ Base strings/io.jl:282",
"method_instance": "MethodInstance for Base.var\"#repr#442\"(::Nothing, ::typeof(repr), ::Symbol)"
},
"children": [
{
"method_instance": {
"method": "repr(x; context) @ Base strings/io.jl:282",
"method_instance": "MethodInstance for repr(::Symbol)"
},
"children": [
{
"method_instance": {
"method": "(::Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\")(mode) @ Base.Compiler.IRShow none:0",
"method_instance": "MethodInstance for (::Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\")(::Symbol)"
},
"children": [
{
"method_instance": {
"method": "iterate(g::Base.Generator, s...) @ Base generator.jl:43",
"method_instance": "MethodInstance for iterate(::Base.Generator{Vector{Symbol}, Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\"})"
},
"children": [
{
"method_instance": {
"method": "_iterator_upper_bound(itr) @ Base array.jl:768",
"method_instance": "MethodInstance for Base._iterator_upper_bound(::Base.Generator{Vector{Symbol}, Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\"})"
},
"children": [
{
"method_instance": {
"method": "collect(itr::Base.Generator) @ Base array.jl:796",
"method_instance": "MethodInstance for collect(::Base.Generator{Vector{Symbol}, Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\"})"
},
"children": [
{
"method_instance": {
"method": "validate_debuginfo_mode(mode::Symbol) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:1191",
"method_instance": "MethodInstance for Base.Compiler.IRShow.validate_debuginfo_mode(::Symbol)"
},
"children": [
{
"method_instance": {
"method": "expand_debuginfo_mode(mode::Symbol, default) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:1197",
"method_instance": "MethodInstance for Base.Compiler.IRShow.expand_debuginfo_mode(::Symbol, ::Symbol)"
},
"children": [
{
"method_instance": {
"method": "expand_debuginfo_mode(mode::Symbol) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:1197",
"method_instance": "MethodInstance for Base.Compiler.IRShow.expand_debuginfo_mode(::Symbol)"
},
"children": [
{
"method_instance": {
"method": "get_debuginfo_printer(mode::Symbol) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:1205",
"method_instance": "MethodInstance for Base.Compiler.IRShow.get_debuginfo_printer(::Symbol)"
},
"children": [
{
"method_instance": {
"method": "get_debuginfo_printer(src, mode::Symbol) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:1210",
"method_instance": "MethodInstance for Base.Compiler.IRShow.get_debuginfo_printer(::Compiler.IRCode, ::Symbol)"
},
"children": [
{
"method_instance": {
"method": "var\"#default_config#26\"(debuginfo, ::typeof(Base.Compiler.IRShow.default_config), code::Compiler.IRCode) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:925",
"method_instance": "MethodInstance for Base.Compiler.IRShow.var\"#default_config#26\"(::Any, ::typeof(Base.Compiler.IRShow.default_config), ::Compiler.IRCode)"
},
"children": [
{
"method_instance": {
"method": "kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.default_config), code::Compiler.IRCode) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:925",
"method_instance": "MethodInstance for Core.kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.default_config), ::Compiler.IRCode)"
},
"children": [
]
},
{
"method_instance": {
"method": "kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.default_config), code::Compiler.IRCode) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:925",
"method_instance": "MethodInstance for Core.kwcall(::NamedTuple{(:debuginfo,), <:Tuple{Any}}, ::typeof(Base.Compiler.IRShow.default_config), ::Compiler.IRCode)"
},
"children": [
{
"method_instance": {
"method": "default_config(io::IO, src) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:929",
"method_instance": "MethodInstance for Base.Compiler.IRShow.default_config(::IO, ::Any)"
},
"children": [
]
},
{
"method_instance": {
"method": "default_config(io::IO, src) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:929",
"method_instance": "MethodInstance for Base.Compiler.IRShow.default_config(::IO, ::Compiler.IRCode)"
},
"children": [
{
"method_instance": {
"method": "kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.show_ir), io::IO, ir::Compiler.IRCode) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:953",
"method_instance": "MethodInstance for Core.kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.show_ir), ::IO, ::Compiler.IRCode)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_ir(io::IO, compact::Compiler.IncrementalCompact) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:977",
"method_instance": "MethodInstance for Base.Compiler.IRShow.show_ir(::IO, ::Compiler.IncrementalCompact)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_ir(io::IO, ir::Compiler.IRCode; ...) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:953",
"method_instance": "MethodInstance for Base.Compiler.IRShow.show_ir(::IO, ::Compiler.IRCode)"
},
"children": [
]
}
]
}
]
}
]
},
{
"method_instance": {
"method": "var\"#default_config#26\"(debuginfo, ::typeof(Base.Compiler.IRShow.default_config), code::Compiler.IRCode) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:925",
"method_instance": "MethodInstance for Base.Compiler.IRShow.var\"#default_config#26\"(::Symbol, ::typeof(Base.Compiler.IRShow.default_config), ::Compiler.IRCode)"
},
"children": [
{
"method_instance": {
"method": "default_config(code::Compiler.IRCode; debuginfo) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:925",
"method_instance": "MethodInstance for Base.Compiler.IRShow.default_config(::Compiler.IRCode)"
},
"children": [
{
"method_instance": {
"method": "default_config(io::IO, src) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:929",
"method_instance": "MethodInstance for Base.Compiler.IRShow.default_config(::IO, ::Any)"
},
"children": [
]
},
{
"method_instance": {
"method": "default_config(io::IO, src) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:929",
"method_instance": "MethodInstance for Base.Compiler.IRShow.default_config(::IO, ::Compiler.IRCode)"
},
"children": [
]
}
]
}
]
}
]
},
{
"method_instance": {
"method": "get_debuginfo_printer(src, mode::Symbol) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:1210",
"method_instance": "MethodInstance for Base.Compiler.IRShow.get_debuginfo_printer(::Core.CodeInfo, ::Symbol)"
},
"children": [
{
"method_instance": {
"method": "var\"#default_config#27\"(debuginfo, ::typeof(Base.Compiler.IRShow.default_config), code::Core.CodeInfo) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:928",
"method_instance": "MethodInstance for Base.Compiler.IRShow.var\"#default_config#27\"(::Any, ::typeof(Base.Compiler.IRShow.default_config), ::Core.CodeInfo)"
},
"children": [
{
"method_instance": {
"method": "kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.default_config), code::Core.CodeInfo) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:928",
"method_instance": "MethodInstance for Core.kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.default_config), ::Core.CodeInfo)"
},
"children": [
]
},
{
"method_instance": {
"method": "kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.default_config), code::Core.CodeInfo) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:928",
"method_instance": "MethodInstance for Core.kwcall(::NamedTuple{(:debuginfo,), <:Tuple{Any}}, ::typeof(Base.Compiler.IRShow.default_config), ::Core.CodeInfo)"
},
"children": [
{
"method_instance": {
"method": "default_config(io::IO, src) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:929",
"method_instance": "MethodInstance for Base.Compiler.IRShow.default_config(::IO, ::Any)"
},
"children": [
{
"method_instance": {
"method": "kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.show_ir), io::IO, ci::Core.CodeInfo) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:963",
"method_instance": "MethodInstance for Core.kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.show_ir), ::IO, ::Core.CodeInfo)"
},
"children": [
]
},
{
"method_instance": {
"method": "kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.show_ir), io::IO, ir::Compiler.IRCode) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:953",
"method_instance": "MethodInstance for Core.kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.show_ir), ::IO, ::Compiler.IRCode)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_ir(io::IO, ci::Core.CodeInfo; ...) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:963",
"method_instance": "MethodInstance for Base.Compiler.IRShow.show_ir(::IO, ::Core.CodeInfo)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_ir(io::IO, compact::Compiler.IncrementalCompact) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:977",
"method_instance": "MethodInstance for Base.Compiler.IRShow.show_ir(::IO, ::Compiler.IncrementalCompact)"
},
"children": [
{
"method_instance": {
"method": "show(io::IO, code::Union{Compiler.IRCode, Compiler.IncrementalCompact}) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:360",
"method_instance": "MethodInstance for show(::IO, ::Union{Compiler.IRCode, Compiler.IncrementalCompact})"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "show_ir(io::IO, ir::Compiler.IRCode; ...) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:953",
"method_instance": "MethodInstance for Base.Compiler.IRShow.show_ir(::IO, ::Compiler.IRCode)"
},
"children": [
{
"method_instance": {
"method": "show(io::IO, code::Union{Compiler.IRCode, Compiler.IncrementalCompact}) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:360",
"method_instance": "MethodInstance for show(::IO, ::Union{Compiler.IRCode, Compiler.IncrementalCompact})"
},
"children": [
]
}
]
}
]
},
{
"method_instance": {
"method": "default_config(io::IO, src) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:929",
"method_instance": "MethodInstance for Base.Compiler.IRShow.default_config(::IO, ::Core.CodeInfo)"
},
"children": [
{
"method_instance": {
"method": "kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.show_ir), io::IO, ci::Core.CodeInfo) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:963",
"method_instance": "MethodInstance for Core.kwcall(::NamedTuple, ::typeof(Base.Compiler.IRShow.show_ir), ::IO, ::Core.CodeInfo)"
},
"children": [
]
},
{
"method_instance": {
"method": "show_ir(io::IO, ci::Core.CodeInfo; ...) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:963",
"method_instance": "MethodInstance for Base.Compiler.IRShow.show_ir(::IO, ::Core.CodeInfo)"
},
"children": [
]
}
]
}
]
}
]
},
{
"method_instance": {
"method": "var\"#default_config#27\"(debuginfo, ::typeof(Base.Compiler.IRShow.default_config), code::Core.CodeInfo) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:928",
"method_instance": "MethodInstance for Base.Compiler.IRShow.var\"#default_config#27\"(::Symbol, ::typeof(Base.Compiler.IRShow.default_config), ::Core.CodeInfo)"
},
"children": [
{
"method_instance": {
"method": "default_config(code::Core.CodeInfo; debuginfo) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:928",
"method_instance": "MethodInstance for Base.Compiler.IRShow.default_config(::Core.CodeInfo)"
},
"children": [
{
"method_instance": {
"method": "default_config(io::IO, src) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:929",
"method_instance": "MethodInstance for Base.Compiler.IRShow.default_config(::IO, ::Any)"
},
"children": [
]
},
{
"method_instance": {
"method": "default_config(io::IO, src) @ Base.Compiler.IRShow ../usr/share/julia/Compiler/src/ssair/show.jl:929",
"method_instance": "MethodInstance for Base.Compiler.IRShow.default_config(::IO, ::Core.CodeInfo)"
},
"children": [
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"method_instance": {
"method": "collect(itr::Base.Generator) @ Base array.jl:796",
"method_instance": "MethodInstance for collect(::Base.Generator{Vector{Symbol}, Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\"})"
},
"children": [
]
}
]
},
{
"method_instance": {
"method": "iterate(g::Base.Generator, s...) @ Base generator.jl:43",
"method_instance": "MethodInstance for iterate(::Base.Generator{Vector{Symbol}, Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\"}, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "_iterator_upper_bound(itr) @ Base array.jl:768",
"method_instance": "MethodInstance for Base._iterator_upper_bound(::Base.Generator{Vector{Symbol}, Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\"})"
},
"children": [
]
},
{
"method_instance": {
"method": "collect_to!(dest::AbstractArray{T}, itr, offs, st) where T @ Base array.jl:856",
"method_instance": "MethodInstance for Base.collect_to!(::Vector{String}, ::Base.Generator{Vector{Symbol}, Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\"}, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "collect_to_with_first!(dest::AbstractArray, v1, itr, st) @ Base array.jl:836",
"method_instance": "MethodInstance for Base.collect_to_with_first!(::Vector{String}, ::String, ::Base.Generator{Vector{Symbol}, Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\"}, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "collect(itr::Base.Generator) @ Base array.jl:796",
"method_instance": "MethodInstance for collect(::Base.Generator{Vector{Symbol}, Base.Compiler.IRShow.var\"#validate_debuginfo_mode##0#validate_debuginfo_mode##1\"})"
},
"children": [
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"method_instance": {
"method": "show_block(io::IO, head, args::Vector, body, indent::Int64, quote_level::Int64) @ Base show.jl:1625",
"method_instance": "MethodInstance for Base.show_block(::IOContext{IOBuffer}, ::Symbol, ::Vector, ::Expr, ::Int64, ::Int64)"
},
"children": [
{
"method_instance": {
"method": "show_unquoted(io::IO, ex::Expr, indent::Int64, prec::Int64, quote_level::Int64) @ Base show.jl:1898",
"method_instance": "MethodInstance for Base.show_unquoted(::IOBuffer, ::Expr, ::Int64, ::Int64, ::Int64)"
},
"children": [
]
}
]
}
]
}
]
}
]
},
{
"method_instance": {
"method": "show_list(io::IO, items, sep, indent::Int64, prec::Int64, quote_level::Int64, enclose_operators::Bool, kw::Bool) @ Base show.jl:1654",
"method_instance": "MethodInstance for Base.show_list(::IOContext{IOBuffer}, ::Array, ::String, ::Int64, ::Int64, ::Int64, ::Bool, ::Bool)"
},
"children": [
]
}
]
}
]
}The above invalidations happen on struct I <: Integer end
function Base.one(::I) end |
Three methods of `length` are deleted. Made possible by moving the following methods to earlier within the bootstrapping: * `size(a::Array)` * `length(t::AbstractArray)` Improves abstract return type inference of `f(x::Array) = length(a)` because the method count is now low enough for the world-splitting optimization to kick in.
69810cc to
e021706
Compare
|
merge? |
|
this is a very nice simplification. we probably could continue the rework a bit more to get some further simplification. |
PR: |
Three methods of
lengthare deleted.Made possible by moving the following methods to earlier within the bootstrapping:
size(a::Array)length(t::AbstractArray)Improves abstract return type inference of
f(x::Array) = length(a), presumably because the method count is now low enough for the world-splitting optimization to kick in.