-
-
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
Splatting into push! for arrays of eltype Any is broken for length bigger than four after having loaded LoopVectorization #48085
Comments
Works on
|
Works on 1.9.2 for me (Mac):
|
Ok, found the culprit... |
Before closing, we should probably figure out what is happening here. Does not happen when running through debugger:
Does not happen when running with |
It seems to break when this method is defined https://github.com/JuliaSIMD/LoopVectorization.jl/blob/35f83103c12992ddd887cd709bf65e345db5ec9e/src/modeling/graphs.jl#L1653-L1667 (which is a Regressed between 1.9.0-alpha1 and 1.9.0-beta2 |
MWE is:
module A
using B
function Base.push!(a,b,c,d) end
end
module B
f() = push!(a, nothing, nothing, nothing, nothing)
precompile(Tuple{typeof(f)})
end REPL: julia> push!(LOAD_PATH, ".");
julia> using A
julia> aa = []
Any[]
julia> push!(aa, [1,2,3,4,5,6]...)
4-element Vector{Any}:
1
2
3
4 |
Isolated to this
This is not correct though, since |
Some code cleanup, and an early exit path that avoids trying to create a compilation signature from something that cannot be turned into one. Previously we might try a little too hard to make one, even if it meant we ignored that it was expected to be Varargs. Fix #48085
Some code cleanup, and an early exit path that avoids trying to create a compilation signature from something that cannot be turned into one. Previously we might try a little too hard to make one, even if it meant we ignored that it was expected to be Varargs. Fix #48085
Some code cleanup, and an early exit path that avoids trying to create a compilation signature from something that cannot be turned into one. Previously we might try a little too hard to make one, even if it meant we ignored that it was expected to be Varargs. Fix #48085 (cherry picked from commit 45c81b1)
[Issue updated by @KristofferC to include info about LoopVectorization]
On v1.9.0-beta2 splatting into push! does not work for Arrays of eltype Any for more than four arguments
It works on 1.8.3 and for example for Arrays of type Int. Have not tried others so far...
This is on windows:
The text was updated successfully, but these errors were encountered: