Skip to content

DO NOT MERGE: v1.12 branch for comparison to master #202

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

Draft
wants to merge 313 commits into
base: master
Choose a base branch
from

Conversation

nickrobinson251
Copy link
Member

@nickrobinson251 nickrobinson251 commented Jan 15, 2025

@nickrobinson251 nickrobinson251 force-pushed the v1.12.0-DEV+RAI branch 4 times, most recently from 966538b to 9da665d Compare January 29, 2025 13:01
@DelveCI DelveCI force-pushed the v1.12.0-DEV+RAI branch 7 times, most recently from 1cff7d7 to 1e6e20d Compare February 7, 2025 00:28
@DelveCI DelveCI force-pushed the v1.12.0-DEV+RAI branch 5 times, most recently from 02e0f68 to 35024c5 Compare February 18, 2025 00:28
vtjnash and others added 6 commits February 21, 2025 12:08
…ng#57453)

This reverts a portion of commit
50833c8.

This algorithm is not able to handle simple cases where there is any
internal padding, such as the example of:
```
struct LotsBytes
    a::Int8
    b::NTuple{256,Int}
    c::Int
end
```

Unfortunately fixing it is a bit of a large project right now, so
reverting now to fix correctness while working on that.

Fixes JuliaLang#55513 (indirectly, by removing broken code) Maybe reopens JuliaLang#54109,
although the latency issue it proposes to fix doesn't occur on master
even with this revert (just the mediocre looking IR result output
returns)

(cherry picked from commit a65c2cf)
…ang#57389)

also add nsw/nuw flags whenever possible.

(cherry picked from commit b9a8d46)
…uliaLang#57471)

The buffer may end up reallocated by the additional writes performed to
it in this function.

(cherry picked from commit 0fb5fa0)
Fixes JuliaLang#56904.

The associated PR (JuliaLang#55876) compiles a finally block, then compiles a
renumbered version of it. This works if `compile` doesn't mutate its
input, but in reality, lambda bodies were being `set!` when linearized.
The "invalid syntax" error was a result of attempting to linearize a
lambda twice.

(cherry picked from commit 414aca2)
…al (JuliaLang#57447)

The `_DECLARED` partition kind used to be considered `guard`, but we now
consider it equivalent to an Any-typed `_GLOBAL` (but with weaker
redefinition properties). That said, its `->restriction` is NULL, so add
it to the list of bindings that should return `nothing` here (and thus
`Any` from the bulitin) to fix JuliaLang#57446.

(cherry picked from commit 0163991)
KristofferC and others added 2 commits February 26, 2025 08:40
Backported PRs:
- [x] JuliaLang#57302 <!-- Add explicit imports for types and fix bugs -->
- [x] JuliaLang#57420 <!-- Compiler: Fix check for IRShow definedness -->
- [x] JuliaLang#57419 <!-- generated: Switch resolution module back to what it
was before -->
- [x] JuliaLang#57421 <!-- bpart: Skip implicit import reval if using'd export
set is unchanged -->
- [x] JuliaLang#57425 <!-- Prohibit binding replacement in closed modules during
precompile -->
- [x] JuliaLang#57426 <!-- Prohibit `import`ing or `using` Main during
incremental compilation -->
- [x] JuliaLang#57433 <!-- bpart: Track whether any binding replacement has
happened in image modules -->
- [x] JuliaLang#57445 <!-- Run all `--sysimage-native-code=no` cmdlineargs tests
single-threaded -->
- [x] JuliaLang#57386 <!-- Only strip invariant.load from special pointers -->
- [x] JuliaLang#57453 <!-- Revert "Make emitted egal code more loopy (JuliaLang#54121)"
-->
- [x] JuliaLang#57389 <!-- Change memory indexing to use the type as index
instead of i8 -->
- [x] JuliaLang#57447 <!-- Don't return null pointer when asking for the type of
a declared global -->
- [x] JuliaLang#57467 <!-- using/import: ensure world update after each
observable operation -->
- [x] JuliaLang#57471 <!-- staticdata: Don't use `newm` pointer after it has been
invalidated -->
- [x] JuliaLang#57416 <!-- lowering: Don't mutate lambda in `linearize` -->
Bumps `libLLVM` to include
llvm/llvm-project#139259, a simple patch to fix
the mangling of a C symbol.
@DelveCI DelveCI force-pushed the v1.12.0-DEV+RAI branch from b848d7e to e6a0b06 Compare May 15, 2025 00:32
Keno and others added 9 commits May 20, 2025 10:16
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 JuliaLang#58373

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

(cherry picked from commit 94570e1)
JuliaLang#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 JuliaLang#58434, fix JuliaLang#49318, close JuliaLang#49362.

---------

Co-authored-by: Mosè Giordano <[email protected]>
Co-authored-by: Sukera <[email protected]>
(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)
@DelveCI DelveCI force-pushed the v1.12.0-DEV+RAI branch from e6a0b06 to 88afcd0 Compare May 21, 2025 00:33
aviatesk and others added 17 commits May 22, 2025 16:46
Update branch info to `release-1.12`, so that we can bump the SparseArrays.jl stdlib.
…s from packages succeed. TODO: remove this once alpha/beta is released

# Conflicts:
#	VERSION

# Conflicts:
#	VERSION

# Conflicts:
#	VERSION
Prevent transparent huge pages (THP) overallocating pysical memory.

Co-authored-by: Adnan Alhomssi <[email protected]>
Prepend `[signal (X) ]thread (Y) ` to each backtrace line that is
displayed.

Co-authored-by: Diogo Netto <[email protected]>
@DelveCI DelveCI force-pushed the v1.12.0-DEV+RAI branch from 88afcd0 to 1bc440d Compare May 23, 2025 00:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.