Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backports for 1.11.0-rc1 #54611

Merged
merged 71 commits into from
Jun 25, 2024
Merged

Backports for 1.11.0-rc1 #54611

merged 71 commits into from
Jun 25, 2024

Commits on May 29, 2024

  1. typeintersect: fix incorrect innervar handling under circular env (#5…

    …4545)
    
    The infinite loop encountered in #54516 has been traced back to a
    circular bound during `finish_unionall`.
    As we insert innervar more eagerly now, the direct `jl_has_typevar`
    could not find all circularity.
    To address this, `has_typevar_via_flatten_env` is added to perform
    thorough check.
    Although there is some code duplication with `reachable_var`, it could
    be improved in future refactoring.
    
    #54516 also highlighted another free var escaping regression since
    v1.10. This regression is not solely
    the result of incomplete checks, it is also caused by the missing final
    substitution of `vb`'s bound, which has now been corrected.
    
    At last, this PR adds an assertion of sorting complexity, which should
    facilitate the detection of similar issues by PkgEval.
    
    close #54516
    
    (cherry picked from commit 92dfdca)
    N5N3 authored and KristofferC committed May 29, 2024
    Configuration menu
    Copy the full SHA
    84bde3f View commit details
    Browse the repository at this point in the history
  2. [backport] v1.11: mark Lockable as public and update NEWS.md for Lo…

    …ckable not being exported (again) (#54612)
    
    
    ---------
    
    Co-authored-by: Fredrik Ekre <[email protected]>
    ericphanson and fredrikekre authored May 29, 2024
    Configuration menu
    Copy the full SHA
    862f863 View commit details
    Browse the repository at this point in the history

Commits on Jun 4, 2024

  1. [LBT] Upgrade to v5.9.0 (#54361)

    (cherry picked from commit 9d8e0e7)
    amontoison authored and KristofferC committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    0df6f80 View commit details
    Browse the repository at this point in the history
  2. CLI: Use GetModuleHandleExW to locate libjulia.dll (#54617)

    This should be a more reliable look-up, since this will directly report
    the path of the currently-executing libjulia.dll.
    
    Without this PR, `LoadLibraryW` depends on the system library search
    order. When the top-level executable is adjacent to `libjulia.dll` (as
    it is for our binary distribution usually), then that search should be
    OK.
    
    However, applications that use Julia as a library can end up searching
    the system PATH before making it to the correct `lib/julia` directory,
    causing us to load the wrong version of `libjulia.dll`. In many cases,
    that extra load is benign due to the stricter separation of
    libraries/symbols on Windows - However, in general it's likely to be the
    cause of subtle bugs.
    
    (cherry picked from commit c11245d)
    topolarity authored and KristofferC committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    b1a30d2 View commit details
    Browse the repository at this point in the history
  3. Allow libquadmath to also fail as it is not available on all systems (#…

    …54605)
    
    Fix #41613.
    
    Co-authored-by: FX Coudert <[email protected]>
    (cherry picked from commit e5549c2)
    ViralBShah authored and KristofferC committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    9e2cb49 View commit details
    Browse the repository at this point in the history
  4. ensure we set the right value to gc_first_tid (#54645)

    This may introduce a correctness issue in the work-stealing termination
    loop if we're using interactive threads and GC threads simultaneously.
    
    Indeed, if we forget to add `nthreadsi` to `nthreads`, then we're
    checking in the mark-loop termination protocol a range `[gc_first_tid,
    gc_first_tid + jl_n_markthreads)` of threads which is "shifted to the
    left" compared to what it should be.
    
    This implies that we will not be checking whether the GC threads with
    higher TID actually have terminated the mark-loop.
    
    (cherry picked from commit c52eee2)
    d-netto authored and KristofferC committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    166a82c View commit details
    Browse the repository at this point in the history
  5. Construct LazyString in error paths for tridiag (#54648)

    Similar to #54631, this would
    help reduce dynamic dispatches involved in concatenating a `String` and
    a `LazyString`.
    
    These show up in
    ```julia
    julia> @report_opt Tridiagonal(rand(1), rand(2), rand(1)) \ rand(2)
    [ Info: tracking Base
    ┌ Warning: skipping var"#sprint#594"(context, sizehint::Integer, ::typeof(sprint), f::Function, args...) @ Base strings/io.jl:107 to avoid parsing too much code
    └ @ Revise ~/.julia/packages/Revise/bAgL0/src/packagedef.jl:1092
    ┌ Warning: skipping (::Base.var"#120#121")(io) @ Base strings/lazy.jl:84 to avoid parsing too much code
    └ @ Revise ~/.julia/packages/Revise/bAgL0/src/packagedef.jl:1092
    ═════ 1 possible error found ═════
    ┌ \(A::Tridiagonal{Float64, Vector{Float64}}, B::Vector{Float64}) @ LinearAlgebra /cache/build/builder-amdci4-5/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/LinearAlgebra/src/generic.jl:1132
    │┌ lu(::Tridiagonal{Float64, Vector{Float64}}) @ LinearAlgebra /cache/build/builder-amdci4-5/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/LinearAlgebra/src/lu.jl:341
    ││┌ lu(::Tridiagonal{Float64, Vector{Float64}}; kwargs::@kwargs{}) @ LinearAlgebra /cache/build/builder-amdci4-5/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/LinearAlgebra/src/lu.jl:341
    │││┌ _lucopy(A::Tridiagonal{Float64, Vector{Float64}}, T::Type{Float64}) @ LinearAlgebra /cache/build/builder-amdci4-5/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/LinearAlgebra/src/lu.jl:351
    ││││┌ copymutable_oftype(A::Tridiagonal{Float64, Vector{Float64}}, ::Type{Float64}) @ LinearAlgebra /cache/build/builder-amdci4-5/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/LinearAlgebra/src/LinearAlgebra.jl:463
    │││││┌ similar(M::Tridiagonal{Float64, Vector{Float64}}, ::Type{Float64}) @ LinearAlgebra /cache/build/builder-amdci4-5/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/LinearAlgebra/src/tridiag.jl:603
    ││││││┌ Tridiagonal(dl::Vector{Float64}, d::Vector{Float64}, du::Vector{Float64}) @ LinearAlgebra /cache/build/builder-amdci4-5/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/LinearAlgebra/src/tridiag.jl:520
    │││││││┌ Tridiagonal{Float64, Vector{Float64}}(dl::Vector{Float64}, d::Vector{Float64}, du::Vector{Float64}) @ LinearAlgebra /cache/build/builder-amdci4-5/julialang/julia-release-1-dot-11/usr/share/julia/stdlib/v1.11/LinearAlgebra/src/tridiag.jl:477
    ││││││││┌ string(::String, ::String, ::LazyString) @ Base ./strings/io.jl:189
    │││││││││┌ print_to_string(::String, ::String, ::LazyString) @ Base ./strings/io.jl:148
    ││││││││││┌ print(io::IOBuffer, s::LazyString) @ Base ./strings/io.jl:195
    │││││││││││┌ iterate(s::LazyString) @ Base ./strings/lazy.jl:94
    ││││││││││││┌ String(l::LazyString) @ Base ./strings/lazy.jl:83
    │││││││││││││┌ sprint(::Base.var"#120#121"{LazyString}) @ Base ./strings/io.jl:107
    ││││││││││││││┌ sprint(::Base.var"#120#121"{LazyString}; context::Nothing, sizehint::Int64) @ Base ./strings/io.jl:114
    │││││││││││││││┌ (::Base.var"#120#121"{LazyString})(io::IOBuffer) @ Base ./strings/lazy.jl:85
    ││││││││││││││││ runtime dispatch detected: print(io::IOBuffer, %16::Any)::Any
    │││││││││││││││└────────────────────
    ```
    
    Co-authored-by: Shuhei Kadowaki <[email protected]>
    Co-authored-by: Dilum Aluthge <[email protected]>
    (cherry picked from commit 770a464)
    jishnub authored and KristofferC committed Jun 4, 2024
    Configuration menu
    Copy the full SHA
    7ed2a6d View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2024

  1. inference: fix too conservative effects for recursive cycles (#54323)

    The `:terminates` effect bit must be conservatively tainted unless
    recursion cycle has been fully resolved. As for other effects, there's
    no need to taint them at this moment because they will be tainted as we
    try to resolve the cycle.
    
    - fixes #52938
    - xref #51092
    aviatesk committed Jun 5, 2024
    Configuration menu
    Copy the full SHA
    2cea685 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2024

  1. inference: follow up #54323, override ssaflags with new cycle effects (

    …#54689)
    
    #54323 ensures that all frames within a cycle have the
    same, cycle valid effects. However, `src.ssaflags` is calculated using
    partial effects, so when the effects of a `frame` within the cycle are
    updated, there would be an inconsistency between `frame.ipo_effects` and
    `frame.src.ssaflags`. Due to this inconsistency, #54323
    breaks the test cases from #51092, when backported to
    v1.11. On the surface this is because #52999 hasn't been
    backported to v1.11, but the fundamental issue lies in this
    inconsistency between cycle effects and `ssaflags`.
    
    To resolve this issue, this commit traverses `cycle_backedges` to visit
    statements involved in the cycle, and updates each `ssaflags` according
    to new cycle valid effects if necessary.
    aviatesk committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    c0f71e7 View commit details
    Browse the repository at this point in the history
  2. Switch to Pkg mode prompt immediately and load Pkg in the background (#…

    …54594)
    
    Because Pkg is now a pkgimage it can load slowly on slower machines,
    which is a bit frustrating in the first repl switch.
    
    This makes the repl immediately switch to a dummy prompt that looks like
    Pkg mode to allow the user to keep typing while Pkg loads. During which
    the keymap is disabled.
    
    It works best if julia has >1 thread, otherwise typing stalls during Pkg
    load.
    
    If Pkg takes longer to load than the user to type the command and press
    return, then the UX isn't great as it won't do anything.
    
    https://github.com/JuliaLang/julia/assets/1694067/1bf17323-441a-4db2-8a3b-4d571eac622f
    (cherry picked from commit 13635e1)
    IanButterworth authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    92f5aa5 View commit details
    Browse the repository at this point in the history
  3. Improve error message in inplace transpose (#54669)

    (cherry picked from commit 9eb7a0c)
    jishnub authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    10c2e64 View commit details
    Browse the repository at this point in the history
  4. Add boundscheck in bindingkey_eq to avoid OOB access due to data race (

    …#54671)
    
    The race here is that svec might be replaced and a new binding
    introduced into the keyset while we hold a reference to the old svec,
    which led to a OOB access on the svec with the index a binding
    introduced at the same time. This now introduces a bounds check which
    will force taking the lock if we fail the lookup i.e we had a data race.
    
    Fixes #54285
    
    ---------
    
    Co-authored-by: Jameson Nash <[email protected]>
    (cherry picked from commit 20f03dd)
    gbaraldi authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    9353607 View commit details
    Browse the repository at this point in the history
  5. make: Fix sed command for LLVM libraries with no symbol versioning (#…

    …54672)
    
    If the LLVM library was built without symbol versioning, previously this
    would return the `nm` output in its entirety, instead of correctly
    reporting "" as the LLVM symbol version.
    
    (cherry picked from commit debaa73)
    topolarity authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    60cc3ab View commit details
    Browse the repository at this point in the history
  6. LazyString in reinterpretarray error messages (#54704)

    This should remove the dynamic dispatch flagged by JET, e.g. in
    ```julia
    julia> using JET
    
    julia> @report_opt reinterpret(Float64, [1.0im;;])
    [ Info: tracking Base
    ┌ Warning: skipping (::Base.var"#thrownonint#375")(S::Type, T::Type, dim) @ Base reinterpretarray.jl:68 to avoid parsing too much code
    └ @ Revise ~/.julia/packages/Revise/bAgL0/src/packagedef.jl:1092
    ┌ Warning: skipping (::Base.var"#show_bound#661")(io::IO, b) @ Base show.jl:2777 to avoid parsing too much code
    └ @ Revise ~/.julia/packages/Revise/bAgL0/src/packagedef.jl:1092
    ┌ Warning: skipping (::Base.var"#show_bound#661")(io::IO, b) @ Base show.jl:2777 to avoid parsing too much code
    └ @ Revise ~/.julia/packages/Revise/bAgL0/src/packagedef.jl:1092
    ═════ 32 possible errors found ═════
    ┌ reinterpret(::Type{Float64}, a::Matrix{ComplexF64}) @ Base ./reinterpretarray.jl:88
    │┌ (::Base.var"#thrownonint#375")(S::Type{ComplexF64}, T::Type{Float64}, dim::Int64) @ Base ./reinterpretarray.jl:70
    ││┌ string(::String, ::Type{ComplexF64}, ::String, ::Type{Float64}, ::String, ::Int64, ::String) @ Base ./strings/io.jl:189
    │││┌ print_to_string(::String, ::Type{ComplexF64}, ::String, ::Type{Float64}, ::String, ::Int64, ::String) @ Base ./strings/io.jl:148
    ││││┌ print(io::IOBuffer, x::DataType) @ Base ./strings/io.jl:35
    │││││┌ show(io::IOBuffer, x::DataType) @ Base ./show.jl:970
    ││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:975
    │││││││┌ show_typealias(io::IOBuffer, x::Type) @ Base ./show.jl:810
    ││││││││┌ make_typealias(x::Type) @ Base ./show.jl:620
    │││││││││┌ modulesof!(s::Set{Module}, x::Type) @ Base ./show.jl:595
    ││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %20::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ modulesof!(s::Set{Module}, x::Type) @ Base ./show.jl:596
    ││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %34::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ modulesof!(s::Set{Module}, x::TypeVar) @ Base ./show.jl:589
    ││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %1::Any)::Set{Module}
    │││││││││└────────────────────
    │││││││┌ show_typealias(io::IOBuffer, x::Type) @ Base ./show.jl:813
    ││││││││┌ show_typealias(io::IOBuffer, name::GlobalRef, x::Type, env::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:760
    │││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:724
    ││││││││││┌ show(io::IOContext{IOBuffer}, tv::TypeVar) @ Base ./show.jl:2788
    │││││││││││┌ (::Base.var"#show_bound#661")(io::IOContext{IOBuffer}, b::Any) @ Base ./show.jl:2780
    ││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, b::Any)::Any
    │││││││││││└────────────────────
    │││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:719
    ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %252::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:722
    ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %313::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:727
    ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %191::Any)::Any
    │││││││││└────────────────────
    ││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:978
    │││││││┌ show_datatype(io::IOBuffer, x::DataType) @ Base ./show.jl:1094
    ││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1097
    │││││││││┌ maybe_kws_nt(x::DataType) @ Base ./show.jl:1085
    ││││││││││ runtime dispatch detected: eltype(%76::DataType)::Any
    │││││││││└────────────────────
    ││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1186
    │││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:724
    ││││││││││┌ show(io::IOBuffer, tv::TypeVar) @ Base ./show.jl:2788
    │││││││││││┌ (::Base.var"#show_bound#661")(io::IOBuffer, b::Any) @ Base ./show.jl:2780
    ││││││││││││ runtime dispatch detected: show(io::IOBuffer, b::Any)::Any
    │││││││││││└────────────────────
    │││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:719
    ││││││││││ runtime dispatch detected: show(io::IOBuffer, %250::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:722
    ││││││││││ runtime dispatch detected: show(io::IOBuffer, %310::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:727
    ││││││││││ runtime dispatch detected: show(io::IOBuffer, %190::Any)::Any
    │││││││││└────────────────────
    ││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1157
    │││││││││ runtime dispatch detected: show(io::IOBuffer, %224::Any)::Any
    ││││││││└────────────────────
    ││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1162
    │││││││││ runtime dispatch detected: show(io::IOBuffer, %54::Any)::Any
    ││││││││└────────────────────
    ││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1148
    │││││││││ runtime dispatch detected: show(io::IOBuffer, %57::Any)::Any
    ││││││││└────────────────────
    ││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1150
    │││││││││ runtime dispatch detected: show(io::IOBuffer, %54::Any)::Any
    ││││││││└────────────────────
    ││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1172
    │││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOBuffer, %329::Tuple, %328::DataType)::Any
    ││││││││└────────────────────
    ││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:981
    │││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:901
    ││││││││┌ make_typealiases(x::Union) @ Base ./show.jl:822
    │││││││││┌ modulesof!(s::Set{Module}, x::Union) @ Base ./show.jl:595
    ││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %3::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ modulesof!(s::Set{Module}, x::Union) @ Base ./show.jl:596
    ││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %17::Any)::Any
    │││││││││└────────────────────
    │││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:914
    ││││││││ runtime dispatch detected: show(io::IOBuffer, %89::Any)::Any
    │││││││└────────────────────
    │││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:920
    ││││││││ runtime dispatch detected: Base.show_typealias(io::IOBuffer, %206::Any, x::Union, %204::Core.SimpleVector, %205::Vector{TypeVar})::Any
    │││││││└────────────────────
    │││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:928
    ││││││││ runtime dispatch detected: Base.show_typealias(io::IOBuffer, %269::Any, x::Union, %267::Core.SimpleVector, %268::Vector{TypeVar})::Any
    │││││││└────────────────────
    ││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:985
    │││││││┌ show_delim_array(io::IOBuffer, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool) @ Base ./show.jl:1392
    ││││││││┌ show_delim_array(io::IOBuffer, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool, i1::Int64, l::Int64) @ Base ./show.jl:1403
    │││││││││ runtime dispatch detected: show(%3::IOContext{IOBuffer}, %52::Any)::Any
    ││││││││└────────────────────
    ││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:1012
    │││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1185
    ││││││││┌ show_type_name(io::IOContext{IOBuffer}, tn::Core.TypeName) @ Base ./show.jl:1059
    │││││││││ runtime dispatch detected: Base.isvisible(%29::Symbol, %86::Module, %80::Any)::Bool
    ││││││││└────────────────────
    │││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1157
    ││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %227::Any)::Any
    │││││││└────────────────────
    │││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1162
    ││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %55::Any)::Any
    │││││││└────────────────────
    │││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1148
    ││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %58::Any)::Any
    │││││││└────────────────────
    │││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1150
    ││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %55::Any)::Any
    │││││││└────────────────────
    │││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1172
    ││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOContext{IOBuffer}, %338::Tuple, %337::DataType)::Any
    │││││││└────────────────────
    │││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1180
    ││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOContext{IOBuffer}, %387::Tuple, %391::DataType)::Any
    │││││││└────────────────────
    ││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:1014
    │││││││ runtime dispatch detected: show(%98::IOContext{IOBuffer}, %99::Any)::Any
    ││││││└────────────────────
    │││││┌ show(io::IOBuffer, x::DataType) @ Base ./show.jl:970
    ││││││ runtime dispatch detected: Base._show_type(io::IOBuffer, %1::Any)::Nothing
    │││││└────────────────────
    ```
    
    (cherry picked from commit b54c688)
    jishnub authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    77f4bc6 View commit details
    Browse the repository at this point in the history
  7. make AbstractPipe public (#54191)

    (cherry picked from commit cd41d6f)
    LilithHafner authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    05f40c3 View commit details
    Browse the repository at this point in the history
  8. Aggressive constprop in trevc! to stabilize triangular eigvec (#54635)

    We may use aggressive constprop in `trevc!` to eliminate branches, which
    makes the return type of `eigvec(::UpperTriangular)` concretely
    inferred.
    ```julia
    julia> @inferred eigvecs(UpperTriangular([1 0; 0 1]))
    2×2 Matrix{Float32}:
     1.0  -0.0
     0.0   1.0
    ```
    
    (cherry picked from commit ea8b4af)
    jishnub authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    207ada2 View commit details
    Browse the repository at this point in the history
  9. make elsize public (#54554)

    It's part of the strided arrays API
    
    https://docs.julialang.org/en/v1/manual/interfaces/#man-interface-strided-arrays
    (cherry picked from commit 4896473)
    LilithHafner authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    26053dc View commit details
    Browse the repository at this point in the history
  10. fix missing uuid check on extension when finding the location of an e…

    …xtension (#54658)
    
    in stacked environments with name collisions of extensions, this could
    compute the path for the wrong extension
    
    Fixes JuliaLang/Pkg.jl#3906
    
    (cherry picked from commit 5034e87)
    KristofferC authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    baf763d View commit details
    Browse the repository at this point in the history
  11. Rename at-scriptdir project argument to at-script and search upwards …

    …for Project.toml (#53356)
    
    Closes #53352
    
    I also noticed it wasn't mentioned in the NEWs.md
    and so I added it .
    
    Reconciling the relative path behavior, with the search upwads behavour
    requested in #53352 is a thing.
    
    (cherry picked from commit a60f22e)
    oxinabox authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    ddd5c28 View commit details
    Browse the repository at this point in the history
  12. Fixes for bitcast bugs with LLVM 17 / opaque pointers (#54548)

    Skip setName on folded inputs, and ensure
    the correct pointer address space is used.
    
    (cherry picked from commit baca8ba)
    maleadt authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    4bc3d07 View commit details
    Browse the repository at this point in the history
  13. Add jl_getaffinity and jl_setaffinity (#53402)

    This PR adds two functions `jl_getaffinity` and `jl_setaffinity` to the
    runtime, which are slim wrappers around `uv_thread_getaffinity` and
    `uv_thread_setaffinity` and can be used to set the affinity of Julia
    threads.
    
    This will
    * simplify thread pinning (ThreadPinning.jl currently pins threads by
    spawning tasks that run the necessary ccalls) and
    * enable users to also pin GC threads (or, more generally, all Julia
    threads).
    
    **Example:**
    ```julia
    bauerc@n2lcn0146 julia git:(cb/affinity)
    ➜ ./julia -q --startup-file=no --threads 2,3 --gcthreads 4,1
    julia> cpumasksize = @CCall uv_cpumask_size()::Cint
    1024
    
    julia> mask = zeros(Cchar, cpumasksize);
    
    julia> jl_getaffinity(tid, mask, cpumasksize) = ccall(:jl_getaffinity, Int32, (Int16, Ptr{Cchar}, Int32), tid, mask, cpumasksize)
    jl_getaffinity (generic function with 1 method)
    
    julia> jl_getaffinity(1, mask, cpumasksize)
    0
    
    julia> print(mask[1:Sys.CPU_THREADS])
    Int8[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    
    julia> mask[1] = 0;
    
    julia> jl_setaffinity(tid, mask, cpumasksize) = ccall(:jl_setaffinity, Int32, (Int16, Ptr{Cchar}, Int32), tid, mask, cpumasksize)
    jl_setaffinity (generic function with 1 method)
    
    julia> jl_setaffinity(1, mask, cpumasksize)
    0
    
    julia> fill!(mask, 0);
    
    julia> jl_getaffinity(1, mask, cpumasksize)
    0
    
    julia> print(mask[1:Sys.CPU_THREADS])
    Int8[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    ```
    (cc @vchuravy, @gbaraldi)
    
    Would be great to get this into 1.11 (despite feature freeze) because
    otherwise we won't be able to pin GC threads until 1.12 (likely not
    until the end of the year).
    
    Closes #53073
    
    ---------
    
    Co-authored-by: Valentin Churavy <[email protected]>
    Co-authored-by: Dilum Aluthge <[email protected]>
    (cherry picked from commit 065aeb6)
    carstenbauer authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    6b4b5ef View commit details
    Browse the repository at this point in the history
  14. Set storage class of julia globals to dllimport on windows to avoid a…

    …uto-import weirdness (#54586)
    
    Forward port of #54572
    
    (cherry picked from commit efc35a6)
    gbaraldi authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    90acf2a View commit details
    Browse the repository at this point in the history
  15. more precise aliasing checks for SubArray (#54624)

    This avoids returning false positives where only the indices are shared.
    As the indices are not mutated by array assignments (and are explicitly
    warned against mutation in general), we can ignore the case where _only_
    the indices are aliasing.
    
    Fix #54621
    
    (cherry picked from commit 97bf148)
    mbauman authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    45b38b3 View commit details
    Browse the repository at this point in the history
  16. 🤖 [master] Bump the Distributed stdlib from 6a07d98 to 6c7cdb5 (#54679)

    Stdlib: Distributed
    URL: https://github.com/JuliaLang/Distributed.jl
    Stdlib branch: master
    Julia branch: master
    Old commit: 6a07d98
    New commit: 6c7cdb5
    Julia version: 1.12.0-DEV
    Distributed version: 1.11.0(Does not match)
    Bump invoked by: @Keno
    Powered by:
    [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl)
    
    Diff:
    JuliaLang/Distributed.jl@6a07d98...6c7cdb5
    
    ```
    $ git log --oneline 6a07d98..6c7cdb5
    6c7cdb5 Don't rely on implicit binding creation by setglobal (#102)
    3b889ee Create dependabot.yml (#82)
    ```
    
    Co-authored-by: Dilum Aluthge <[email protected]>
    Co-authored-by: Keno Fischer <[email protected]>
    (cherry picked from commit 06a90c5)
    DilumAluthgeBot authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    5b3a5e4 View commit details
    Browse the repository at this point in the history
  17. Fix tbaa annotation on union selector bytes inside of structs (#54604)

    We currently cause a alias analysis contradiction by saying that the
    unionselbytes are on the stack, even if they are on a struct. LLVM is
    then able to figure out that we giving it a impossible alias situation
    (the object doesn't alias itself) and triggers UB.
    
    https://godbolt.org/z/ssEKMzsPf
    
    We may want to do a benchmarks run on this to see if anything too
    critical hasn't regressed.
    
    Fixes #54599
    
    ---------
    
    Co-authored-by: Cody Tapscott <[email protected]>
    (cherry picked from commit 30542e0)
    gbaraldi authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    bab6633 View commit details
    Browse the repository at this point in the history
  18. Fix assertion/crash when optimizing function with dead basic block (#…

    …54690)
    
    AllocOpt probably needs to handle that in other places more smartly but
    this seems to at least stop it crashing. Fixes issue found in
    #54604 (comment) by
    @topolarity.
    
    (cherry picked from commit 5cb1107)
    gbaraldi authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    e8662da View commit details
    Browse the repository at this point in the history
  19. Unalias source from dest in copytrito (#54474)

    (cherry picked from commit 72d644f)
    jishnub authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    0653044 View commit details
    Browse the repository at this point in the history
  20. Accomodate for rectangular matrices in copytrito! (#54587)

    (cherry picked from commit fc54be6)
    dkarrasch authored and KristofferC committed Jun 7, 2024
    Configuration menu
    Copy the full SHA
    d07a863 View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2024

  1. Configuration menu
    Copy the full SHA
    b69fc57 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c057940 View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2024

  1. Fix trampoline assembly for build on clang 18 on apple silicon (#54634)

    This avoids a: `error: non-private labels cannot appear between
    .cfi_startproc / .cfi_endproc pairs` error.
    That error was introduced in https://reviews.llvm.org/D155245#4657075
    see also llvm/llvm-project#72802
    
    (cherry picked from commit a4e793e)
    gbaraldi authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    4d53a38 View commit details
    Browse the repository at this point in the history
  2. fix prepend StackOverflow issue (#54718)

    Attempt to fix #54711
    Test introduced by #36227
    
    ---------
    
    Co-authored-by: Shuhei Kadowaki <[email protected]>
    (cherry picked from commit 9477472)
    vtjnash authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    fe51261 View commit details
    Browse the repository at this point in the history
  3. Reimplement dummy pkg prompt as standard prompt (#54674)

    (cherry picked from commit 77c28ab)
    IanButterworth authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    115d090 View commit details
    Browse the repository at this point in the history
  4. LazyString in interpolated error messages involving types (#54737)

    These are often badly inferred, e.g. in:
    ```julia
    julia> @report_opt 2//2
    ┌ Warning: skipping (::Base.var"#show_bound#661")(io::IO, b) @ Base show.jl:2777 to avoid parsing too much code
    └ @ Revise ~/.julia/packages/Revise/bAgL0/src/packagedef.jl:1092
    ┌ Warning: skipping (::Base.var"#show_bound#661")(io::IO, b) @ Base show.jl:2777 to avoid parsing too much code
    └ @ Revise ~/.julia/packages/Revise/bAgL0/src/packagedef.jl:1092
    ═════ 32 possible errors found ═════
    ┌ //(n::Int64, d::Int64) @ Base ./rational.jl:84
    │┌ Rational(n::Int64, d::Int64) @ Base ./rational.jl:48
    ││┌ Rational{Int64}(num::Int64, den::Int64) @ Base ./rational.jl:32
    │││┌ __throw_rational_argerror_zero(T::Type{Int64}) @ Base ./rational.jl:30
    ││││┌ string(::String, ::Type{Int64}, ::String, ::Type{Int64}, ::String) @ Base ./strings/io.jl:189
    │││││┌ print_to_string(::String, ::Type{Int64}, ::String, ::Type{Int64}, ::String) @ Base ./strings/io.jl:148
    ││││││┌ print(io::IOBuffer, x::DataType) @ Base ./strings/io.jl:35
    │││││││┌ show(io::IOBuffer, x::DataType) @ Base ./show.jl:970
    ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:975
    │││││││││┌ show_typealias(io::IOBuffer, x::Type) @ Base ./show.jl:810
    ││││││││││┌ make_typealias(x::Type) @ Base ./show.jl:620
    │││││││││││┌ modulesof!(s::Set{Module}, x::Type) @ Base ./show.jl:595
    ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %20::Any)::Any
    │││││││││││└────────────────────
    │││││││││││┌ modulesof!(s::Set{Module}, x::Type) @ Base ./show.jl:596
    ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %34::Any)::Any
    │││││││││││└────────────────────
    │││││││││││┌ modulesof!(s::Set{Module}, x::TypeVar) @ Base ./show.jl:589
    ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %1::Any)::Set{Module}
    │││││││││││└────────────────────
    │││││││││┌ show_typealias(io::IOBuffer, x::Type) @ Base ./show.jl:813
    ││││││││││┌ show_typealias(io::IOBuffer, name::GlobalRef, x::Type, env::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:760
    │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:724
    ││││││││││││┌ show(io::IOContext{IOBuffer}, tv::TypeVar) @ Base ./show.jl:2788
    │││││││││││││┌ (::Base.var"#show_bound#661")(io::IOContext{IOBuffer}, b::Any) @ Base ./show.jl:2780
    ││││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, b::Any)::Any
    │││││││││││││└────────────────────
    │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:719
    ││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %252::Any)::Any
    │││││││││││└────────────────────
    │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:722
    ││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %313::Any)::Any
    │││││││││││└────────────────────
    │││││││││││┌ show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:727
    ││││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %191::Any)::Any
    │││││││││││└────────────────────
    ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:978
    │││││││││┌ show_datatype(io::IOBuffer, x::DataType) @ Base ./show.jl:1094
    ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1097
    │││││││││││┌ maybe_kws_nt(x::DataType) @ Base ./show.jl:1085
    ││││││││││││ runtime dispatch detected: eltype(%76::DataType)::Any
    │││││││││││└────────────────────
    ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1186
    │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:724
    ││││││││││││┌ show(io::IOBuffer, tv::TypeVar) @ Base ./show.jl:2788
    │││││││││││││┌ (::Base.var"#show_bound#661")(io::IOBuffer, b::Any) @ Base ./show.jl:2780
    ││││││││││││││ runtime dispatch detected: show(io::IOBuffer, b::Any)::Any
    │││││││││││││└────────────────────
    │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:719
    ││││││││││││ runtime dispatch detected: show(io::IOBuffer, %250::Any)::Any
    │││││││││││└────────────────────
    │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:722
    ││││││││││││ runtime dispatch detected: show(io::IOBuffer, %310::Any)::Any
    │││││││││││└────────────────────
    │││││││││││┌ show_typeparams(io::IOBuffer, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar}) @ Base ./show.jl:727
    ││││││││││││ runtime dispatch detected: show(io::IOBuffer, %190::Any)::Any
    │││││││││││└────────────────────
    ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1157
    │││││││││││ runtime dispatch detected: show(io::IOBuffer, %224::Any)::Any
    ││││││││││└────────────────────
    ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1162
    │││││││││││ runtime dispatch detected: show(io::IOBuffer, %54::Any)::Any
    ││││││││││└────────────────────
    ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1148
    │││││││││││ runtime dispatch detected: show(io::IOBuffer, %57::Any)::Any
    ││││││││││└────────────────────
    ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1150
    │││││││││││ runtime dispatch detected: show(io::IOBuffer, %54::Any)::Any
    ││││││││││└────────────────────
    ││││││││││┌ show_datatype(io::IOBuffer, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1172
    │││││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOBuffer, %329::Tuple, %328::DataType)::Any
    ││││││││││└────────────────────
    ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:981
    │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:901
    ││││││││││┌ make_typealiases(x::Union) @ Base ./show.jl:822
    │││││││││││┌ modulesof!(s::Set{Module}, x::Union) @ Base ./show.jl:595
    ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %3::Any)::Any
    │││││││││││└────────────────────
    │││││││││││┌ modulesof!(s::Set{Module}, x::Union) @ Base ./show.jl:596
    ││││││││││││ runtime dispatch detected: Base.modulesof!(s::Set{Module}, %17::Any)::Any
    │││││││││││└────────────────────
    │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:914
    ││││││││││ runtime dispatch detected: show(io::IOBuffer, %89::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:920
    ││││││││││ runtime dispatch detected: Base.show_typealias(io::IOBuffer, %206::Any, x::Union, %204::Core.SimpleVector, %205::Vector{TypeVar})::Any
    │││││││││└────────────────────
    │││││││││┌ show_unionaliases(io::IOBuffer, x::Union) @ Base ./show.jl:928
    ││││││││││ runtime dispatch detected: Base.show_typealias(io::IOBuffer, %269::Any, x::Union, %267::Core.SimpleVector, %268::Vector{TypeVar})::Any
    │││││││││└────────────────────
    ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:985
    │││││││││┌ show_delim_array(io::IOBuffer, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool) @ Base ./show.jl:1392
    ││││││││││┌ show_delim_array(io::IOBuffer, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool, i1::Int64, l::Int64) @ Base ./show.jl:1403
    │││││││││││ runtime dispatch detected: show(%3::IOContext{IOBuffer}, %52::Any)::Any
    ││││││││││└────────────────────
    ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:1012
    │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1185
    ││││││││││┌ show_type_name(io::IOContext{IOBuffer}, tn::Core.TypeName) @ Base ./show.jl:1059
    │││││││││││ runtime dispatch detected: Base.isvisible(%29::Symbol, %86::Module, %80::Any)::Bool
    ││││││││││└────────────────────
    │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1157
    ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %227::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1162
    ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %55::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1148
    ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %58::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1150
    ││││││││││ runtime dispatch detected: show(io::IOContext{IOBuffer}, %55::Any)::Any
    │││││││││└────────────────────
    │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1172
    ││││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOContext{IOBuffer}, %338::Tuple, %337::DataType)::Any
    │││││││││└────────────────────
    │││││││││┌ show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar}) @ Base ./show.jl:1180
    ││││││││││ runtime dispatch detected: Base.show_at_namedtuple(io::IOContext{IOBuffer}, %387::Tuple, %391::DataType)::Any
    │││││││││└────────────────────
    ││││││││┌ _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:1014
    │││││││││ runtime dispatch detected: show(%98::IOContext{IOBuffer}, %99::Any)::Any
    ││││││││└────────────────────
    │││││││┌ show(io::IOBuffer, x::DataType) @ Base ./show.jl:970
    ││││││││ runtime dispatch detected: Base._show_type(io::IOBuffer, %1::Any)::Nothing
    │││││││└────────────────────
    ```
    
    I haven't looked through all instances thoroughly, just a quick `grep`.
    However, this PR should address several common cases.
    
    (cherry picked from commit 2230f79)
    jishnub authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    b7aed98 View commit details
    Browse the repository at this point in the history
  5. Document GenericMemory and AtomicMemory (#54642)

    Closes #53854. After talking
    with @vtjnash, we are ready to commit to the `GenericMemory` interface.
    Sorry @nsajko that this took me so long to get around to.
    
    ---------
    
    Co-authored-by: Marek Kaluba <[email protected]>
    Co-authored-by: Neven Sajko <[email protected]>
    (cherry picked from commit 589fd1a)
    oscardssmith authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    90c432f View commit details
    Browse the repository at this point in the history
  6. make: use readelf for LLVM symbol version detection (#54713)

    Apparently on some distributions `nm --with-symbol-versions` does not
    report symbol versions, despite the flag.
    
    `readelf` should be a more reliable alternative which is also part of
    binutils.
    
    See spack/spack#44534 (comment)
    for more information
    
    (cherry picked from commit d0f165f)
    topolarity authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    cfe9c49 View commit details
    Browse the repository at this point in the history
  7. REPL: improve prompt! async function handler (#54760)

    (cherry picked from commit e7893a1)
    IanButterworth authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    e6dd695 View commit details
    Browse the repository at this point in the history
  8. fix double-counting and non-deterministic results in summarysize (#…

    …54606)
    
    fixes #53061
    
    Co-authored-by: Orestis Ousoultzoglou <[email protected]>
    (cherry picked from commit 68fe512)
    JeffBezanson authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    2dec97f View commit details
    Browse the repository at this point in the history
  9. REPL: Fully populate the dummy Pkg prompt (#54759)

    (cherry picked from commit 3fc3577)
    IanButterworth authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    a6d098e View commit details
    Browse the repository at this point in the history
  10. lowering: Recognize argument destructuring inside macro hygiene (#54702)

    Fixes #54701
    
    (cherry picked from commit 75951ec)
    Keno authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    193fee8 View commit details
    Browse the repository at this point in the history
  11. Don't let setglobal! implicitly create bindings (#54678)

    PR #44231 (part of Julia 1.9) introduced the ability to modify globals
    with `Mod.sym = val` syntax. However, the intention of this syntax was
    always to modify *existing* globals in other modules. Unfortunately, as
    implemented, it also implicitly creates new bindings in the other
    module, even if the binding was not previously declared. This was not
    intended, but it's a bit of a syntax corner case, so nobody caught it at
    the time.
    
    After some extensive discussions and taking into account the near future
    direction we want to go with bindings (#54654 for both), the consensus
    was reached that we should try to undo the implicit creation of bindings
    (but not the ability to assign the *value* of globals in other modules).
    Note that this was always an error until Julia 1.9, so hopefully it
    hasn't crept into too many packages yet. We'll see what pkgeval says. If
    use is extensive, we may want to consider a softer removal strategy.
    
    Across base and stdlib, there's two cases affected by this change:
    1. A left over debug statement in `precompile` that wanted to assign a
    new variable in Base for debugging. Removed in this PR.
    2. Distributed wanting to create new bindings. This is a legimitate use
    case for wanting to create bindings in other modules. This is fixed in
    JuliaLang/Distributed.jl#102.
    
    As noted in that PR, the recommended replacement where implicit binding
    creation is desired is:
    ```
    Core.eval(mod, Expr(:global, sym))
    invokelatest(setglobal!, mod, sym, val)
    ```
    
    The `invokelatest` is not presently required, but may be needed by
    #54654, so it's included in the recommendation now.
    
    Fixes #54607
    
    (cherry picked from commit b7e7232)
    Keno authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    9874d82 View commit details
    Browse the repository at this point in the history
  12. Fix uuidkey of exts in fast path of require_stdlib (#54730)

    The wrong uuid was being used for the fast path for exts
    
    (cherry picked from commit 1b6ec0d)
    IanButterworth authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    63b66b8 View commit details
    Browse the repository at this point in the history
  13. Handle no-postdominator case in finalizer pass (#54765)

    This pass was assuming that the post-dominator of all finalizer uses
    exists as a real BB in the CFG.
    
    Resolves #54596
    
    (cherry picked from commit 6ec2b1f)
    topolarity authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    95a3792 View commit details
    Browse the repository at this point in the history
  14. Don't expose guard pages to malloc_stack API consumers (#54591)

    Whether or not a guard page is in effect is an implementation detail and
    consumers of the `malloc_stack` API should not have to worry about that.
    In particular, if a stack of a certain size is requested, a stack of that
    size should be delivered, and not be reduced on some systems because we
    park a guard page in that range.
    
    This also helps consumers of the gcext API implementing stack scanning
    (i.e., GAP.jl), as it does not have to worry about running into those
    guard pages anymore.
    
    (cherry picked from commit 5dfd57d)
    fingolfin authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    592afcb View commit details
    Browse the repository at this point in the history
  15. TOML: Improve type-stability of BigInt/UInt support (#53955)

    From a type-stability perspective, this restores a lot of our behavior
    before #47903.
    
    As it turns out, 10 of the 11 uses of `parse_int` (now called
    `parse_integer`) introduced in that PR are unnecessary since the TOML
    format already requires the parsed value to be within a very limited
    range.
    
    Note that this change does not actually revert any functionality (in
    contrast to #49576)
    
    (cherry picked from commit 59c3c71)
    topolarity authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    5bccb82 View commit details
    Browse the repository at this point in the history
  16. [TOML] remove Dates hack, replace with explicit usage (#54755)

    This hack will cease functioning soon (#54739), so it must be removed so
    that packages can stop relying on it.
    
    As an aid, now provide some basic conversion and printing support for
    the Base.TOML variants of this as well such that users can round-trip
    the contents (if they are well-formed as a date/time).
    
    (cherry picked from commit 2ce12e9)
    vtjnash authored and KristofferC committed Jun 13, 2024
    Configuration menu
    Copy the full SHA
    0211c83 View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2024

  1. add try/catch around scheduler to reset sleep state (#54721)

    Fixes #54700
    
    Mostly just an indentation change, so recommend viewing with whitespace
    hidden (or if backporting).
    
    (cherry picked from commit b1e5a86)
    vtjnash authored and KristofferC committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    d3e7b45 View commit details
    Browse the repository at this point in the history
  2. bump Pkg to latest 1.11

    KristofferC committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    f41f896 View commit details
    Browse the repository at this point in the history
  3. effects: add new @consistent_overlay macro (#54322)

    This PR serves to replace #51080 and close #52940.
    It extends the `:nonoverlayed` to `UInt8` and introduces the
    `CONSISTENT_OVERLAY` effect bit, allowing for concrete evaluation of
    overlay methods using the original non-overlayed counterparts when
    applied. This newly added `:nonoverlayed`-bit is enabled through the
    newly added `Base.Experimental.@consistent_overlay mt def` macro.
    `@consistent_overlay` is similar to `@overlay`, but it sets the
    `:nonoverlayed`-bit to `CONSISTENT_OVERLAY` for the target method
    definition, allowing the method to be concrete-evaluated.
    To use this feature safely, I have also added quite precise
    documentation to `@consistent_overlay`.
    aviatesk authored and KristofferC committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    8bdf1fa View commit details
    Browse the repository at this point in the history
  4. Revert "Test and fix non-int-length bug in `view(::Memory, ::Union{Un…

    …itRange, Base.OneTo})` (#53991)"
    
    This reverts commit eb96c07.
    KristofferC committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    6aba3b2 View commit details
    Browse the repository at this point in the history
  5. Revert "Make reshape and view on Memory produce Arrays and delete wrap (

    #53896)"
    
    This reverts commit 146a7db.
    KristofferC committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    fc09c27 View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2024

  1. REPL: spawn to avoid blocking typing, fix pkg repl transition sequenc…

    …ing (#54785)
    
    Based on #54760 (comment)
    
    This changes the `prompt!` design to not consume on the two tasks until
    inside the lock and spawns the two tasks to avoid blocking typing
    IanButterworth authored and KristofferC committed Jun 19, 2024
    Configuration menu
    Copy the full SHA
    410cac7 View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2024

  1. unexport wrap

    KristofferC authored and KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    0c06ae1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1d4cf2c View commit details
    Browse the repository at this point in the history
  3. add sticky task warning to @task and schedule (#54815)

    The fact that `@async` causes the task that it was scheduled from to
    also become sticky is well documented in the warning in [`@async`
    docs](https://docs.julialang.org/en/v1/base/parallel/#Base.@async), but
    it's not clear that creating a task and scheduling it also has the same
    effect, by default.
    IanButterworth authored and KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    31dac53 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b04de54 View commit details
    Browse the repository at this point in the history
  5. make recommendation clearer on manifest version mismatch (#54779)

    It seems common for people to not infer the recommended action here, so
    make it clearer.
    IanButterworth authored and KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    202151d View commit details
    Browse the repository at this point in the history
  6. fix REPL prompt on 1.10

    KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    ffb88e8 View commit details
    Browse the repository at this point in the history
  7. bump Pkg to latest v1.11

    KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    dff9905 View commit details
    Browse the repository at this point in the history
  8. add missing compat entry to edit (#54769)

    (cherry picked from commit 3f8e1bd)
    palday authored and KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    06fdfd7 View commit details
    Browse the repository at this point in the history
  9. [LinearAlgebra] Improve resilience to unknown libblastrampoline flags (

    …#54781)
    
    When testing a new version of `libblastrampoline` that may have flags
    and values that we don't know about, raise a nice warning rather than a
    hard error.
    
    (cherry picked from commit 5044506)
    staticfloat authored and KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    b12f4e1 View commit details
    Browse the repository at this point in the history
  10. Add missing word in manifest warning (#54802)

    Noticed while looking at #54779.
    
    (cherry picked from commit d9a0c25)
    christiangnrd authored and KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    639f62e View commit details
    Browse the repository at this point in the history
  11. Artifacts: Change Dict{AbstractPlatform} to Dict{Platform} to reduce …

    …Pkg invalidations (#54073)
    
    This pull request now only changes `dl_dict =
    Dict{AbstractPlatform,Dict{String,Any}}()` to `dl_dict =
    Dict{Platform,Dict{String,Any}}()` in `artifact_meta`.
    
    This is possible since the other possible types for the key are either
    `Platform` or `nothing` unless someone overrides
    `Artifacts.unpack_platform`.
    
    (cherry picked from commit a14cc38)
    mkitti authored and KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    83ff230 View commit details
    Browse the repository at this point in the history
  12. fix var name in reseteof(s::BufferStream) (#54859)

    Evidently not covered by tests etc. (yet)
    
    (cherry picked from commit 3de5e5d)
    IanButterworth authored and KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    46d0705 View commit details
    Browse the repository at this point in the history
  13. nextind, prevind doc strings: correct the Markdown (#54876)

    (cherry picked from commit 7cdbf74)
    nsajko authored and KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    82d961b View commit details
    Browse the repository at this point in the history
  14. serialization: fix relocatability bug (#54738)

    (cherry picked from commit 323e725)
    vtjnash authored and KristofferC committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    cf4f1ba View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2024

  1. Revert "[LBT] Upgrade to v5.9.0 (#54361)"

    This reverts commit 0df6f80.
    KristofferC committed Jun 23, 2024
    Configuration menu
    Copy the full SHA
    782386f View commit details
    Browse the repository at this point in the history
  2. Do not add type tag size to the alloc_typed lowering for GC allocat…

    …ions (#54837)
    
    Enzyme.jl hit an issue where, in a dynamically typed allocation of size
    `GC_MAX_SZCLASS`, because we mistakenly added they type tag size to the
    allocation, the runtime disagreed if this was a pool allocation or a big
    allocation. Causing a crash in the GC
    
    (cherry picked from commit ded0b28)
    gbaraldi authored and vchuravy committed Jun 23, 2024
    Configuration menu
    Copy the full SHA
    a88c638 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2024

  1. Add openlibm to sysimg link line on windows (#53672)

    LLVM generates calls to math intrinsics like `trunc` and `rint` (at
    least in my local i686 mingw) build, so linking to openlibm is required.
    We already have this on the sysimg link line in `Base.link_image`, so
    this aligns those options.
    
    ---------
    
    Co-authored-by: Elliot Saba <[email protected]>
    (cherry picked from commit 320366b)
    Keno authored and KristofferC committed Jun 24, 2024
    Configuration menu
    Copy the full SHA
    9cf8b19 View commit details
    Browse the repository at this point in the history
  2. mark failing double counting test as broken on i686-linux (#54896)

    Introduced by #54606
    See
    #54606 (comment)
    
    Issue #54895
    
    (cherry picked from commit 5da1f06)
    IanButterworth authored and KristofferC committed Jun 24, 2024
    Configuration menu
    Copy the full SHA
    0db324c View commit details
    Browse the repository at this point in the history
  3. Fix calling LLVM_SIZE on windows (#53902)

    Per
    JuliaCI/julia-buildkite#224 (comment),
    the path needs to be updated so that `llvm-size` can find `libLLVM.dll`.
    
    (cherry picked from commit 657ce04)
    Zentrik authored and KristofferC committed Jun 24, 2024
    Configuration menu
    Copy the full SHA
    c644312 View commit details
    Browse the repository at this point in the history