Skip to content

Backports for 1.12.0-beta4 #58369

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

Open
wants to merge 20 commits into
base: release-1.12
Choose a base branch
from
Open

Conversation

KristofferC
Copy link
Member

@KristofferC KristofferC commented May 9, 2025

Backported PRs:

Need manual backport:

Contains multiple commits, manual intervention needed:

Non-merged PRs with backport label:

@KristofferC KristofferC added the release Release management and versioning. label May 9, 2025
@KristofferC KristofferC changed the title set VERSION to 1.12.0-beta3 Backports for 1.12.0-beta4 May 10, 2025
gbaraldi and others added 8 commits May 12, 2025 09:44
…ch_status enum (#58291)

The original purpose of this field was to manage quickly detecting if a
method was replaced, but that stopped being correct after #53415. It
was a fairly heavy-weight description of that single bit of
information. This bit of information allows quickly bypassing some
method lookups from pkgimages, since it can quickly detect that the
result is trivially correct (such as single-argument functions).

Also fixes #58215

(cherry picked from commit 5eb5155)
…#58335)

This extends the use of the optimization in #58291 to also apply to some
uses of ml_matches also.

(cherry picked from commit d1ec7d5)
`Base.get_extension` and `Dates.format` both appear in the manual and
should therefore be `public` symbols according to
[51335](#51335 (comment)).

They appear in the manual
[here](https://docs.julialang.org/en/v1/base/base/#Base.get_extension)
and

[here](https://docs.julialang.org/en/v1/stdlib/Dates/#Dates.format-Tuple%7BTimeType,%20AbstractString%7D).

Please also consider back porting this to version 1.12

(cherry picked from commit 963eaa7)
@KristofferC KristofferC force-pushed the backports-release-1.12 branch from a89d73c to aa0e223 Compare May 12, 2025 07:44
maleadt and others added 11 commits May 14, 2025 12:11
Bumps `libLLVM` to include
llvm/llvm-project#139259, a simple patch to fix
the mangling of a C symbol.
This manifested itself as a missing invalidation downstream, but I don't
know if this is visible from Base. In general, we don't set the
InferenceState's max_world to `typemax(UInt)`, but rather to the maximum
world age at start of inference, and then we check at the end of
inference if the world age is still the same, and only then raise it to
`typemax(UInt)` (which arms the backedges). The downstream setup is a
bit more complex, and I don't entirely know where this leaked out, but
this change fixed it regardless.

(cherry picked from commit f0a8dd8)
The `juliac-buildscript` is quite aggressive in how it modifies type
printing, so caching the pre-buildscript world like this allows us
to print stacktraces in their usual fidelity.

Before:
```
 [1] get_size_dict!(ne::StaticNestedEinsum{Char, ?, ?}, xs::Any, size_info::Dict{Char, Int64})
   @ OMEinsum ~/.julia/dev/OMEinsum/src/einsequence.jl:269
 ...
```

After:
```
 [1] get_size_dict!(ne::StaticNestedEinsum{Char, nothing, ('j','k','l')}, xs::Any, size_info::Dict{Char, Int64})
   @ OMEinsum ~/.julia/dev/OMEinsum/src/einsequence.jl:269
 ...
```

(cherry picked from commit 87ef4b3)
A weird edge case of loading, if REPL is loaded explicitly and does not
come from a require_stdlib call, it should not be getting REPLExt from a
require_stdlib call either. This is a convoluted bit of hackery specific
to work around problems with the way Pkg's REPLExt is designed to mutate
the REPL in unsafe ways. No other stdlib should ever want to access an
extension, particularly of a different module, as that is a private API
violation on multiple counts, so this only needs to be made to work
specifically for that REPL-Pkg scenario, even if it looks seemingly more
general.

Refs #58373

Reproducer:
```
JULIA_DEPOT_PATH=tmpdir/.julia ./julia --hist=no -qie 'using REPL'
] status
```

(cherry picked from commit 94570e1)
#58435)

This is caused because for LLVMs sake we have to say that the oddly
typed field is smaller than it actually is. (I wonder if we could
represent it as an iN field in a struct and have it work but the result
would be the same for now)

Fix #58434, fix #49318, close #49362.

---------

Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com>
Co-authored-by: Sukera <11753998+Seelengrab@users.noreply.github.com>
(cherry picked from commit 1b0b028)
The rd/wr lock distinction here was supposed to help prevent deadlocks
by allowing recursion (even over signals), but did not account for
crashes causing recursion while holding the wr lock. Make these lock
acquires fail-able if they would cause deadlock.

(cherry picked from commit 2e2fac5)
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
Development

Successfully merging this pull request may close these issues.

10 participants