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

release-1.7: Backports for 1.7-RC1/1.7-beta3 #41382

Merged
merged 44 commits into from
Jul 6, 2021

Conversation

KristofferC
Copy link
Sponsor Member

@KristofferC KristofferC commented Jun 26, 2021

Backported PRs:

Non-merged PRs with backport label:

staticfloat and others added 13 commits June 26, 2021 21:12
This adds a proof-of-concept demonstration of two new buildkite plugins:

* `cryptic` adds secrets management to privileged pipelines.  These
pipelines cannot be freely modified; their integrity is verified against
a signature maintained by committers with a secret key.  This allows
certain portions of the CI configuration (which are privileged and can
decrypt encrypted files/environment variables) to remain public, but
read-only to the general populace.

*  `sandbox` adds a generic sandboxing mechanism that allows CI steps to
be run within user-provided rootfs images.  We're using these here to
provide compiler toolchains for the `llvm-passes` CI steps, and the plan
is to eventually provide _all_ compiler toolchains through such rootfs
images.

(cherry picked from commit 61ae86d)
I want to use this in Cthulhu, which uses `IRCode` for optimized code
instead of `CodeInfo`.

(cherry picked from commit 083272b)
This was not an external method table, it is just a normal variable
binding. This was causing the precompile files to be corrupted, since we
use normal variables that look like this one at
https://github.com/JuliaLang/julia/blob/dc2befcffc7412768097c2a2a6819724a4745aeb/base/compiler/utilities.jl#L139-L140

Fixes #41156

(cherry picked from commit e3197af)
This includes libraries from GCC 11.

(cherry picked from commit d68e570)
(cherry picked from commit 7553ca1)
* [OpenBLAS_jll] Bump to `v0.3.13+6`

This version backports a fix for a `SIGILL` error on some CPUs.

* [deps] Bundle backported OpenBLAS patches

(cherry picked from commit ab567be)
default rng is task-local not thread-local?

(cherry picked from commit ba5fffc)
@KristofferC KristofferC requested a review from a team as a code owner June 26, 2021 19:49
@KristofferC KristofferC added the release Release management and versioning. label Jun 26, 2021
@DilumAluthge DilumAluthge removed the request for review from a team June 26, 2021 19:50
@KristofferC KristofferC changed the base branch from master to release-1.7 June 26, 2021 19:52
@PallHaraldsson
Copy link
Contributor

PallHaraldsson commented Jun 29, 2021

Can fix for the thread hang #41407 (comment) be added, that may (or may not) be there in commits from last week?

@KristofferC
Copy link
Sponsor Member Author

When there is a fix available it can surely be added here, indeed.

@aviatesk
Copy link
Sponsor Member

Can we backport #41383 ?

Keno and others added 9 commits June 30, 2021 15:03
PhiNode isn't really supported in lowered IR, but it is convenient
to be able to emit it, particularly for code that is designed to
perform transformations both on typed and on lowered IR (such as
Diffractor). Moreover, we do actually supported phinodes in untyped
IR both in the interpreter and in the compiler. At the moment,
inference assumes that PhiNodes get treated as embedded constants,
which is just not what the actual implementation does. At the very
least, it should just leave PhiNodes alone in case they accidentally
end up in lowered IR (rather than causing crashes), but we might
as well give them some basic support.

(cherry picked from commit bb52621)
Equality for `QRCompactWY` did not ignore the subdiagonal entries of
`T` leading to nondeterministic behavior.

This is pulled out from #41228, since this change should be less
controversial than the other changes there and this particular bug just
came up in ChainRules again.

(cherry picked from commit 74fab49)
This makes jl_task_t 8 bytes smaller, moving it into the next-smallest
pool, which drops the effective size from 400 to 368 bytes.

(cherry picked from commit af4bbfd)
This was discussed on Slack with @StefanKarpinski and @BioTurboNick and
the general consensus was that stripping all spaces following a
backslash-escaped newline would make more sense than the current
behavior. Stripping the newline and spaces after a backslash now happens
before detenting for triple-quoted srings, so in cases like

```julia
"""
  a\
b
  c"""
```

the `b` doesn't affect detenting and the spaces before `a` and `c` are
removed.

