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

Swap GenericSVD for GenericLinearAlgebra? #1346

Closed
mopg opened this issue Feb 11, 2021 · 2 comments
Closed

Swap GenericSVD for GenericLinearAlgebra? #1346

mopg opened this issue Feb 11, 2021 · 2 comments

Comments

@mopg
Copy link

mopg commented Feb 11, 2021

I have recently started experiencing the following errors in my packages

WARNING: Method definition lmul!(LinearAlgebra.Givens{T}, Nothing) where {T} in module GenericLinearAlgebra at /root/.julia/packages/GenericLinearAlgebra/JoKjw/src/svd.jl:5 overwritten in module GenericSVD at /root/.julia/packages/GenericSVD/cT5Cu/src/utils.jl:28.
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition rmul!(Nothing, LinearAlgebra.Givens{T}) where {T} in module GenericLinearAlgebra at /root/.julia/packages/GenericLinearAlgebra/JoKjw/src/svd.jl:6 overwritten in module GenericSVD at /root/.julia/packages/GenericSVD/cT5Cu/src/utils.jl:34.
  ** incremental compilation may be fatally broken for this module **

WARNING: Method definition reflectorApply!(Union{DenseArray{T, 2}, Base.ReinterpretArray{T, 2, S, A} where S where A<:Union{Base.SubArray{T, N, A, I, true} where I<:Union{Tuple{Vararg{Real, N} where N}, Tuple{Base.AbstractUnitRange{T} where T, Vararg{Any, N} where N}} where A<:(DenseArray{T, N} where N where T) where N where T, DenseArray{T, N} where N where T}, Base.ReshapedArray{T, 2, A, MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64}, N} where N} where A<:Union{Base.ReinterpretArray{T, N, S, A} where S where A<:Union{Base.SubArray{T, N, A, I, true} where I<:Union{Tuple{Vararg{Real, N} where N}, Tuple{Base.AbstractUnitRange{T} where T, Vararg{Any, N} where N}} where A<:(DenseArray{T, N} where N where T) where N where T, DenseArray{T, N} where N where T} where N where T, Base.SubArray{T, N, A, I, true} where I<:Union{Tuple{Vararg{Real, N} where N}, Tuple{Base.AbstractUnitRange{T} where T, Vararg{Any, N} where N}} where A<:(DenseArray{T, N} where N where T) where N where T, DenseArray{T, N} where N where T}, Base.SubArray{T, 2, A, I, L} where L where I<:Tuple{Vararg{Union{Int64, Base.AbstractRange{Int64}, Base.AbstractCartesianIndex{N} where N, Base.ReshapedArray{T, N, A, Tuple{}} where A<:(Base.AbstractUnitRange{T} where T) where N where T}, N} where N} where A<:Union{Base.ReinterpretArray{T, N, S, A} where S where A<:Union{Base.SubArray{T, N, A, I, true} where I<:Union{Tuple{Vararg{Real, N} where N}, Tuple{Base.AbstractUnitRange{T} where T, Vararg{Any, N} where N}} where A<:(DenseArray{T, N} where N where T) where N where T, DenseArray{T, N} where N where T} where N where T, Base.ReshapedArray{T, N, A, MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64}, N} where N} where A<:Union{Base.ReinterpretArray{T, N, S, A} where S where A<:Union{Base.SubArray{T, N, A, I, true} where I<:Union{Tuple{Vararg{Real, N} where N}, Tuple{Base.AbstractUnitRange{T} where T, Vararg{Any, N} where N}} where A<:(DenseArray{T, N} where N where T) where N where T, DenseArray{T, N} where N where T} where N where T, Base.SubArray{T, N, A, I, true} where I<:Union{Tuple{Vararg{Real, N} where N}, Tuple{Base.AbstractUnitRange{T} where T, Vararg{Any, N} where N}} where A<:(DenseArray{T, N} where N where T) where N where T, DenseArray{T, N} where N where T} where N where T, DenseArray{T, N} where N where T}} where T, AbstractArray{T, 1} where T, Number) in module GenericLinearAlgebra at /root/.julia/packages/GenericLinearAlgebra/JoKjw/src/qr.jl:17 overwritten in module GenericSVD at /root/.julia/packages/GenericSVD/cT5Cu/src/utils.jl:4.
  ** incremental compilation may be fatally broken for this module **

GenericSVD and GenericLinearAlgebra both do some type piracy on lmul!, rmul! and reflectorApply!. In my case, OrdinaryDiffEq is the only package that uses GenericSVD, while everything else uses GenericLinearAlgebra. It is my understanding that GenericSVD was written only because GenericLinearAlgebra did not have SVD capability. Now that it has, it seems like only GenericLinearAlgebra should be used? I might be horrible misrepresenting the situation here, if so, my apologies.

Note that there is a PR out for fixing these problems between GenericSVD and GenericLinearAlgebra, but that doesn't seem to be going anywhere.

Would it be possible to swap to using GenericLinearAlgebra, or would that result in other problems? If so, I could do a PR for that.

@YingboMa
Copy link
Member

Could you make a PR and add a test for this?

@simonbyrne
Copy link

Since #1356, this is probably no longer an issue?

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