Skip to content

Backports for 1.10.10 #57715

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

Merged
merged 68 commits into from
Jun 17, 2025
Merged

Backports for 1.10.10 #57715

merged 68 commits into from
Jun 17, 2025

Conversation

KristofferC
Copy link
Member

@KristofferC KristofferC commented Mar 11, 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 Mar 11, 2025
@IanButterworth IanButterworth deleted the backports-release-1.10 branch March 27, 2025 22:37
@DilumAluthge
Copy link
Member

Hmmm. Was it intentional that this PR was closed?

@IanButterworth IanButterworth restored the backports-release-1.10 branch March 27, 2025 22:55
@IanButterworth
Copy link
Member

Ugh.. sorry, the github desktop app has a bug where it deletes upstream branches rather than the origin branch when you instruct it to do that.

@KristofferC KristofferC force-pushed the backports-release-1.10 branch 2 times, most recently from ea29f10 to 269369c Compare March 31, 2025 19:29
@topolarity topolarity force-pushed the backports-release-1.10 branch from fab480d to 269369c Compare April 1, 2025 16:13
@KristofferC KristofferC force-pushed the backports-release-1.10 branch 3 times, most recently from 27f7810 to a4a6fff Compare June 5, 2025 13:43
@KristofferC
Copy link
Member Author

@mbauman, I reverted #58012 due to

  LoadError: return type Tuple{Vector{REPL.REPLCompletions.Completion}, UnitRange{Int64}, Bool} does not match inferred return type Tuple{Union{Bool, Vector{REPL.REPLCompletions.Completion}}, UnitRange{Int64}, Bool}

feel free to push a fixed version.

@KristofferC KristofferC force-pushed the backports-release-1.10 branch from cbc56b0 to 86a6f68 Compare June 5, 2025 14:06
@KristofferC
Copy link
Member Author

@nanosoldier runtests()

@KristofferC
Copy link
Member Author

I've seen

strings/basic                                    (17) |         failed at 2025-06-05T14:55:12.154
Test Failed at /cache/build/tester-amdci4-13/julialang/julia-release-1-dot-10/julia-96dc2d8c45/share/julia/test/strings/basic.jl:877
  Expression: all((==)(Int64), Base.return_types(prevind, Tuple{AbstractString, Vararg}))
Test Failed at /cache/build/tester-amdci4-13/julialang/julia-release-1-dot-10/julia-96dc2d8c45/share/julia/test/strings/basic.jl:878
  Expression: all((==)(Int64), Base.return_types(nextind, Tuple{AbstractString, Vararg}))

on different workers, I think it has to do with what tests ran before.

inkydragon and others added 12 commits June 5, 2025 22:07
- `dirname.c` was removed by
c2cec7a

(cherry picked from commit 85dc2c7)
Other backends (in this case NVPTX) require that `invariant.load`
metadata is maintained to generate non-coherent loads.

Currently, we unconditionally strip that metadata from all loads,
since our other uses of it may have become invalid.

x-ref: llvm/llvm-project#112834
JuliaGPU/CUDA.jl#2531

---------

Co-authored-by: Gabriel Baraldi <[email protected]>
(cherry picked from commit 29da86b)
)

The type assertions are valid according to the doc strings of these
functions in the case of `AbstractString`.

Should prevent some invalidation on loading user code.

Fixes #57605

