Skip to content

Swap GenericSVD for GenericLinearAlgebra? #1346

Closed
@mopg

Description

@mopg

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions