Shuhei Kadowaki
Shuhei Kadowaki
With this commit, we taint `:nothrow` effect property correctly on access to unknown `:static_parameter`, e.g.: ```julia unknown_sparam_throw(::Union{Nothing, Type{T}}) where T = (T; nothing) @test Core.Compiler.is_nothrow(Base.infer_effects(unknown_sparam_throw, ((Type{Int},)))) @test !Core.Compiler.is_nothrow(Base.infer_effects(unknown_sparam_throw, ((Nothing,)))) ```...
#46010 seems to have introduced a significant regression in cases like [`BaseBenchmarks.InferenceBenchmarks.many_local_vars`](https://github.com/JuliaCI/BaseBenchmarks.jl/blob/d4fd365d558f06488eb5c773ea5dfae2a4c901db/src/inference/InferenceBenchmarks.jl#L168-L183). There are some observation and discussion happening [here](https://github.com/JuliaLang/julia/commit/dd375e199b6f17d5a14bbf1339d8a74cf5a3bb62): - benchmark result: https://github.com/JuliaLang/julia/commit/dd375e199b6f17d5a14bbf1339d8a74cf5a3bb62#commitcomment-82877581 - profiling: https://github.com/JuliaLang/julia/commit/dd375e199b6f17d5a14bbf1339d8a74cf5a3bb62#commitcomment-83236324
We may also want to have a linter for cases like: ```julia module A include("include2.jl") # [...] include("include2.jl") end ``` maybe using `included_files` information combined with currently-analyzed module context, but...
https://github.com/JuliaLang/julia/pull/46629 changed the inlining of const `GlobalRef`, that caused the failures of the `irshow` test cases. We should rather enable this test only on nightly, and maybe also want to...
It has been possible for external abstract interpreters to keep custom data in `codeinst.inferred` (together /w overloading `inlining_policy`). After JuliaLang/julia#52233, when such external absint uses `InternalCodeCache`, this data is passed...
Leverages JuliaLang/julia#52233 to use the internal code cache that comes with the inherent invalidation support. Still requires: - JuliaLang/julia#53300 (or JuliaLang/julia#53219) - JuliaLang/julia#53318
To get nicer error reports.
Here is some demo: ```julia julia> using JET, Test julia> pass = @analysispass JET.OptAnalyzer; julia> call_xs(f, xs) = f(xs[]); julia> # run without runtime dispatch @test pass() do call_xs(sin, Ref(42))...