(cherry picked from commit be08627)
 (#41383)

* inference: enable constant propagation for `invoke`d calls, fixes #41024

Especially useful for defining mixins with typed interface fields, e.g.
```julia
abstract type AbstractInterface end # mixin, which expects common field `x::Int`
function Base.getproperty(x::AbstractInterface, sym::Symbol)
    if sym === :x
        return getfield(x, sym)::Int # inferred field
    else
        return getfield(x, sym)      # fallback
    end
end

abstract type AbstractInterfaceExtended <: AbstractInterface end # extended mixin, which expects additional common field `y::Rational{Int}`
function Base.getproperty(x::AbstractInterfaceExtended, sym::Symbol)
    if sym === :y
        return getfield(x, sym)::Rational{Int}
    end
    return Base.@invoke getproperty(x::AbstractInterface, sym::Symbol)
end
```

As a bonus, inliner is able to use `InferenceResult` as a fast inlining
pass for constant-prop'ed `invoke`s

* improve compile-time latency

* Update base/compiler/abstractinterpretation.jl

* Update base/compiler/abstractinterpretation.jl

(cherry picked from commit bc6da93)
@KristofferC
Copy link
Sponsor Member Author

@nanosoldier runtests(ALL, vs=":release-1.6")

@nanosoldier
Copy link
Collaborator

Your package evaluation job has completed - possible new issues were detected. A full report can be found here. cc @maleadt

@fingolfin
Copy link
Contributor

Can #41320 please be backported, so that cxxwrap and other things linking against libjulia will work? See JuliaPackaging/Yggdrasil#3263

Keno and others added 11 commits July 5, 2021 22:24
The pgcstack symbol is special because embedders are supposed to
define it themselves in localexec tls, and then access it that way.
However, there is another case of of libraries that link against
julia, but are not embedders, but rather plugins to be loaded later
(e.g. CxxWrap). These do need access to the pgcstack, but do not
have a priori access to the localexec of the embedder. Thus,
re-export the `jl_get_pgcstack` function that provides access
to our internal getter for the pgcstack.

(cherry picked from commit e469a1e)
Fixes #41407

(cherry picked from commit a941243)
…41412)

When loading our `libblas` and `liblapack` for the first time, we may
need to rely upon an `RPATH` that has been embedded within
`libjulia-internal`.  If we use `libblastrampoline` to perform the
actual `dlopen()`, however, we don't have that `RPATH` at hand.

To fix this, we instead `dlopen()` the library first, to force the
proper loading of the library (which loads the library and its `SONAME`
into our process), which allows `libblastrampoline`'s `dlopen()` to
immediately succeed, along the happy path of finding the library already
loaded.

(cherry picked from commit 97a62dd)
(cherry picked from commit 286f024)
(cherry picked from commit 18f4142)
@KristofferC
Copy link
Sponsor Member Author

@nanosoldier runtests(ALL, vs=":release-1.6")

@nanosoldier
Copy link
Collaborator

Your package evaluation job has completed - possible new issues were detected. A full report can be found here. cc @maleadt

DilumAluthge and others added 3 commits July 6, 2021 16:53
* MPFR tests: mark the `log2(x) == log2(42)` test as broken on Windows

* Apply suggestions from code review

Co-authored-by: Simeon Schaub <simeondavidschaub99@gmail.com>

Co-authored-by: Simeon Schaub <simeondavidschaub99@gmail.com>
(cherry picked from commit fee5711)
@KristofferC
Copy link
Sponsor Member Author

I think these are enough commits to warrant a beta3.

@KristofferC KristofferC merged commit 7863d36 into release-1.7 Jul 6, 2021
@KristofferC KristofferC deleted the backports-release-1.7 branch July 6, 2021 20:35
@Sacha0
Copy link
Member

Sacha0 commented Jul 6, 2021

Thanks for all your hard work Kristoffer! :)

vchuravy pushed a commit to JuliaLang/Distributed.jl that referenced this pull request Oct 6, 2023
vchuravy pushed a commit to JuliaLang/Test.jl that referenced this pull request Oct 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Release management and versioning.
Projects
None yet