JuliaArrays / UnsafeArrays.jl

Stack-allocated pointer-based array views
Other
42 stars 5 forks source link

New ambiguities in upcoming Julia version #20

Open KristofferC opened 1 week ago

KristofferC commented 1 week ago

https://s3.amazonaws.com/julialang-reports/nanosoldier/pkgeval/by_hash/cf4f1ba_vs_edb3c92/UnsafeArrays.primary.log

Base.mightalias: Error During Test at /home/pkgeval/.julia/packages/UnsafeArrays/4H6Ug/test/uview.jl:150
  Test threw exception
  Expression: false == #= /home/pkgeval/.julia/packages/UnsafeArrays/4H6Ug/test/uview.jl:150 =# @inferred(Base.mightalias(view(B, :, 2:5), view(A, 2:5, :)))
  MethodError: mightalias(::SubArray{Int32, 2, Matrix{Int32}, Tuple{Base.Slice{Base.OneTo{Int64}}, UnitRange{Int64}}, true}, ::SubArray{Int32, 2, UnsafeArray{Int32, 2}, Tuple{UnitRange{Int64}, Base.Slice{Base.OneTo{Int64}}}, false}) is ambiguous.

  Candidates:
    mightalias(A::SubArray, B::SubArray)
      @ Base multidimensional.jl:1047
    mightalias(A::AbstractArray, B::SubArray{T, N, <:UnsafeArray}) where {T, N}
      @ UnsafeArrays ~/.julia/packages/UnsafeArrays/4H6Ug/src/uview.jl:173

  Possible fix, define
    mightalias(::SubArray, ::SubArray{T, N, <:UnsafeArray}) where {T, N}

  Stacktrace:
   [1] macro expansion
     @ /opt/julia/share/julia/stdlib/v1.11/Test/src/Test.jl:676 [inlined]
   [2] macro expansion
     @ ~/.julia/packages/UnsafeArrays/4H6Ug/test/uview.jl:150 [inlined]
   [3] macro expansion
     @ /opt/julia/share/julia/stdlib/v1.11/Test/src/Test.jl:1700 [inlined]
   [4] macro expansion
     @ ~/.julia/packages/UnsafeArrays/4H6Ug/test/uview.jl:119 [inlined]
   [5] macro expansion
     @ /opt/julia/share/julia/stdlib/v1.11/Test/src/Test.jl:1700 [inlined]
   [6] top-level scope
     @ ~/.julia/packages/UnsafeArrays/4H6Ug/test/uview.jl:10
Base.mightalias: Error During Test at /home/pkgeval/.julia/packages/UnsafeArrays/4H6Ug/test/uview.jl:159
  Test threw exception
  Expression: false == #= /home/pkgeval/.julia/packages/UnsafeArrays/4H6Ug/test/uview.jl:159 =# @inferred(Base.mightalias(view(A, 2:5, :), view(C, 2:5)))
  MethodError: mightalias(::SubArray{Int32, 2, UnsafeArray{Int32, 2}, Tuple{UnitRange{Int64}, Base.Slice{Base.OneTo{Int64}}}, false}, ::SubArray{String, 1, Vector{String}, Tuple{UnitRange{Int64}}, true}) is ambiguous.

  Candidates:
    mightalias(A::SubArray, B::SubArray)
      @ Base multidimensional.jl:1047
    mightalias(A::SubArray{T, N, <:UnsafeArray}, B::AbstractArray) where {T, N}
      @ UnsafeArrays ~/.julia/packages/UnsafeArrays/4H6Ug/src/uview.jl:164

  Possible fix, define
    mightalias(::SubArray{T, N, <:UnsafeArray}, ::SubArray) where {T, N}

  Stacktrace:
   [1] macro expansion
     @ /opt/julia/share/julia/stdlib/v1.11/Test/src/Test.jl:676 [inlined]
   [2] macro expansion
     @ ~/.julia/packages/UnsafeArrays/4H6Ug/test/uview.jl:159 [inlined]
   [3] macro expansion
     @ /opt/julia/share/julia/stdlib/v1.11/Test/src/Test.jl:1700 [inlined]
   [4] macro expansion
     @ ~/.julia/packages/UnsafeArrays/4H6Ug/test/uview.jl:119 [inlined]
   [5] macro expansion
     @ /opt/julia/share/julia/stdlib/v1.11/Test/src/Test.jl:1700 [inlined]
   [6] top-level scope
     @ ~/.julia/packages/UnsafeArrays/4H6Ug/test/uview.jl:10
oschulz commented 1 week ago

Thanks for the heads-up @KristofferC !