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 #44224GlobalRefs #44200get_binding_type#44229addenvfor environment entries with embedded=#44212jl_effective_threadsdeclaration #44251open(::Function, ::Cmd)waits for termination #44078sysimage.mkMakefile, set theJULIA_NUM_THREADS=1environment variable when running thegenerate_precompile.jlscript #44281BLAS.spr!docstring #44303:terminates_globallyfunctional on recursive functions #44210Non-merged PRs with backport label:
range(start; step, length)uses TwicePrecision when possible #44313NamedTuplecan be bitstype more often #44311@threads for#44168