-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
Backports for 1.10.10 #57715
Conversation
Hmmm. Was it intentional that this PR was closed? |
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. |
ea29f10
to
269369c
Compare
fab480d
to
269369c
Compare
27f7810
to
a4a6fff
Compare
cbc56b0
to
86a6f68
Compare
@nanosoldier |
I've seen
on different workers, I think it has to do with what tests ran before. |
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)
…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)
…n `reinterpret` (#57731)
Co-authored-by: Jishnu Bhattacharya <[email protected]> (cherry picked from commit 3e57a8a)
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)
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)
Skip setName on folded inputs, and ensure the correct pointer address space is used. (cherry picked from commit baca8ba)
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)
This reverts commit 29bef40.
This reverts commit fe073c4.
96dc2d8
to
fa48c49
Compare
The package evaluation job you requested has completed - possible new issues were detected. Report summary❗ Packages that crashed1 packages crashed only on the current version.
178 packages crashed on the previous version too. ✖ Packages that failed36 packages failed only on the current version.
2541 packages failed on the previous version too. ✔ Packages that passed tests32 packages passed tests only on the current version.
6576 packages passed tests on the previous version too. ➖ Packages that were skipped altogether1126 packages were skipped on the previous version too. |
@nanosoldier |
The package evaluation job you requested has completed - possible new issues were detected. Report summary✖ Packages that failed7 packages failed only on the current version.
✔ Packages that passed tests18 packages passed tests on the previous version too. |
@nanosoldier |
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. |
Backported PRs:
dirname.c
from MINGW #56413circshift!(::AbstractVector, ::Integer)
#57539nextind
,prevind
methods #57608::Real
fallback stack overflow #57790String
#57781mod
for mixes ofSigned
andUnsigned
#57853Base
:macro b_str
: restrict argument toString
#57863Base
:macro cmd
: restrict argument toString
#57862Random
:show
method forMersenneTwister
: invalidation resistance #57913Base
: shell escaping: inference improvement to prevent invalidation #57915append_c_digits
: typeassertInt
to improve inference #57950nextpow
,prevpow
for types withouttypemax
#49669reverse!
#58086@inbounds
annotations inaccumulate.jl
to only indexing calls #58200bind
inChannel
method doc string #58113@time_imports
@trace_compile
@trace_dispatch
#58011one
for theSizedArray
test helper #58209hasmethod
with kwargs to exclude positional arg names #58410Core
methods from newly-inferred list #58510Ptr
values static-show w/ type-information #58584IteratorSize
method forGenerator
#58110Need manual backport:
Contains multiple commits, manual intervention needed:
@time_imports
#55729struct
to hard #56755ndims
implementation with intent behind code #56999printvalue
#57584Non-merged PRs with backport label:
--trace-compile
#58535@nospecialize
forstring_index_err
#57604displaysize
to theIOContext
used by the REPL #55499isfile_casesensitive
fixes on Windows #55220@inbounds
andBase.@propagate_inbounds
#50157