Trying to concatenate multiple arrays using square bracket syntax errors on 1.12. After descending with Cthulhu.jl and comparing with Julia master, I'm seeing it may be related to JuliaLang/julia#39729
julia> v = CUDA.zeros(1); [v v; v v]
ERROR: Scalar indexing is disallowed.
Invocation of getindex resulted in scalar indexing of a GPU array.
This is typically caused by calling an iterating implementation of a method.
Such implementations *do not* execute on the GPU, but very slowly on the CPU,
and therefore should be avoided.
If you want to allow scalar iteration, use `allowscalar` or `@allowscalar`
to enable scalar iteration globally or for the operations in question.
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:44
[2] errorscalar(op::String)
@ GPUArraysCore ~/.julia/packages/GPUArraysCore/aNaXo/src/GPUArraysCore.jl:151
[3] _assertscalar(op::String, behavior::GPUArraysCore.ScalarIndexing)
@ GPUArraysCore ~/.julia/packages/GPUArraysCore/aNaXo/src/GPUArraysCore.jl:124
[4] assertscalar(op::String)
@ GPUArraysCore ~/.julia/packages/GPUArraysCore/aNaXo/src/GPUArraysCore.jl:112
[5] getindex
@ ~/.julia/packages/GPUArrays/0F4Dn/src/host/indexing.jl:50 [inlined]
[6] iterate
@ ./abstractarray.jl:1235 [inlined]
[7] iterate
@ ./abstractarray.jl:1233 [inlined]
[8] hvncat_fill!(A::CuArray{Float32, 2, CUDA.DeviceMemory}, scratch1::Vector{Int64}, scratch2::Vector{Int64}, d1::Int64, d2::Int64, as::NTuple{4, CuArray{Float32, 1, CUDA.DeviceMemory}})
@ Base ./abstractarray.jl:2723
[9] _typed_hvncat_dims(::Type{Float32}, dims::Tuple{Int64, Int64}, row_first::Bool, as::NTuple{4, CuArray{Float32, 1, CUDA.DeviceMemory}})
@ Base ./abstractarray.jl:2613
[10] _typed_hvncat(::Type, ::Tuple{Int64, Int64}, ::Bool, ::CuArray{Float32, 1, CUDA.DeviceMemory}, ::Vararg{CuArray{Float32, 1, CUDA.DeviceMemory}})
@ Base ./abstractarray.jl:2520
[11] typed_hvncat(::Type, ::Tuple{Int64, Int64}, ::Bool, ::CuArray{Float32, 1, CUDA.DeviceMemory}, ::Vararg{CuArray{Float32, 1, CUDA.DeviceMemory}})
@ Base ./abstractarray.jl:2351
[12] typed_hvcat(::Type{Float32}, ::Tuple{Int64, Int64}, ::CuArray{Float32, 1, CUDA.DeviceMemory}, ::Vararg{CuArray{Float32, 1, CUDA.DeviceMemory}})
@ Base ./abstractarray.jl:2193
[13] hvcat_internal(::Tuple{Int64, Int64}, ::CuArray{Float32, 1, CUDA.DeviceMemory}, ::CuArray{Float32, 1, CUDA.DeviceMemory}, ::Vararg{CuArray{Float32, 1, CUDA.DeviceMemory}})
@ SparseArrays ~/.julia/juliaup/julia-1.12.3+0.x64.linux.gnu/share/julia/stdlib/v1.12/SparseArrays/src/sparsevector.jl:1285
[14] hvcat(::Tuple{Int64, Int64}, ::CuArray{Float32, 1, CUDA.DeviceMemory}, ::CuArray{Float32, 1, CUDA.DeviceMemory}, ::Vararg{CuArray{Float32, 1, CUDA.DeviceMemory}})
@ SparseArrays ~/.julia/juliaup/julia-1.12.3+0.x64.linux.gnu/share/julia/stdlib/v1.12/SparseArrays/src/sparsevector.jl:1289
[15] top-level scope
@ REPL[3]:1
Trying to concatenate multiple arrays using square bracket syntax errors on 1.12. After descending with Cthulhu.jl and comparing with Julia master, I'm seeing it may be related to JuliaLang/julia#39729
MWE
Julia v1.11.7:
Julia v1.12.3: