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

Backporting the libblas and vendor() improvements to 1.8 #44467

Closed
wants to merge 26 commits into from

Commits on Feb 24, 2022

  1. Make sure range(start; step, length) uses TwicePrecision when possi…

    …ble, fixes #44292. (#44313)
    
    (cherry picked from commit 1b47efb)
    jipolanco authored and KristofferC committed Feb 24, 2022
    Configuration menu
    Copy the full SHA
    b9982a8 View commit details
    Browse the repository at this point in the history
  2. Cache external CodeInstances (#43990)

    Prior to this PR, Julia's precompiled `*.ji` files saved just two
    categories of code: unspecialized method definitions and
    type-specialized code for the methods defined by the package.  Any
    novel specializations of methods from Base or previously-loaded
    packages were not saved, and therefore effectively thrown away.
    
    This PR caches all the code---internal or external---called during
    package definition that hadn't been previously inferred, as long
    as there is a backedge linking it back to a method owned by
    a module being precompiled. (The latter condition ensures it will
    actually be called by package methods, and not merely transiently
    generated for the purpose of, e.g., metaprogramming or variable
    initialization.) This makes precompilation more intuitive (now it
    saves all relevant inference results), and substantially reduces
    latency for inference-bound packages.
    
    Closes #42016
    Fixes #35972
    
    Issue #35972 arose because codegen got started without re-inferring
    some discarded CodeInstances. This forced the compiler to insert a
    `jl_invoke`. This PR fixes the issue because needed CodeInstances are
    no longer discarded by precompilation.
    
    (cherry picked from commit df81bf9)
    timholy authored and KristofferC committed Feb 24, 2022
    Configuration menu
    Copy the full SHA
    7731773 View commit details
    Browse the repository at this point in the history

Commits on Feb 28, 2022

  1. Configuration menu
    Copy the full SHA
    456e76c View commit details
    Browse the repository at this point in the history
  2. Fix hyperlinks in 1.8 news (#44371)

    (cherry-picked from 675911a)
    bluesmoon authored Feb 28, 2022
    Configuration menu
    Copy the full SHA
    8919242 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2022

  1. Configuration menu
    Copy the full SHA
    db0cdf8 View commit details
    Browse the repository at this point in the history
  2. Update LBT to 5.0.1 for source build (#44258)

    (cherry picked from commit 627016a)
    ViralBShah authored and KristofferC committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    8615223 View commit details
    Browse the repository at this point in the history
  3. Regenerate all the checksums (#44275)

    (cherry picked from commit ac922b0)
    ViralBShah authored and KristofferC committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    6681008 View commit details
    Browse the repository at this point in the history
  4. Documentation: added example to the function hasfield. (From #41782) (#…

    …44274)
    
    Co-authored-by: Johnny Chen <johnnychen94@hotmail.com>
    (cherry picked from commit 9c0e5b0d186ea95a06d5b0bdc4bc19d1a17b444d)
    (cherry picked from commit aa2421d)
    ViralBShah authored and KristofferC committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    583f2e9 View commit details
    Browse the repository at this point in the history
  5. [OpenBLAS_jll] Update to v0.3.20 (#44321)

    (cherry picked from commit 6850940)
    giordano authored and KristofferC committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    51db9bd View commit details
    Browse the repository at this point in the history
  6. fix #43411, wrapped NamedTuple can be bitstype more often (#44311)

    (cherry picked from commit f20d5de)
    JeffBezanson authored and KristofferC committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    deb3049 View commit details
    Browse the repository at this point in the history
  7. [macOS] Codesign binary-dist tarballs (#44305)

    Because we're starting to distribute macOS tarballs as well, let's
    codesign them by default, when possible.
    
    (cherry picked from commit 6b29ebd)
    staticfloat authored and KristofferC committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    e3a126a View commit details
    Browse the repository at this point in the history
  8. Make sure all the relocations are filled in for partially cloned targ…

    …et (#44262)
    
    We collect the relocations (i.e. the GOT slots that is used in the code) for each target
    in `tgt.relocs`. Needing a relocation, however, does not imply that the function is cloned
    for this target within the group (It does mean that at least one target
    in the group has it cloned). The previous version would miss the relocation in this case.
    
    This was triggerred with the following cloning situation
    
        caller: clone_1
        callee: clone_1, clone_1.clone_3
    
    Since caller.clone_1 may call either callee.clone_1 or callee.clone_1.clone_3 a relocation
    for callee will be used and is required to be initialized.
    In addition to target 1, target 2 (and in fact target 3) within group 1
    will also use caller.clone_1. However, since callee isn't cloned for target 2
    the previous version wouldn't have saved this slot in the relocation array.
    
    (cherry picked from commit 76fc067)
    yuyichao authored and KristofferC committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    10c27af View commit details
    Browse the repository at this point in the history
  9. fix #44328: method validation for opaque closures (#44335)

    I believe it's intentional that for these methods, the `sig` field is
    just ignored and always set to `Tuple`. Also fixes a lowering bug I
    discovered that would cause errors if `Union` was shadowed.
    
    I have verified that this fixes the reported warnings.
    
    Co-authored-by: Jameson Nash <vtjnash@gmail.com>
    (cherry picked from commit 5deb503)
    simeonschaub authored and KristofferC committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    5db0041 View commit details
    Browse the repository at this point in the history
  10. Update BLAS.vendor() to return :lbt

    `vendor()` returns `:lbt`
    `libblas_name` and `liblapack_name` are set to "libblastrampoline"
    
    (cherry picked from commit bf6d9de)
    ViralBShah authored and KristofferC committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    e54b04a View commit details
    Browse the repository at this point in the history
  11. Fix memory error during precompilation (#44345)

    Fixes #44338
    
    (cherry picked from commit b4ea0f7)
    timholy authored and KristofferC committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    5bb9e64 View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2022

  1. asan,build: fix linker flags for -fsanitize builds (#44420)

    Fix #44361
    Fix #42540
    
    (cherry picked from commit 7324966)
    vtjnash authored and KristofferC committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    b2dd618 View commit details
    Browse the repository at this point in the history
  2. add jl_egal and jl_gc_safepoint back to exports list (#44419)

    Simple oversight when these were turned into macros. I could not find
    any others that seemed applicable, so just these two appeared to need
    fixing right now.
    
    Fix #44373
    
    (cherry picked from commit 8eb872c)
    vtjnash authored and KristofferC committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    b1312f6 View commit details
    Browse the repository at this point in the history
  3. Clarify the behavior of @threads for (#44168)

    * Clarify the behavior of `@threads for`
    
    Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
    (cherry picked from commit 2f67b51)
    tkf authored and KristofferC committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    d611460 View commit details
    Browse the repository at this point in the history
  4. fix error show edge case (#44319)

    * fix errors
    
    Co-authored-by: Simeon Schaub <simeondavidschaub99@gmail.com>
    (cherry picked from commit a9d8c85)
    oscardssmith authored and KristofferC committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    62e55d7 View commit details
    Browse the repository at this point in the history
  5. optimizer: bail out of inlining if ir_inline_unionsplit will fail (#4…

    …4416)
    
    Intersection cannot deal with this `metharg`, so it does not simplify
    the type at all when handling this case. This can cause us to run into
    an assertion later, where we assume the intersection of a non-Varags
    type will always return a simple DataType without Varargs.
    
    Fixes #44238
    
        atype = Tuple{typeof(Base.similar),
          Tuple{Union{Polyhedra.Polyhedron{T}, Polyhedra.Representation{T}} where T},
          Array{_A, 1} where _A,
          Array{_C, 1} where _C,
          Array{_B, 1} where _B}
    
        metharg = Tuple{typeof(Base.similar),
          Tuple{Vararg{Union{Polyhedra.Polyhedron{T}, Polyhedra.Representation{T}} where T}},
          Vararg{Union{Union{AbstractArray{var"#s14", 1}, Polyhedra.AbstractRepIterator{var"#s13", var"#s14"} where var"#s13", Polyhedra.AllRepIterator{var"#s14", var"#s14", LinElemT, LRT, RT} where RT<:Polyhedra.AbstractRepIterator{var"#s14", var"#s14"} where LRT<:Polyhedra.AbstractRepIterator{var"#s14", LinElemT} where LinElemT where var"#s14"} where var"#s14"<:(Polyhedra.HyperPlane{T, AT} where AT<:AbstractArray{T, 1}), Union{AbstractArray{var"#s14", 1}, Polyhedra.AbstractRepIterator{var"#s13", var"#s14"} where var"#s13", Polyhedra.AllRepIterator{var"#s14", var"#s14", LinElemT, LRT, RT} where RT<:Polyhedra.AbstractRepIterator{var"#s14", var"#s14"} where LRT<:Polyhedra.AbstractRepIterator{var"#s14", LinElemT} where LinElemT where var"#s14"} where var"#s14"<:(Polyhedra.HalfSpace{T, AT} where AT<:AbstractArray{T, 1}), Union{AbstractArray{var"#s14", 1}, Polyhedra.AbstractRepIterator{var"#s13", var"#s14"} where var"#s13", Polyhedra.AllRepIterator{var"#s14", var"#s14", LinElemT, LRT, RT} where RT<:Polyhedra.AbstractRepIterator{var"#s14", var"#s14"} where LRT<:Polyhedra.AbstractRepIterator{var"#s14", LinElemT} where LinElemT where var"#s14"} where var"#s14"<:AbstractArray{T, 1}, Union{AbstractArray{var"#s14", 1}, Polyhedra.AbstractRepIterator{var"#s13", var"#s14"} where var"#s13", Polyhedra.AllRepIterator{var"#s14", var"#s14", LinElemT, LRT, RT} where RT<:Polyhedra.AbstractRepIterator{var"#s14", var"#s14"} where LRT<:Polyhedra.AbstractRepIterator{var"#s14", LinElemT} where LinElemT where var"#s14"} where var"#s14"<:(Polyhedra.Line{T, AT} where AT<:AbstractArray{T, 1}), Union{AbstractArray{var"#s14", 1}, Polyhedra.AbstractRepIterator{var"#s13", var"#s14"} where var"#s13", Polyhedra.AllRepIterator{var"#s14", var"#s14", LinElemT, LRT, RT} where RT<:Polyhedra.AbstractRepIterator{var"#s14", var"#s14"} where LRT<:Polyhedra.AbstractRepIterator{var"#s14", LinElemT} where LinElemT where var"#s14"} where var"#s14"<:(Polyhedra.Ray{T, AT} where AT<:AbstractArray{T, 1})} where T}}
    
    Currently `typeintersection(atype, metharg) === metharg`
    
    (cherry picked from commit ffc5ffa)
    vtjnash authored and KristofferC committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    4b33571 View commit details
    Browse the repository at this point in the history
  6. Revert "Update BLAS.vendor() to return :lbt"

    This reverts commit e54b04a.
    KristofferC committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    fb69baf View commit details
    Browse the repository at this point in the history
  7. Simplification of libblastrampoline stuff in LinearAlgebra (#44360)

    * Report libblastrampoline as Base.libblas_name and Base.liblapack_name
    
    * Cleanup a lot of the LBT stuff
    
    * Fix
    
    * Remove test for LinearAlgebra.LAPACK.liblapack
    
    * Fix
    
    * Fix the precompile tests
    
    (cherry picked from commit e84b06c)
    ViralBShah committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    dc38ba5 View commit details
    Browse the repository at this point in the history
  8. Update BLAS.vendor() to return :lbt

    `vendor()` returns `:lbt`
    `libblas_name` and `liblapack_name` are set to "libblastrampoline"
    
    (cherry picked from commit bf6d9de)
    (cherry picked from commit e54b04a)
    ViralBShah committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    0adbba6 View commit details
    Browse the repository at this point in the history
  9. cleanup

    ViralBShah committed Mar 4, 2022
    Configuration menu
    Copy the full SHA
    a308435 View commit details
    Browse the repository at this point in the history

Commits on Mar 6, 2022

  1. Add more negative stride support to BLAS Level 1/2 functions (#42957)

    (cherry picked from commit 6409a8a)
    N5N3 authored and ViralBShah committed Mar 6, 2022
    Configuration menu
    Copy the full SHA
    91df58f View commit details
    Browse the repository at this point in the history

Commits on Mar 12, 2022

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