(cherry picked from commit 6c9c336)
…on (#57476)

Typevars are all existential (in the sense of variable lb/ub) during
intersection. This fix is somehow costly as we have to perform 3 times
check to prove a false result. But a single existential <: seems too
dangerous as it cause many circular env in the past.
fix #57429
fix #41561

(cherry picked from commit beb928b)
…lignment to LLVM (#56938)

Fixes #56937

---------

Co-authored-by: Oscar Smith <[email protected]>
(cherry picked from commit 1e2758e)
The alignment of a nested object (in C layouts) is not affected by the
alignment of its parent container when computing a field offset (as if
it will be allocated at address 0). This can be strongly
counter-intuitive (as it implies it should add padding where it does not
seem to provide value to the user), but this is required to match the C
standard. It also permits users to write custom allocators which happen
to provide alignment in excess of that which codegen may assume is
guaranteed, and get the behavioral characteristics they intended to
specify (without resorting to computing explicit padding).

Addresses
#57713 (comment)

(Cherry-picked from ec3c02a in
v1.11 backports branch)
This was resulting in it being too aggressive at filtering out
"duplicate" results, resulting in possible inference mistakes or missing
guardsig entries.

Fixes:
#50722 (comment)
(cherry picked from commit 762801c)
Co-authored-by: Jishnu Bhattacharya <[email protected]>
(cherry picked from commit 3e57a8a)
topolarity and others added 18 commits June 5, 2025 22:07
This allows constructors like `Tuple{Type{Vector{Foo}},
UndefInitializer, Tuple{Int}}` to precompile as usual

Appears to have a minimal effect on the stdlib pkgimages:
```julia
--- before.txt  2025-05-23 08:36:20.171870043 -0400
+++ after.txt   2025-05-22 14:48:49.003869097 -0400
@@ -47,7 +47,7 @@
  20K ../julia/usr/share/julia/compiled/v1.13/Logging/pkgimage.so
  20K ../julia/usr/share/julia/compiled/v1.13/Logging/pkgimage.so
 3.5M ../julia/usr/share/julia/compiled/v1.13/Markdown/pkgimage.so
-3.5M ../julia/usr/share/julia/compiled/v1.13/Markdown/pkgimage.so
+3.6M ../julia/usr/share/julia/compiled/v1.13/Markdown/pkgimage.so
 184K ../julia/usr/share/julia/compiled/v1.13/Mmap/pkgimage.so
 184K ../julia/usr/share/julia/compiled/v1.13/Mmap/pkgimage.so
  28K ../julia/usr/share/julia/compiled/v1.13/MozillaCACerts_jll/pkgimage.so
```

Resolves #58497.

(cherry picked from commit f8ece05)
- Show strings with escaping, rather than trying to output the text
unmodified.
- Show symbols with the same formatting as Strings
- Avoid accidentally defining a broken Core.show method for NamedTuple

(cherry picked from commit bd3eab6)
Makes more types survive `jl_static_show` unambiguously:
- Symbols
- Symbols printed in the `:var"foo"` form use raw string escaping,
fixing `:var"a\b"`, `:var"a\\"`, `:var"$a"`, etc.
  - Symbols that require parens use parens (`:(=)`, ...)
- Signed integers: Except for `Int`, signed integers print like
`Int8(1)`.
- Floats: floats are printed in a naive but reversible (TODO: double
check) way. `Inf(16|32|)` and `NaN(16|32|)` are printed, and
`Float16`/`Float32` print the type (`Float32(1.5)`). `Float64`s are
printed with a trailing `.0` if it is necessary to disambiguate from
`Int`.

Fixes #52677,
#58484 (comment),
#58484 (comment),
and the specific case mentioned in #58484. Improves the situation for
round-trip (inexhaustive list):
- Non-canonical NaNs
- BFloat16
- User-defined primitive types. This one is tricky, because they can
have a size different from any type we have literals for.

(cherry picked from commit b03ef6b)
Small follow-up to #58512

(cherry picked from commit 36bd3ad)
Improve performance of `^(::Float64, n::Integer)` in the case of `abs(n)
> 2^13`.

While `pow_body` is unreliable for `abs(n) > 2^25` this implementation
provides errors of a few ULPs, while runtime is capped to that of the
`Float64` implementation.

Fixes  #53881
See also #53886.

(cherry picked from commit fe49d56)
This was just intended to be a constant and we have binary Float64
constants

(cherry picked from commit f3474b5)
Skip setName on folded inputs, and ensure
the correct pointer address space is used.

(cherry picked from commit baca8ba)
Fixes this, which breaks expectations from the way `@time` doesn't
introduce a new scope.
```
julia> using Profile

julia> @Profile x = 1
1

julia> x
ERROR: UndefVarError: `x` not defined in `Main`
Suggestion: check for spelling errors or missing imports.
```

(cherry picked from commit d6af199)
Closes #57376
Closes #34037

- Adds a lock in `SimpleLogger` and `ConsoleLogger` for use on maxlog
tracking and stream writes to improve threadsafety.
Closely similar to #54497

- Turns the internal `_min_enabled_level` into a `Threads.Atomic`. There
are [some direct
interactions](https://juliahub.com/ui/Search?type=code&q=_min_enabled_level&w=true)
to this internal in the ecosystem, but they should still work
```
julia> Base.CoreLogging._min_enabled_level[] = Logging.Info+1
LogLevel(1)
```

- Brings tests over from #57448

Performance seems highly similar:

```
julia> @time for i in 1:10000
          @info "foo" maxlog=10000000
       end
[ Info: foo
...
  0.481446 seconds (1.33 M allocations: 89.226 MiB, 0.49% gc time)
```

```
  0.477235 seconds (1.31 M allocations: 79.002 MiB, 1.77% gc time)
```

(cherry picked from commit 9af9650)
This does not fix the underlying issue that can occur here which is a
collision of build_ids.lo between modules in IR decompression. Fixing
that requires a somewhat significant overhaul to the serialization of IR
(probably using the module identity as a key). This does mean we use a
lot more of the bits available here so it makes collisions a lot less
likely( they were already extremely rare) but hrtime does tend to only
use the lower bits of a 64 bit integer and this will hopefully add some
more randomness and make this even less likely

(cherry picked from commit 7157407)
while testing to ensure that ~~absurdly large method tables~~ tab
completing over an abstract function call doesn't tank the performance
of the REPL

Fixes #57836

(cherry picked from commit 6f12957)
@KristofferC KristofferC force-pushed the backports-release-1.10 branch from 96dc2d8 to fa48c49 Compare June 5, 2025 20:07
@nanosoldier
Copy link
Collaborator

The package evaluation job you requested has completed - possible new issues were detected.
The full report is available.

Report summary

❗ Packages that crashed

1 packages crashed only on the current version.

  • The process was aborted: 1 packages

178 packages crashed on the previous version too.

✖ Packages that failed

36 packages failed only on the current version.

  • Package has test failures: 2 packages
  • Package tests unexpectedly errored: 6 packages
  • Tests became inactive: 2 packages
  • Test duration exceeded the time limit: 26 packages

2541 packages failed on the previous version too.

✔ Packages that passed tests

32 packages passed tests only on the current version.

  • Other: 32 packages

6576 packages passed tests on the previous version too.

➖ Packages that were skipped altogether

1126 packages were skipped on the previous version too.

@KristofferC
Copy link
Member Author

@nanosoldier runtests(["Logging2", "DarkCurves", "Curve25519", "BenchmarkTools", "Optimisers", "UCX", "Diffractor", "Evolutionary", "Distributions", "PoincareInvariants", "OptimizationPRIMA", "FiniteMPS", "QuantumOpticsBase", "CompressiveLearning", "DiscreteChoiceModels", "LongwaveModePropagator", "CellularPotts", "HighVoronoi", "ControlBarrierFunctions", "QuanEstimation", "CDGRNs", "SwissVAMyKnife", "Test", "Agate", "MagNav"])

@nanosoldier
Copy link
Collaborator

The package evaluation job you requested has completed - possible new issues were detected.
The full report is available.

Report summary

✖ Packages that failed

7 packages failed only on the current version.

  • Package has test failures: 1 packages
  • Package tests unexpectedly errored: 4 packages
  • Test duration exceeded the time limit: 2 packages

✔ Packages that passed tests

18 packages passed tests on the previous version too.

@KristofferC
Copy link
Member Author

@nanosoldier runbenchmarks(ALL, vs=":release-1.10")

@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here.

@KristofferC KristofferC merged commit 1a2105c into release-1.10 Jun 17, 2025
3 of 5 checks passed
@KristofferC KristofferC deleted the backports-release-1.10 branch June 17, 2025 08:55
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.