-
-
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
release-1.8: Backports for julia 1.8-beta1/2 #44237
Conversation
(cherry picked from commit 072c041)
Previously, there were special cases for `T[]`, `T[a]`, `T[a,b]` and `T[a,b,c]`. Together with the general case for more elements, that meant five methods to consider in cases like `T[x...]` where the length of `x` was not known at compile time. That was beyond the inference limit and such a call would be inferred as `Any`. So this change gets rid of all the special cases. The loop-based general case worked well if all arguments were of the same type, but otherwise suffered from type-instability inside the loop. Without the special cases for low element count this would be hit more often, so for the non-homogeneous case, the loop is replaced with a call to `afoldl` that basically unrolls the loop for up to 32 elements. (cherry picked from commit b8e5d7e)
`std::vector::size()` returns a `size_t`, so we need to cast the int `jl_n_threads` to a `size_t` for the comparison. (cherry picked from commit 15dcd5b)
Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com> (cherry picked from commit f5d9b86)
#44210) As with loop, it's hard to prove termination of recursive call automatically. But with this commit we can manually specify termination at least. ```julia Base.@assume_effects :terminates_globally function recur_termination1(x) x == 1 && return 1 1 < x < 20 || throw("bad") return x * recur_termination1(x-1) end @test fully_eliminated() do recur_termination1(12) end Base.@assume_effects :terminates_globally function recur_termination2(x) x == 1 && return 1 1 < x < 20 || throw("bad") return _recur_termination2(x) end _recur_termination2(x) = x * recur_termination2(x-1) @test fully_eliminated() do recur_termination2(12) end ```
#44282) A return type derived by const-prop' inference can be wider than that of non const-prop' inference in rare cases e.g. when there are cycles but cached result is still accurate. This commit checks if the const-prop'ed result is really more accurate than non-const result. fix Ferrite-FEM/Tensors.jl#178
* [CPUID] Rework how current ISA is determined * [CPUID] Add ISA entry for A64FX * [CPUID] Add ISA entry for Apple Silicon M1 * [CPUID] Simplify collection of full set of features for architecture * [CPUID] Remove AES from A64FX ISA, not all chips appear to have it (cherry picked from commit f45b6ad)
@nanosoldier |
Your package evaluation job has completed - possible new issues were detected. A full report can be found here. |
(cherry picked from commit f852c88)
On Windows, we observed occasional issues where an error within the function callback to the `open(::Function, ::Cmd)` method would cause problems due to assuming that the opened process had finished by the time the `open()` call was finished. In most cases this was true, however on Windows, it was found that we need to explicitly `wait()` upon the process object to ensure that all file handles held by the subprocess were properly closed by the time `open()` is finished. Co-authored-by: Dilum Aluthge <dilum@aluthge.com> (cherry picked from commit 623ceb7)
(cherry picked from commit 2714b92)
(cherry picked from commit e723d37)
(cherry picked from commit c5bc69c)
…-thread backtrace buffer in ptls (#44116) * Fix thread-safety violation in Allocations Profiler: Re-use the shared `ptls->bt_data` buffer from the thread-local storage for the buffer, to ensure that each thread has a separate buffer. This buffer is shared with the exception throwing mechanism, but is safe to share since julia exception throwing never interleaves with allocations profiling. * Approach two: Create a separate per-thread allocations backtrace buffer. * Update src/gc-alloc-profiler.cpp Co-authored-by: Jameson Nash <vtjnash@gmail.com> * Update src/gc-alloc-profiler.cpp Co-authored-by: Jameson Nash <vtjnash@gmail.com> * fix type error (#44235) * Update src/gc-alloc-profiler.cpp Co-authored-by: Jameson Nash <vtjnash@gmail.com> Co-authored-by: Pete Vilter <7341+vilterp@users.noreply.github.com> (cherry picked from commit 4e57966)
(cherry picked from commit 629eb86)
Backported PRs:
cat(As..., dims=Val((1,2,...))
work #44211getindex(::Type, ...)
methods #44127AbstractInterpreter
: make it easier to overload pure/concrete-eval #44224GlobalRef
s #44200get_binding_type
#44229addenv
for environment entries with embedded=
#44212jl_effective_threads
declaration #44251open(::Function, ::Cmd)
waits for termination #44078sysimage.mk
Makefile, set theJULIA_NUM_THREADS=1
environment variable when running thegenerate_precompile.jl
script #44281BLAS.spr!
docstring #44303:terminates_globally
functional on recursive functions #44210Non-merged PRs with backport label:
range(start; step, length)
uses TwicePrecision when possible #44313NamedTuple
can be bitstype more often #44311@threads for
#44168