-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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.11.3 #56741
Backports for 1.11.3 #56741
Conversation
This also needs to include LinearAlgebra.jl back-ports: https://github.com/JuliaLang/LinearAlgebra.jl/issues?q=state%3Aclosed%20label%3A%22backport%201.11%22 |
I've been thinking about it and I think the easiest is just to cherry pick these commits onto the julia repo onto either a |
@nanosoldier |
@IanButterworth You typo'd the syntax, branches need to be specified using @nanosoldier |
Ah ok, but this is a 1.11 backports PR. I wanted to check it against 1.10 (because stuff in the blacklist hasn't been tested vs 1.10 because of that bug) |
I don't see the Nanosoldier commit status here, which leads me to believe that either the webhook was never delivered, or that the Nanosoldier server didn't accept the job. |
@nanosoldier |
The package evaluation job you requested has completed - possible new issues were detected. |
@nanosoldier |
@maleadt please cancel the duplicate run invoked here #56741 (comment) (or let me know how to if I can) The latest request I did is the correct spec. We want to check against 1.10 state |
It is currently not possible to cancel Nanosoldier invocations. Only thing I can to is restart the service at a strategic time. I'll check tomorrow when this job starts. |
@nanosoldier |
The package evaluation job you requested has completed - possible new issues were detected. |
The ScanByte segfault is a package issue and not a problem with Julia 1.11. I've added it to the PkgEval blacklist. |
I haven't looked into the pkgeval run of this 1.11 branch against 1.10 in detail, but:
|
Fixes #56726 added the changes that were suggested. fixing the mistake. --------- Co-authored-by: Max Horn <[email protected]> Co-authored-by: Chengyu Han <[email protected]> (cherry picked from commit fc9e7c4)
…56842) Fix #56841. Currently the documentation states that keys(dict) and values(dict) iterate in the same order. But it is not stated whether this is the same order as that used by pairs(dict), or when looping, for (k,v) in dict. This PR makes this guarantee explicit. (cherry picked from commit 796d823)
#55886 accidentally created a new function `Base.MathConstants.rationalize` instead of extending `Base.rationalize`, which is the reason why `Base.rationalize(Int, π)` isn’t constant-folded in Julia 1.10 and 1.11: ``` julia> @Btime rationalize(Int,π); 1.837 ns (0 allocations: 0 bytes) # v1.9: constant-folded 88.416 μs (412 allocations: 15.00 KiB) # v1.10: not constant-folded ``` This PR fixes that. It should probably be backported to 1.10 and 1.11. (cherry picked from commit d3c26b7)
Co-authored-by: Ian Butterworth <[email protected]> (cherry picked from commit e3f90c4)
…5871) We were accidentally emitting a different pop order for `Expr(:leave, ...)` if you uncomment the `nothing` below: ```julia let src = Meta.@lower let try try return 1 catch end finally # nothing # <- uncomment me end end println.(filter(stmt->Base.isexpr(stmt, :leave), src.args[1].code)) nothing end ``` (cherry picked from commit deac82a)
ce7242c
to
905e39a
Compare
(cherry picked from commit bdf78c9)
Prior to this, especially on macOS, the gc-safepoint here would cause the process to segfault as we had already freed the current_task state. Rearrange this code so that the GC interactions (except for the atomic store to current_task) are all handled before entering GC safe, and then signaling the thread is deleted (via setting current_task = NULL, published by jl_unlock_profile_wr to other threads) is last. ``` ERROR: Exception handler triggered on unmanaged thread. Process 53827 stopped * thread #5, stop reason = EXC_BAD_ACCESS (code=2, address=0x100018008) frame #0: 0x0000000100b74344 libjulia-internal.1.12.0.dylib`jl_delete_thread [inlined] jl_gc_state_set(ptls=0x000000011f8b3200, state='\x02', old_state=<unavailable>) at julia_threads.h:272:9 [opt] 269 assert(old_state != JL_GC_CONCURRENT_COLLECTOR_THREAD); 270 jl_atomic_store_release(&ptls->gc_state, state); 271 if (state == JL_GC_STATE_UNSAFE || old_state == JL_GC_STATE_UNSAFE) -> 272 jl_gc_safepoint_(ptls); 273 return old_state; 274 } 275 STATIC_INLINE int8_t jl_gc_state_save_and_set(jl_ptls_t ptls, Target 0: (julia) stopped. (lldb) up frame #1: 0x0000000100b74320 libjulia-internal.1.12.0.dylib`jl_delete_thread [inlined] jl_gc_state_save_and_set(ptls=0x000000011f8b3200, state='\x02') at julia_threads.h:278:12 [opt] 275 STATIC_INLINE int8_t jl_gc_state_save_and_set(jl_ptls_t ptls, 276 int8_t state) 277 { -> 278 return jl_gc_state_set(ptls, state, jl_atomic_load_relaxed(&ptls->gc_state)); 279 } 280 #ifdef __clang_gcanalyzer__ 281 // these might not be a safepoint (if they are no-op safe=>safe transitions), but we have to assume it could be (statically) (lldb) frame #2: 0x0000000100b7431c libjulia-internal.1.12.0.dylib`jl_delete_thread(value=0x000000011f8b3200) at threading.c:537:11 [opt] 534 ptls->root_task = NULL; 535 jl_free_thread_gc_state(ptls); 536 // then park in safe-region -> 537 (void)jl_gc_safe_enter(ptls); 538 } ``` (test incorporated into #55793) (cherry picked from commit 0d09f3d, resolving conflicts from not having backported #52198)
We never have a reason to reference this data again since we already have native code generated for it, so it is simply wasting memory and download space. $ du -sh {old,new}/usr/share/julia/compiled 256M old 227M new (cherry picked from commit dfe6a13)
Co-authored-by: Jameson Nash <[email protected]>
This is partial backport of #56105, only the part relative to parsing triplets.
I pushed cbb7ebc to make it possible to parse |
…ae5b8 (#57015) Co-authored-by: IanButterworth <[email protected]>
…e previous GC state (#53868) I have not succeed in writing a test for this, but this was found on a CI hang together with @Keno and @vtjnash. In essence if we hit a safepoint while GC_SAFE things can go wrong <img width="748" alt="image" src="https://github.com/JuliaLang/julia/assets/28694980/7d8170ee-11ab-43de-9bb1-9219aa5a2d80"> (cherry picked from commit 1e50a99)
(cherry picked from commit 10e20f1)
Resolves #56775 . Credit for this fix rests entirely with bbrehm . --------- Co-authored-by: Lilith Orion Hafner <[email protected]> Co-authored-by: Neven Sajko <[email protected]> (cherry picked from commit 1ebacac)
The `N<:Integer` constraint was nonsensical, given that `(N === Any) || (N isa Int)`. N5N3 noticed this back in 2022: #44061 (comment) Follow up on #44061. Also xref #45477. (cherry picked from commit d3964b6)
This fixes up a couple of conspicuous problems I noticed when reviewing #56787 I'm unsure we should have accepted this pass in Base to begin with... It should at least be re-written to error on unexpected IR elements (instead of performing an invalid transform silently), but the real problem is that this pass is out-of-pipeline and so it doesn't run on most user code and we have much worse coverage compared to passes in the main Compiler. (cherry picked from commit c1db3a4)
@nanosoldier |
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.
28 packages crashed on the previous version too. ✖ Packages that failed34 packages failed only on the current version.
2792 packages failed on the previous version too. ✔ Packages that passed tests41 packages passed tests only on the current version.
6044 packages passed tests on the previous version too. ➖ Packages that were skipped altogether1309 packages were skipped on the previous version too. |
@nanosoldier |
This reverts commit 2bd4cf8. (#53231) The reason for this revert is that it caused exponential blowup of types in iterated views causing some packages to simply freeze when doing something that worked ok in 1.10. In my opinion, the perf gain from the PR is not outweighed by the "risk" of hitting this compilation blowup case. Fixes #56760. Co-authored-by: KristofferC <[email protected]> (cherry picked from commit b23f557)
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.
2 packages failed on the previous version too. ✔ Packages that passed tests23 packages passed tests on the previous version too. |
Backported PRs:
exp(weirdNaN)
#56784UnionAll
in the doc string ofwhere
#56411float(a//b)
#56772Base.rationalize
instead of defining new functionBase.MathConstants.rationalize
#56793TypeVar
#56264CI
is set #56905(pop-handler-list ...)
#55871IR_FLAG_REFINED
for narrowedPhiNode
s #56391Need manual backport:
Contains multiple commits, manual intervention needed:
String(::Memory)
copy #54457using Foo: Foo, ...
in package code (was: "using considered harmful") #42080struct
to hard #56755Non-merged PRs with backport label:
tmerge(Const(s), Const(t))
st.(s !== t) && (s == t)
#56915Meta.partially_inline!
fixes #56813Pairs
public #56794@ccallable
name before JIT registration #55813displaysize
to theIOContext
used by the REPL #55499isfile_casesensitive
fixes on Windows #55220propertynames
for SVD respects private argument #55169@inbounds
andBase.@propagate_inbounds
#50157 <!-- improve docs for@inbounds
andBase.@propagate_inbounds
--