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 release 1.11 #55344

Merged
merged 59 commits into from
Aug 26, 2024
Merged

Backports release 1.11 #55344

merged 59 commits into from
Aug 26, 2024

Commits on Aug 2, 2024

  1. Add timing to precompile trace compile (#54962)

    I think this tool is there mainly to see what's taking so long, so
    timing information is helpful.
    
    (cherry picked from commit f2558c4)
    IanButterworth authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    50e5fe0 View commit details
    Browse the repository at this point in the history
  2. Fix annotated join with non-concrete eltype iters (#54919)

    As raised in
    <JuliaLang/StyledStrings.jl#57 (comment)>,
    when the eltype of an iterator is non-concrete, `_isannotated` will
    return false. To properly check such cases, we need to see if any of the
    elements of the iterator are annotated.
    
    This is a bit of an interesting case, since:
    - Most of the time it shouldn't be hit, we can reasonably expect most
    iterables to infer as producing concrete types
    - The eltype of the iterator is (generally) known at compile-time, and
    so in any case other than the ambiguous non-concrete one, this check
    remains able to be done at compile-time.
    
    With this change, join always preserves annotations. The compromise made
    is that iterators with non-concrete eltypes can result in join inferring
    a union return type (i.e. type instability with non-concrete iterators),
    but that doesn't seem too bad to me (I don't see how we could be
    completely type stable without concrete types here).
    
    (cherry picked from commit 462d7f4)
    tecosaur authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    29f6950 View commit details
    Browse the repository at this point in the history
  3. [docs] change docstring to match code (#55013)

    The docstring of `LinearAlgebra.reflectorApply!` is incorrect. It says
    the function is applying `(I - τ*[1; x] * [1; x]')*A`, but in reality it
    is applying `(I - conj(τ)*[1; x[2:end]]*[1; x[2:end]]')*A`. You can
    check that by looking at the code, or running for example
    ```julia
    using LinearAlgebra
    T=ComplexF64;d=5;
    τ=randn(T);x=randn(T,d);A=randn(T,d,d);
    (I - conj(τ)*[1; x[2:end]]*[1; x[2:end]]')*A
    LinearAlgebra.reflectorApply!(x,τ,A)
    ```
    
    (cherry picked from commit 1ece299)
    araujoms authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    0429e1e View commit details
    Browse the repository at this point in the history
  4. TOML: Make Dates a type parameter (#55017)

    This will allow us to resolve the `Dates` at compile-time eventually. It
    also fixes `TOML.Parser()` to return Dates types again.
    
    (cherry picked from commit 0ffbae8)
    topolarity authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    1f285ec View commit details
    Browse the repository at this point in the history
  5. Fix a bug in stack's DimensionMismatch error message (#54033)

    `stack` does not require that the inner iterator defines `axes`, but the
    code to assemble an error message assumed this.
    
    Found here:
    https://discourse.julialang.org/t/reduce-hcat-is-type-unstable/112800/3
    
    (cherry picked from commit ae483c3)
    mcabbott authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    70af74e View commit details
    Browse the repository at this point in the history
  6. fix at-main docstring to not code quote a compat box (#55242)

    (cherry picked from commit 157d4ee)
    KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    bab4ef1 View commit details
    Browse the repository at this point in the history
  7. Make jl_*affinity tests more portable (#55261)

    Changes made:
    - Use 0 for the thread ID to ensure it's always valid. The function
    expects `0 <= tid < jl_n_threads` so 1 is incorrect if `jl_n_threads` is
    1.
    - After retrieving the affinity mask with `jl_getaffinity`, pass that
    same mask back to `jl_setaffinity`. This ensures that the mask is always
    valid. Using a mask of all ones results in `EINVAL` on FreeBSD. Based on
    the discussion in #53402, this change may also fix Windows, so I've
    tried reenabling it here.
    - To check whether `jl_getaffinity` actually did something, we can check
    that the mask is no longer all zeros after the call.
    
    Fixes #54817
    
    (cherry picked from commit 8a7e23d)
    ararslan authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    e7ddd62 View commit details
    Browse the repository at this point in the history
  8. specificity: ensure fast-path in sub/eq_msp handle missing `UnionAl…

    …l` wrapper correctly. (#54736)
    
    (cherry picked from commit 34cd610)
    N5N3 authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    e0b2828 View commit details
    Browse the repository at this point in the history
  9. typeintersect: fix bounds merging during inner intersect_all (#55299)

    This PR reverts the optimization from
    748149e (part of #48167), while
    keeping the fix for merging occurs_inv/occurs_cov, as that optimzation
    makes no sense especially when typevar occurs both inside and outside
    the inner intersection.
    
    Close #55206
    
    (cherry picked from commit fb6b790)
    N5N3 authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    4381c05 View commit details
    Browse the repository at this point in the history
  10. Add lbt_forwarded_funcs() to debug LBT forwarding issues (#55302)

    It can be very helpful, when struggling with LBT forwarding, to see what
    functions were actually forwarded to a new library. This utility
    function makes it easy to query which functions are forwarded to that
    library.
    
    (cherry picked from commit e0f2e29)
    staticfloat authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    b010b97 View commit details
    Browse the repository at this point in the history
  11. Random: Mark unexported public symbols as public (#55148)

    The following symbols:
    `seed!, default_rng, Sampler, SamplerType, SamplerTrivial,
    SamplerSimple` Are documented in the Julia documentation and unexported,
    but not marked as public.
    
    Co-authored-by: Max Horn <max@quendi.de>
    (cherry picked from commit c66513f)
    jakobnissen authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    aacb1ca View commit details
    Browse the repository at this point in the history
  12. avoid overflowing show for OffsetArrays around typemax (#55303)

    (cherry picked from commit f225f84)
    mbauman authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    b0691b5 View commit details
    Browse the repository at this point in the history
  13. Restrict argument to isleapyear(::Integer) (#55317)

    In 1.10 we have
    
    ```jl
    julia> isleapyear(Year(1992))
    false
    ```
    
    which is semantically incorrect because `Year(1992)` is a duration (1992
    years), not an instant. This PR restricts the currently unrestricted
    argument to integers.
    
    (cherry picked from commit fdecc59)
    jariji authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    2b31eab View commit details
    Browse the repository at this point in the history
  14. Profile: Fix stdlib paths (#55327)

    (cherry picked from commit b759fe2)
    IanButterworth authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    78ed775 View commit details
    Browse the repository at this point in the history
  15. [libblastrampoline] Bump to v5.11.0 (#55330)

    This includes support to properly forward MKL v2024's ILP64 CBLAS
    symbols, which fixes this [Enzyme
    issue](EnzymeAD/Enzyme.jl#1683)
    
    (cherry picked from commit 602b582)
    staticfloat authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    6a5792d View commit details
    Browse the repository at this point in the history
  16. Preserve structure in scaling triangular matrices by NaN (#55310)

    Addresses the `Matrix` cases from
    #55296. This restores the
    behavior to match that on v1.10, and preserves the structure of the
    matrix on scaling by `NaN`. This behavior is consistent with the
    strong-zero behavior for other structured matrix types, and the scaling
    may be seen to be occurring in the vector space corresponding to the
    filled elements.
    
    After this,
    ```julia
    julia> UpperTriangular(rand(2,2)) * NaN
    2×2 UpperTriangular{Float64, Matrix{Float64}}:
     NaN    NaN
        ⋅   NaN
    ```
    cc. @mikmoore
    
    (cherry picked from commit 0ef8a91)
    jishnub authored and KristofferC committed Aug 2, 2024
    Configuration menu
    Copy the full SHA
    5431961 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    eaa792f View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2024

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

Commits on Aug 6, 2024

  1. [build] Some improvements to the LLVM build system (#55354)

    After #55180 we implicitly require an LLVM built with Zlib support, but
    compiling Julia with `make USE_BINARYBUILDER_LLVM=0` builds an LLVM
    without Zlib support, despite the fact we attempt to request it at
    
    https://github.com/JuliaLang/julia/blob/996351f5f6651d1508aef3c35c7d37eb22a0fb1e/deps/llvm.mk#L97
    This was first identified in #55337.
    
    `ZLIB_LIBRARY` must be the path to the zlib library, but we currently
    set it to the libdir where the library is installed (introduced in
    
    https://github.com/JuliaLang/julia/blob/996351f5f6651d1508aef3c35c7d37eb22a0fb1e/deps/llvm.mk#L97
    which is wrong. However, CMake is actually able to find Zlib correctly,
    but then the check at
    https://github.com/llvm/llvm-project/blob/46425b8d0fac3c529aa4a716d19abd7032e452f3/llvm/cmake/config-ix.cmake#L139-L141
    uses the value of `ZLIB_LIBRARY` to list the Zlib to link for the test,
    but being `ZLIB_LIBRARY` a directory, CMake doesn't see any valid Zlib
    and thus tries to run the test without linking any Zlib, and the test
    silently fails (they're silent only when `LLVM_ENABLE_ZLIB=ON`),
    resulting in no usable Zlib available, even if found.
    
    `ZLIB_ROOT` is the only [hint recommended by the CMake module
    `FindZLIB`](https://cmake.org/cmake/help/latest/module/FindZLIB.html#hints).
    This PR replaces a broken `ZLIB_LIBRARY` with an appropriate
    `ZLIB_ROOT`. Also, we set `LLVM_ENABLE_ZLIB=FORCE_ON` which is the only
    way to make CMake fail loudly if no usable Zlib is available, and avoid
    going on with a non-usable build.
    
    I confirm this fixes #55337 for me, it should likely address
    JuliaCI/julia-buildkite#373 as well.
    
    Also, options `COMPILER_RT_ENABLE_IOS`, `COMPILER_RT_ENABLE_WATCHOS`,
    `COMPILER_RT_ENABLE_TVOS`, and `HAVE_HISTEDIT_H` don't exist anymore,
    and they are removed.
    giordano committed Aug 6, 2024
    Configuration menu
    Copy the full SHA
    46ed1ba View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2024

  1. Profile: close files when assembling heap snapshot (#55356)

    (cherry picked from commit 05d0564)
    topolarity authored and KristofferC committed Aug 8, 2024
    Configuration menu
    Copy the full SHA
    cb7a962 View commit details
    Browse the repository at this point in the history
  2. Fix tr for block SymTridiagonal (#55371)

    This ensures that `tr` for a block `SymTridiagonal` symmetrizes the
    diagonal elements.
    
    (cherry picked from commit a163483)
    jishnub authored and KristofferC committed Aug 8, 2024
    Configuration menu
    Copy the full SHA
    8a4dd86 View commit details
    Browse the repository at this point in the history
  3. Make REPL.TerminalMenus and some if its symbols public (#55307)

    (cherry picked from commit e38e4db)
    GHTaarn authored and KristofferC committed Aug 8, 2024
    Configuration menu
    Copy the full SHA
    885aeda View commit details
    Browse the repository at this point in the history
  4. inference: fix missing LimitedAccuracy markers (#55362)

    If the LimitedAccuracy was supposed to resolve against the top-most
    frame (or hypothetically a non-InferenceState frame), it would not have
    a parentframe, preventing it from reaching the subsequent
    poison_callstack line that is required for reliable inference (avoiding
    caching bad results). This should restore the original intent of this
    code (pre #48913)
    
    (cherry picked from commit d1b1a5d)
    vtjnash authored and KristofferC committed Aug 8, 2024
    Configuration menu
    Copy the full SHA
    9386218 View commit details
    Browse the repository at this point in the history
  5. AllocOpt: Fix stack lowering where alloca continas boxed and unboxed …

    …data (#55306)
    
    Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com>
    Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
    Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com>
    (cherry picked from commit 1e1e710)
    wsmoses authored and KristofferC committed Aug 8, 2024
    Configuration menu
    Copy the full SHA
    c802049 View commit details
    Browse the repository at this point in the history
  6. fix #55389: type-unstable join (#55395)

    (cherry picked from commit 09e5c40)
    simeonschaub authored and KristofferC committed Aug 8, 2024
    Configuration menu
    Copy the full SHA
    fbcb434 View commit details
    Browse the repository at this point in the history
  7. re-add unsafe_convert for Reinterpret and Reshaped array (#55226)

    Fxes #54725
    
    (cherry picked from commit f0a2a7a)
    oscardssmith authored and KristofferC committed Aug 8, 2024
    Configuration menu
    Copy the full SHA
    894454c View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2024

  1. compiler: apply more accurate effects to return_type_tfunc (#55338)

    In extreme cases, the compiler could mark this function for
    concrete-eval, even though that is illegal unless the compiler has first
    deleted this instruction. Otherwise the attempt to concrete-eval will
    re-run the function repeatedly until it hits a StackOverflow.
    
    Workaround to fix #55147
    
    @aviatesk You might know how to solve this even better, using
    post-optimization effect refinements? Since we should actually only
    apply the refinement of terminates=false => terminates=true (and thus
    allowing concrete eval) if the optimization occurs, and not just in
    inference thinks the optimization would be legal.
    
    ---------
    
    Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com>
    vtjnash and aviatesk committed Aug 10, 2024
    Configuration menu
    Copy the full SHA
    b7d4aeb View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2024

  1. handle unbound vars in NTuple fields (#55405)

    Comparing objects by `==` will happily answer nonsense for malformed
    type comparisons, such as `unwrap_unionall(A) == A`. Avoid forming that
    query. Additionally, need to recourse through Vararg when examining type
    structure to make decisions.
    
    Fix #55076
    Fix #55189
    
    (cherry picked from commit 32423a8)
    vtjnash authored and KristofferC committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    b29b9b5 View commit details
    Browse the repository at this point in the history
  2. ml-matches: ensure all methods are included (#55365)

    Some methods were filtered out based simply on visit order, which was
    not intentional, with the lim==-1 weak-edges mode.
    
    Fix #55231
    
    (cherry picked from commit 1db5cf7)
    vtjnash authored and KristofferC committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    cc694e4 View commit details
    Browse the repository at this point in the history
  3. codegen: move undef freeze before promotion point (#55428)

    Fixes #55396
    
    (cherry picked from commit ac9558c)
    vtjnash authored and KristofferC committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    d499694 View commit details
    Browse the repository at this point in the history
  4. stale_cachefile: handle if the expected cache file is missing (#55419)

    Part of fixing JuliaLang/Pkg.jl#3984
    
    (cherry picked from commit 18340a3)
    IanButterworth authored and KristofferC committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    99583cf View commit details
    Browse the repository at this point in the history
  5. Add push! implementation for AbstractArray depending only on resize! (#…

    …55470)
    
    Fix #55459
    
    In Julia 1.10, `push!` and `append!` would be functional for
    `AbstractVector` implementations
    if `resize!` and `setindex!` were defined.
    
    As of #51903 by @vtjnash as in Julia 1.11.0-rc2, `append!` now depends
    on an implementation of
    `sizehint!` and `push!`. Since `push!` also depends on `append!`, a
    stack
    overflow situation can easily be created.
    
    To avoid this, this pull request defines the following
    
    * Add generic versions of `push!(a::AbstractVector, x)` which do not
    depend on `append!`
    * Add default implementation of `sizehint!` that is a no-op
    
    The implementation of `push!(a::AbstractVector, x)` is a generic version
    based on the implementation
    of `push!(a::Vector, x)` without depending on internals.
    
    # Example for SimpleArray
    
    Consider the `SimpleArray` example from test/abstractarray.jl:
    
    ```julia
    mutable struct SimpleArray{T} <: AbstractVector{T}
        els::Vector{T}
    end
    Base.size(sa::SimpleArray) = size(sa.els)
    Base.getindex(sa::SimpleArray, idx...) = getindex(sa.els, idx...)
    Base.setindex!(sa::SimpleArray, v, idx...) = setindex!(sa.els, v, idx...)
    Base.resize!(sa::SimpleArray, n) = resize!(sa.els, n)
    Base.copy(sa::SimpleArray) = SimpleArray(copy(sa.els))
    ```
    
    Note that `setindex!` and `resize!` are implemented for `SimpleArray`.
    
    ## Julia 1.10.4: push! is functional
    
    On Julia 1.10.4, `push!` has a functional implementation for
    `SimpleArray`
    
    ```julia-repl
    julia> push!(SimpleArray{Int}(zeros(Int,5)), 6)
    6-element SimpleArray{Int64}:
     0
     0
     0
     0
     0
     6
    ```
    
    ## Julia 1.11.0-rc2 and nightly: push! requires sizehint! and is prone
    to stack overflow
    
    Before this pull request, on Julia 1.11.0-rc2 and nightly, `push!` fails
    for want of `sizehint!`.
    
    ```julia-repl
    julia> push!(SimpleArray{Int}(zeros(Int,5)), 6)
    ERROR: MethodError: no method matching sizehint!(::SimpleArray{Int64}, ::Int64)
    The function `sizehint!` exists, but no method is defined for this combination of argument types.
    ...
    ```
    
    After implementing `sizehint!`, `push!` still fails with a stack
    overflow.
    
    ```julia-repl
    julia> Base.sizehint!(a::SimpleArray, x) = a
    
    julia> push!(SimpleArray{Int}(zeros(Int, 5)), 6)
    Warning: detected a stack overflow; program state may be corrupted, so further execution might be unreliable.
    ERROR: StackOverflowError:
    Stacktrace:
          [1] _append!
            @ ./array.jl:1344 [inlined]
          [2] append!
            @ ./array.jl:1335 [inlined]
          [3] push!(a::SimpleArray{Int64}, iter::Int64)
            @ Base ./array.jl:1336
    --- the above 3 lines are repeated 79982 more times ---
     [239950] _append!
            @ ./array.jl:1344 [inlined]
     [239951] append!
            @ ./array.jl:1335 [inlined]
    ```
    
    This is because the new implementation of `append!` depends on `push!`.
    
    ## After this pull request, push! is functional.
    
    After this pull request, there is a functional `push!` for `SimpleArray`
    again as in Julia 1.10.4:
    
    ```julia-repl
    julia> push!(SimpleArray{Int}(zeros(Int, 5), 6)
    6-element SimpleArray{Int64}:
     0
     0
     0
     0
     0
     6
    ```
    
    (cherry picked from commit cf4c30a)
    mkitti authored and KristofferC committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    10b55db View commit details
    Browse the repository at this point in the history
  6. fix hierarchy level of "API reference" in Dates documentation (#55483)

    Currently, "API reference" is at the same level as "Dates" although it
    is a subsection of it. This looks particularly weird in the PDF version
    of the manual: Section 67 is "Dates" and Section 68 is "API reference".
    
    Note that I didn't change the nesting level of the subsection
    "Constants" at the end of the file. As a result, it is now at the same
    level as "Dates and Time Types" and "Dates Functions". Before it was a
    subsection of the latter, which appears wrong to me.
    
    (cherry picked from commit 881be64)
    matthias314 authored and KristofferC committed Aug 13, 2024
    Configuration menu
    Copy the full SHA
    709d83e View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2024

  1. Configuration menu
    Copy the full SHA
    403558e View commit details
    Browse the repository at this point in the history
  2. simplify complex atanh and remove singularity perturbation (#55268)

    fixes #55266, and use `inv(z)`
    rather than `1/z` and use `muladd` in a couple places.
    
    ---------
    
    Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
    (cherry picked from commit b7aa5e3)
    oscardssmith authored and KristofferC committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    86a5aee View commit details
    Browse the repository at this point in the history
  3. Backport #55407 to 1.11 (#55433)

    gbaraldi authored Aug 14, 2024
    Configuration menu
    Copy the full SHA
    133b83a View commit details
    Browse the repository at this point in the history
  4. [release-1.11] fix GC race bug in pool sweep (#55485)

    We have parallel sweeping on 1.11, so we should use atomics here.
    
    This issue has already been fixed on master due to
    #54961.
    
    We can also backport #54961 to
    release-1.11, but I have some preference to land this one since it's
    considerably less disruptive and we're already on RC2.
    d-netto authored Aug 14, 2024
    Configuration menu
    Copy the full SHA
    bcb33ed View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2024

  1. compress jit debuginfo for easy memory savings (#55180)

    In some ad-hoc testing, I had JIT about 19 MB of code and data, which
    generated about 170 MB of debuginfo alongside it, and that debuginfo
    then compressed to about 50 MB with this change, which simply compresses
    the ObjectFile until it is actually required (which it very rarely is
    needed).
    
    (cherry picked from commit fe597c1)
    vtjnash authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    16a7ad9 View commit details
    Browse the repository at this point in the history
  2. mapreduce: don't inbounds unknown functions (#55329)

    More finely scope the `@inbounds` annotations to ensure neither `f` nor
    `op` are erroneously `@inbounds`ed.
    
    (cherry picked from commit 1dffd77)
    mbauman authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    89faa35 View commit details
    Browse the repository at this point in the history
  3. fix Event to use normal Condition variable (#55441)

    ThreadSynchronizer is only for things that are very trivial, as there
    are a lot of things they are forbidden from doing (such as waiting for a
    Task to set it).
    
    Happened to notice while reviewing
    #55439 (review)
    that this was still using the pre-v1.2 style lock, which makes this
    mostly useless in v1.4+
    
    (cherry picked from commit 2a4e2b1)
    vtjnash authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    63c8445 View commit details
    Browse the repository at this point in the history
  4. subtyping: fast path for lhs union and rhs typevar (#55413)

    Fixes #55230
    
    (cherry picked from commit c7309d0)
    vtjnash authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    b1e0fc4 View commit details
    Browse the repository at this point in the history
  5. build: add missing dependencies for expmap (#55492)

    I was confused why #49121 was
    re-occuring locally, until I noticed this file was not getting rebuilt.
    
    (cherry picked from commit b4ebb00)
    vtjnash authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    95e255f View commit details
    Browse the repository at this point in the history
  6. Fix fast getptls ccall lowering. (#55507)

    (cherry picked from commit 5a633b7)
    gbaraldi authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    876853b View commit details
    Browse the repository at this point in the history
  7. Update symmetric docstring to reflect the type of uplo (#55504)

    This brings the docstring closer to the actual implementation. In
    particular, following the current docstring and defining
    ```julia
    symmetric(::MyMatrix, uplo=:U)
    ```
    leads to a method ambiguity, as `LinearAlgebra` defines
    `symmetric(::AbstractMatrix, uplo::Symbol=:U)`.
    
    (cherry picked from commit 8a19b74)
    jishnub authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    7a3e21f View commit details
    Browse the repository at this point in the history
  8. Ensure bidiagonal setindex! does not read indices in error message (#…

    …55342)
    
    This fixes the error message if the matrix is uninitialized. This is
    because a `Bidiagonal` with `uplo == 'L'` may still be `istriu` if the
    subdiaognal is zero. We only care about the band index in the error
    message, and not the values.
    
    (cherry picked from commit f2f188d)
    jishnub authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    c9d09d6 View commit details
    Browse the repository at this point in the history
  9. Do not load ScopedValues with using (#55452)

    Stop loading `ScopedValues` with `using` so folks use
    `ScopedValues.with` or `using ScopedValues` rather than `Base.with`.
    
    Implements
    #55095 (comment)
    
    ~Have to bump the StyledStrings stdlib to include
    JuliaLang/StyledStrings.jl#80 Done
    
    ---------
    
    Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
    (cherry picked from commit e1aefeb)
    LilithHafner authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    07df4bb View commit details
    Browse the repository at this point in the history
  10. add missing clamp function for IOBuffer (#55424)

    The `clamp` function was defined in Base.Math, but required to be in
    Base now, so move it to intfuncs with other similar functions
    
    Fixes #55279
    
    (cherry picked from commit 3db1d19)
    KristofferC authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    0ccd4ed View commit details
    Browse the repository at this point in the history
  11. Vendor the terminfo database for use with base/terminfo.jl (#55411)

    This adds the `terminfo` database to `deps/`, providing a better user
    experience on systems that don't have `terminfo` on the system by
    default. The database is built using BinaryBuilder but is not actually
    platform-specific (it's built for `AnyPlatform`) and as such, this
    fetches the artifact directly rather than adding a new JLL to stdlib,
    and it requires no compilation.
    
    A build flag, `WITH_TERMINFO`, is added here and assumed true by
    default, allowing users to set `WITH_TERMINFO=0` in Make.user to avoid
    bundling `terminfo` should they want to do so.
    
    The lookup policy for `terminfo` entries is still compliant with what's
    described in `terminfo(5)`; the bundled directory is taken to be the
    first "compiled in" location, i.e. prepended to `@TERMINFO_DIRS@`. This
    allows any user settings that exist locally, such as custom entries or
    locations, to take precedence.
    
    Fixes #55274
    
    Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
    (cherry picked from commit e7e8768)
    ararslan authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    00b6831 View commit details
    Browse the repository at this point in the history
  12. codgen: make the Memory GEP an inbounds GEP (#55107)

    The Julia memory model is always inbounds for GEP.
    
    This makes the code in #55090
    look almost the same as it did before the change. Locally I wasn't able
    to reproduce the regression, but given it's vectorized code I suspect it
    is backend sensitive.
    
    Fixes #55090
    
    Co-authored-by: Zentrik <Zentrik@users.noreply.github.com>
    (cherry picked from commit 7e1f0be)
    gbaraldi authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    28fcbff View commit details
    Browse the repository at this point in the history
  13. Backport "Fix (l/r)mul! with Diagonal/Bidiagonal #55052" to v1.11 (#5…

    …5359)
    
    This should hopefully fix the failing tests.
    
    Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com>
    jishnub and KristofferC authored Aug 19, 2024
    Configuration menu
    Copy the full SHA
    4e7648f View commit details
    Browse the repository at this point in the history
  14. Restrict binary ops for Diagonal and Symmetric to Number eltypes (#55251

    )
    
    The `(::Diagonal) + (::Symmetric)` and analogous methods were
    specialized in #35333 to return a
    `Symmetric`, but these only work if the `Diagonal` is also symmetric.
    This typically holds for arrays of numbers, but may not hold for
    block-diagonal and other types for which symmetry isn't guaranteed. This
    PR restricts the methods to arrays of `Number`s.
    
    Fixes, e.g.:
    ```julia
    julia> using StaticArrays, LinearAlgebra
    
    julia> D = Diagonal(fill(SMatrix{2,2}(1:4), 2))
    2×2 Diagonal{SMatrix{2, 2, Int64, 4}, Vector{SMatrix{2, 2, Int64, 4}}}:
     [1 3; 2 4]      ⋅
         ⋅       [1 3; 2 4]
    
    julia> S = Symmetric(D)
    2×2 Symmetric{AbstractMatrix, Diagonal{SMatrix{2, 2, Int64, 4}, Vector{SMatrix{2, 2, Int64, 4}}}}:
     [1 3; 3 4]      ⋅
         ⋅       [1 3; 3 4]
    
    julia> S + D
    2×2 Symmetric{AbstractMatrix, Diagonal{SMatrix{2, 2, Int64, 4}, Vector{SMatrix{2, 2, Int64, 4}}}}:
     [2 6; 6 8]      ⋅
         ⋅       [2 6; 6 8]
    
    julia> S[1,1] + D[1,1]
    2×2 SMatrix{2, 2, Int64, 4} with indices SOneTo(2)×SOneTo(2):
     2  6
     5  8
    
    julia> (S + D)[1,1] == S[1,1] + D[1,1]
    false
    ```
    After this,
    ```julia
    julia> S + D
    2×2 Matrix{AbstractMatrix{Int64}}:
     [2 6; 5 8]  [0 0; 0 0]
     [0 0; 0 0]  [2 6; 5 8]
    ```
    
    Even with `Number`s as elements, there might be an issue with `NaN`s
    along the diagonal as `!issymmetric(NaN)`, but that may be a different
    PR.
    
    (cherry picked from commit 197295c)
    jishnub authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    44fc535 View commit details
    Browse the repository at this point in the history
  15. Make Base.depwarn() public (#55212)

    There's a few reasons for making it public:
    - It's already mentioned in the manual (#54211).
    - It's the easiest way to deprecate a function that shouldn't be used
    anymore at all.
    - It's already widely used in the ecosystem:
    https://juliahub.com/ui/Search?type=code&q=Base.depwarn(
    
    I also moved the `@deprecate` docs into a new `Managing deprecations`
    section because I felt it should go together with `Base.depwarn()`.
    Might be worth backporting to 1.11?
    
    (cherry picked from commit 442f9d5)
    JamesWrigley authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    b09a4b3 View commit details
    Browse the repository at this point in the history
  16. LAPACK: Aggressive constprop to concretely infer syev!/syevd! (#55295)

    Currently, these are inferred as a 2-Tuple of possible return types
    depending on `jobz`, but since `jobz` is usually a constant, we may
    propagate it aggressively and have the return types inferred concretely.
    
    (cherry picked from commit 686804d)
    jishnub authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    8da6a94 View commit details
    Browse the repository at this point in the history
  17. 🤖 [master] Bump the StyledStrings stdlib from d7496d2 to f6035eb (#55461

    )
    
    Stdlib: StyledStrings
    URL: https://github.com/JuliaLang/StyledStrings.jl.git
    Stdlib branch: main
    Julia branch: master
    Old commit: d7496d2
    New commit: f6035eb
    Julia version: 1.12.0-DEV
    StyledStrings version: 1.11.0(Does not match)
    Bump invoked by: @LilithHafner
    Powered by:
    [BumpStdlibs.jl](https://github.com/JuliaLang/BumpStdlibs.jl)
    
    Diff:
    JuliaLang/StyledStrings.jl@d7496d2...f6035eb
    
    ```
    $ git log --oneline d7496d2..f6035eb
    f6035eb Replace accidental Int64s with Ints
    4fcd8bb Use const fields in parser State instead of refs
    35a3cdf Load user-customisations lazily
    9802b6c Load ScopedValues symbols from their source
    9b9cf71 Use branches when choosing how to merge face attrs
    eada2dc Avoid needlessly creating a new Face in get calls
    c647af9 Avoid boxing mergedface by making it toplevel
    a117008 Avoid creating strings for ansi_4bit_color_code
    6863348 Improve type inference of face merging
    f588218 Quick fix for 4d04102adf0d (Optimised SimpleColor)
    4d04102 Optimise creation of a SimpleColor from a UInt32
    6d3f44d Actually overload Base's escape_string
    58507e5 Fully qualify method overloads, avoid importing
    fc686f3 Explicitly test eachregion
    c417262 Refactor eachregion to be O(n log n) not O(n^2)
    f7af623 Use concrete refs in macro parser state struct
    41b2446 Check for underline term capability flag
    987f776 Treat printing as more than a nothing-return write
    43fb018 Add types to some comprehensions
    d3aa7e1 Improve inference with a function over a closure
    6901610 Mention the importance of semantic names in docs
    0be209b Better hint at the package capabilities in readme
    37b9e4b Load no faces.toml when the DEPOT_PATH is empty
    ```
    
    Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
    (cherry picked from commit a23aee8)
    DilumAluthgeBot authored and KristofferC committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    8c60a17 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    9723ff1 View commit details
    Browse the repository at this point in the history
  19. codegen: NFC refactoring to use Align type

    (cherry picked from commit f38015f)
    vtjnash committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    7b18f9c View commit details
    Browse the repository at this point in the history
  20. codegen: update type of x after type-assert

    Later code likes to see that the type is consistent with the cgval and the unbox.
    
    (cherry picked from commit e1e5a46)
    vtjnash committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    e964634 View commit details
    Browse the repository at this point in the history
  21. codegen: take gc roots (and alloca alignment) more seriously

    Due to limitations in the LLVM implementation, we are forced to emit
    fairly bad code here. But we need to make sure it is still correct with
    respect to GC rooting.
    
    The PR 50833c8 also changed the meaning
    of haspadding without changing all of the existing users to use the new
    equivalent flag (haspadding || !isbitsegal), incurring additional
    breakage here as well and needing more tests for that.
    
    Fixes #54720
    
    (cherry picked from commit 8bfef8f)
    vtjnash committed Aug 19, 2024
    Configuration menu
    Copy the full SHA
    8467772 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2024

  1. Configuration menu
    Copy the full SHA
    13d440d View commit details
    Browse the repository at this point in the history