Skip to content
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

strange method definition overwritten WARNING in tests #409

Open
vtjnash opened this issue Jul 12, 2023 · 3 comments
Open

strange method definition overwritten WARNING in tests #409

vtjnash opened this issue Jul 12, 2023 · 3 comments

Comments

@vtjnash
Copy link
Contributor

vtjnash commented Jul 12, 2023

WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Tuple{Integer, Integer}) in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:2664 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{T, Ti} where Ti<:Integer, Integer, Integer) where {T} in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:2666 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Any, Integer, Integer) in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:3112 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Tv, Ti) where {Tv, Ti<:Integer} in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:393 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Any, Integer) where {Tv, Ti<:Integer} in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:411 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseArray{Tv, Ti, 1} where Ti where Tv, Integer) in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:945 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Tuple{Integer, Integer}) in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:2664.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{T, Ti} where Ti<:Integer, Integer, Integer) where {T} in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:2666.
WARNING: Method definition setindex!(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Any, Integer, Integer) in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:3112.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Tv, Ti) where {Tv, Ti<:Integer} in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:393.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Any, Integer) where {Tv, Ti<:Integer} in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:411.
WARNING: Method definition getindex(SparseArrays.AbstractSparseArray{Tv, Ti, 1} where Ti where Tv, Integer) in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:945.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Tuple{Integer, Integer}) in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:2664 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{T, Ti} where Ti<:Integer, Integer, Integer) where {T} in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:2666 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Any, Integer, Integer) in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:3112 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Tv, Ti) where {Tv, Ti<:Integer} in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:393 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Any, Integer) where {Tv, Ti<:Integer} in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:411 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseArray{Tv, Ti, 1} where Ti where Tv, Integer) in module SparseArrays at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:945 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Tuple{Integer, Integer}) in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:2664.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{T, Ti} where Ti<:Integer, Integer, Integer) where {T} in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:2666.
WARNING: Method definition setindex!(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Any, Integer, Integer) in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsematrix.jl:3112.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Tv, Ti) where {Tv, Ti<:Integer} in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:393.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Any, Integer) where {Tv, Ti<:Integer} in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:411.
WARNING: Method definition getindex(SparseArrays.AbstractSparseArray{Tv, Ti, 1} where Ti where Tv, Integer) in module SparseArrays overwritten at /home/runner/work/SparseArrays.jl/SparseArrays.jl/src/sparsevector.jl:945.
@KristofferC
Copy link
Member

My guess is that this has something to do with the (in my opinion) non ideal implementation of disabling getindex.

@rayegun
Copy link
Member

rayegun commented Jul 12, 2023

It does. I wonder if you know of a better way? IIRC it was based on how CUDA does it

@SobhanMP
Copy link
Member

I think there are two other ways to do it, add a global Ref{Bool} can_index state that is checked by those functions, or store it as part of the matrix/type of the matrix.

From a performance perspective, the current implementation is the safest and most compatible; small benchmarks do not convince me that the global state does not hurt performance. And at the end of the day, this is just for debugging, not something anyone should use in production.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants