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

Clarify Cholmod version incompatibility message at build time and run time #542

Open
orenbenkiki opened this issue Jun 19, 2024 · 8 comments

Comments

@orenbenkiki
Copy link

Creating a brand-new conda environment and doing conda install python, conda install R, and conda install julia.

This installed Python 3.12.4, R 4.3.3, and Julia 1.10.4:

julia> versioninfo()
Julia Version 1.10.4
Commit 48d4fd4843 (2024-06-04 10:41 UTC)
Build Info:
  https://github.com/conda-forge/julia-feedstock

    Note: This is an unofficial build, please report bugs to the project
    responsible for this build and not to the Julia project unless you can
    reproduce the issue using official builds available at https://julialang.org/downloads

Platform Info:
  OS: Linux (x86_64-conda-linux-gnu)
  CPU: 56 × Intel(R) Xeon(R) CPU E5-2660 v4 @ 2.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, broadwell)
Threads: 1 default, 0 interactive, 1 GC (on 56 virtual cores)
Environment:
  LD_LIBRARY_PATH = /opt/rh/gcc-toolset-13/root/usr/lib64:/opt/rh/gcc-toolset-13/root/usr/lib
  JULIA_CONDAPKG_EXE_BACKUP = 
  JULIA_DEPOT_PATH = /home/obk/anaconda3/envs/jupyter/share/julia:
  JULIA_CONDAPKG_EXE = /home/obk/anaconda3/bin/conda
  JULIA_PROJECT_BACKUP = 
  JULIA_LOAD_PATH = @:@jupyter:@stdlib
  JULIA_CONDAPKG_BACKEND_BACKUP = 
  JULIA_CONDAPKG_BACKEND = System
  JULIA_SSL_CA_ROOTS_PATH_BACKUP = 
  JULIA_LOAD_PATH_BACKUP = 
  JULIA_SSL_CA_ROOTS_PATH = /home/obk/anaconda3/envs/jupyter/ssl/cacert.pem
  JULIA_DEPOT_PATH_BACKUP = 
  JULIA_PROJECT = @jupyter

Then installing some Julia packages, I get the error:

│  ┌ Warning: CHOLMOD version incompatibility
│  │ 
│  │ Julia was compiled with CHOLMOD version 4.0.4. It is
│  │ currently linked with version 5.2.1.
│  │ This might cause Julia to terminate when working with
│  │ sparse matrix factorizations, e.g. solving systems of
│  │ equations with \.
│  │ 
│  │ It is recommended that you use Julia with the same major
│  │ version of CHOLMOD as the one used during the build, or
│  │ download the generic binaries from www.julialang.org,
│  │ which ship with the correct versions of all dependencies.
│  └ @ SparseArrays.CHOLMOD /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/src/solvers/cholmod.jl:206

This is similar to #359 but the versions numbers are different. Seems like this is an issue whenever CHOLMOD releases a new version?

Running pkg> test SparseArrays passes all tests, so it seems just a matter of disabling the warning?

     Testing SparseArrays
      Status `/tmp/jl_eDY9hG/Project.toml`
  [4c88cf16] Aqua v0.8.7
  [ade2ca70] Dates
  [b77e0a4c] InteractiveUtils
  [8f399da3] Libdl
  [37e2e46d] LinearAlgebra
  [44cfe95a] Pkg v1.10.0
  [de0858da] Printf
  [9a3f8284] Random
  [9e88b42a] Serialization
  [2f01184e] SparseArrays v1.10.0
  [8dfed614] Test
  [bea87d4a] SuiteSparse_jll v7.2.1+1
      Status `/tmp/jl_eDY9hG/Manifest.toml`
  [4c88cf16] Aqua v0.8.7
  [34da2185] Compat v4.15.0
  [0dad84c5] ArgTools v1.1.1
  [56f22d72] Artifacts
  [2a0f44e3] Base64
  [ade2ca70] Dates
  [f43a241f] Downloads v1.6.0
  [7b1f6079] FileWatching
  [b77e0a4c] InteractiveUtils
  [b27032c2] LibCURL v0.6.4
  [76f85450] LibGit2
  [8f399da3] Libdl
  [37e2e46d] LinearAlgebra
  [56ddb016] Logging
  [d6f4376e] Markdown
  [ca575930] NetworkOptions v1.2.0
  [44cfe95a] Pkg v1.10.0
  [de0858da] Printf
  [3fa0cd96] REPL
  [9a3f8284] Random
  [ea8e919c] SHA v0.7.0
  [9e88b42a] Serialization
  [6462fe0b] Sockets
  [2f01184e] SparseArrays v1.10.0
  [fa267f1f] TOML v1.0.3
  [a4e569a6] Tar v1.10.0
  [8dfed614] Test
  [cf7118a7] UUIDs
  [4ec0a83e] Unicode
  [e66e0078] CompilerSupportLibraries_jll v1.1.1+0
  [deac9b47] LibCURL_jll v8.4.0+0
  [e37daf67] LibGit2_jll v1.6.4+0
  [29816b5a] LibSSH2_jll v1.11.0+1
  [c8ffd9c3] MbedTLS_jll v2.28.2+1
  [14a3606d] MozillaCACerts_jll v2023.1.10
  [4536629a] OpenBLAS_jll v0.3.23+4
  [bea87d4a] SuiteSparse_jll v7.2.1+1
  [83775a58] Zlib_jll v1.2.13+1
  [8e850b90] libblastrampoline_jll v5.8.0+1
  [8e850ede] nghttp2_jll v1.52.0+1
  [3f19e933] p7zip_jll v17.4.0+2
Precompiling project...
  4 dependencies successfully precompiled in 4 seconds. 4 already precompiled.
     Testing Running tests...
┌ Warning: CHOLMOD version incompatibility
│ 
│ Julia was compiled with CHOLMOD version 4.0.4. It is
│ currently linked with version 5.2.1.
│ This might cause Julia to terminate when working with
│ sparse matrix factorizations, e.g. solving systems of
│ equations with \.
│ 
│ It is recommended that you use Julia with the same major
│ version of CHOLMOD as the one used during the build, or
│ download the generic binaries from www.julialang.org,
│ which ship with the correct versions of all dependencies.
└ @ SparseArrays.CHOLMOD /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/src/solvers/cholmod.jl:206
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Tuple{Integer, Integer}) in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:2673 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{T, Ti} where Ti<:Integer, Integer, Integer) where {T} in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:2675 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Any, Integer, Integer) in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:3121 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Tv, Ti) where {Tv, Ti<:Integer} in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:392 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Any, Integer) where {Tv, Ti<:Integer} in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:410 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseArray{Tv, Ti, 1} where Ti where Tv, Integer) in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:944 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Tuple{Integer, Integer}) in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:2673.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{T, Ti} where Ti<:Integer, Integer, Integer) where {T} in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:2675.
WARNING: Method definition setindex!(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Any, Integer, Integer) in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:3121.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Tv, Ti) where {Tv, Ti<:Integer} in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:392.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Any, Integer) where {Tv, Ti<:Integer} in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:410.
WARNING: Method definition getindex(SparseArrays.AbstractSparseArray{Tv, Ti, 1} where Ti where Tv, Integer) in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:944.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Tuple{Integer, Integer}) in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:2673 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{T, Ti} where Ti<:Integer, Integer, Integer) where {T} in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:2675 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Any, Integer, Integer) in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:3121 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Tv, Ti) where {Tv, Ti<:Integer} in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:392 overwritten.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Any, Integer) where {Tv, Ti<:Integer} in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:410 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseArray{Tv, Ti, 1} where Ti where Tv, Integer) in module SparseArrays at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:944 overwritten.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Tuple{Integer, Integer}) in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:2673.
WARNING: Method definition getindex(SparseArrays.AbstractSparseMatrixCSC{T, Ti} where Ti<:Integer, Integer, Integer) where {T} in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:2675.
WARNING: Method definition setindex!(SparseArrays.AbstractSparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Any, Integer, Integer) in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:3121.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Tv, Ti) where {Tv, Ti<:Integer} in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:392.
WARNING: Method definition setindex!(SparseArrays.AbstractCompressedVector{Tv, Ti}, Any, Integer) where {Tv, Ti<:Integer} in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:410.
WARNING: Method definition getindex(SparseArrays.AbstractSparseArray{Tv, Ti, 1} where Ti where Tv, Integer) in module SparseArrays overwritten at /home/conda/feedstock_root/build_artifacts/julia_1718579682237/work/usr/share/julia/stdlib/v1.10/SparseArrays/src/sparsevector.jl:944.
Test Summary: | Pass  Total  Time
allowscalar   |    9      9  0.6s
Test Summary:                                                  | Pass  Total  Time
based on deps/SuiteSparse-4.0.2/CHOLMOD/Demo/ index type Int32 |   22     22  2.3s
Test Summary:          | Pass  Total  Time
lp_afiro example Int32 |    2      2  0.4s
Test Summary:    | Pass  Total  Time
Issue 9160 Int32 |    5      5  2.1s
Test Summary:                             | Pass  Total  Time
Check inputs to Sparse. Related to #20024 |    2      2  0.2s
Test Summary:                             | Pass  Total  Time
Check inputs to Sparse. Related to #20024 |    2      2  0.0s
Test Summary:                             | Pass  Total  Time
Check inputs to Sparse. Related to #20024 |    2      2  0.0s
Test Summary:                             | Pass  Total  Time
Check inputs to Sparse. Related to #20024 |    2      2  0.0s
Test Summary:                                                 | Pass  Total  Time
illegal dtype (for now but should be supported at some point) |    1      1  0.0s
Test Summary: | Pass  Total  Time
illegal dtype |    1      1  0.0s
Test Summary: | Pass  Total  Time
illegal xtype |    1      1  0.0s
Test Summary:   | Pass  Total  Time
illegal itype I |    1      1  0.0s
Test Summary:    | Pass  Total  Time
illegal itype II |    1      1  0.0s
Test Summary:    | Pass  Total  Time
test free! Int32 |    1      1  0.0s
Test Summary:                          | Pass  Total  Time
Check common is still in default state |    6      6  0.0s
Test Summary:                                                  | Pass  Total  Time
based on deps/SuiteSparse-4.0.2/CHOLMOD/Demo/ index type Int64 |   22     22  0.8s
Test Summary:          | Pass  Total  Time
lp_afiro example Int64 |    2      2  0.1s
Test Summary:    | Pass  Total  Time
Issue 9160 Int64 |    5      5  1.4s
Test Summary:                             | Pass  Total  Time
Check inputs to Sparse. Related to #20024 |    2      2  0.0s
Test Summary:                             | Pass  Total  Time
Check inputs to Sparse. Related to #20024 |    2      2  0.0s
Test Summary:                             | Pass  Total  Time
Check inputs to Sparse. Related to #20024 |    2      2  0.0s
Test Summary:                             | Pass  Total  Time
Check inputs to Sparse. Related to #20024 |    2      2  0.0s
Test Summary:                                                 | Pass  Total  Time
illegal dtype (for now but should be supported at some point) |    1      1  0.0s
Test Summary: | Pass  Total  Time
illegal dtype |    1      1  0.0s
Test Summary: | Pass  Total  Time
illegal xtype |    1      1  0.0s
Test Summary:   | Pass  Total  Time
illegal itype I |    1      1  0.0s
Test Summary:    | Pass  Total  Time
illegal itype II |    1      1  0.0s
Test Summary:    | Pass  Total  Time
test free! Int64 |    1      1  0.0s
Test Summary:                          | Pass  Total  Time
Check common is still in default state |    6      6  0.0s
Test Summary: | Pass  Total  Time
Issue #9915   |    1      1  1.2s
Test Summary:                                                                           | Pass  Total  Time
test Sparse constructor Symmetric and Hermitian input (and issymmetric and ishermitian) |    4      4  0.3s
Test Summary:                           | Pass  Total  Time
test Sparse constructor and read_sparse |    3      3  0.8s
Test Summary:        | Pass  Total  Time
High level interface |   10     10  0.3s
Test Summary:        | Pass  Total  Time
High level interface |   10     10  1.0s
Test Summary:       | Pass  Total  Time
Low level interface |    8      8  0.0s
Test Summary:      | Pass  Total  Time
Core functionality |   87     87  7.0s
Test Summary:      | Pass  Total  Time
Core functionality |   64     64  6.9s
Test Summary:   | Pass  Total  Time
extract factors |   87     87  3.1s
Test Summary:                                                           | Pass  Total  Time
Issue 11745 - row and column pointers were not sorted in sparse(Factor) |    1      1  0.0s
Test Summary:                                               | Pass  Total  Time
Issue 11747 - Wrong show method defined for FactorComponent |    4      4  0.0s
Test Summary: | Pass  Total  Time
Issue 14076   |    1      1  0.3s
Test Summary: | Pass  Total  Time
Issue 29367   |    4      4  0.7s
Test Summary: | Pass  Total  Time
Issue 14134   |    9      9  1.5s
Test Summary: | Pass  Total  Time
Issue #28985  |    2      2  0.1s
Test Summary:                                           | Pass  Total  Time
Issue with promotion during conversion to CHOLMOD.Dense |    3      3  0.1s
Test Summary:                       | Pass  Total  Time
Further issue with promotion #14894 |    6      6  0.6s
Test Summary:                         | Pass  Total  Time
test \ for Factor and StridedVecOrMat |    2      2  0.3s
Test Summary:                        | Pass  Total  Time
Test \ for Factor and SparseVecOrMat |    3      3  0.1s
Test Summary:                      | Pass  Total  Time
Real factorization and complex rhs |    8      8  4.3s
Test Summary:                                       | Pass  Total  Time
Make sure that ldlt performs an LDLt (Issue #19032) |    5      5  1.6s
Test Summary:                                                            | Pass  Total  Time
Test that imaginary parts in Hermitian{T,SparseMatrixCSC{T}} are ignored |    2      2  3.5s
Test Summary:            | Pass  Total  Time
\ '\ and transpose(...)\ |   12     12  2.4s
Test Summary:                                                                | Pass  Total  Time
Check that Symmetric{SparseMatrixCSC} can be constructed from CHOLMOD.Sparse |    2      2  0.9s
Test Summary:                                                          | Pass  Total  Time
sparse right multiplication of Symmetric and Hermitian matrices #21431 |    7      7  0.1s
Test Summary:                                          | Pass  Total  Time
Test sparse low rank update for cholesky decomposition |  144    144  4.0s
Test Summary: | Pass  Total  Time
Issue #22335  |    4      4  0.2s
Test Summary:                  | Pass  Total  Time
Non-positive definite matrices |   32     32  0.2s
Test Summary:          | Pass  Total  Time
Issues #27860 & #28363 |   36     36  6.1s
Test Summary: | Pass  Total  Time
Issue #33365  |    6      6  0.0s
Test Summary:        | Pass  Total  Time
permutation handling |    2      2  0.8s
Test Summary:           | Pass  Total  Time
sym indefinite poly alg |    1      1  0.2s
Test Summary: | Pass  Total  Time
ReadOnly      |   13     13  0.2s
Test Summary:                 | Pass  Total  Time
SparseMatrixCSC from readonly |    8      8  0.0s
Test Summary:  | Pass  Total  Time
FixedSparseCSC |   20     20  2.7s
Test Summary:               | Pass  Total  Time
SparseMatrixCSC conversions |    3      3  0.1s
Test Summary:     | Pass  Total  Time
FixedSparseVector |    7      7  0.7s
Test Summary: | Pass  Total  Time
Issue #190    |    4      4  0.9s
Test Summary:                                        | Pass  Total  Time
`getindex`` should return type with same `_is_fixed` |   14     14  0.3s
Test Summary:      | Pass  Total  Time
Test factorization |    4      4  1.0s
Test Summary: | Pass  Total  Time
Test fkeep!   |    4      4  0.1s
Test Summary:                                                               | Pass  Total  Time
map[!] implementation specialized for a single (input) sparse vector/matrix |   37     37  0.0s
Test Summary:                                                                   | Pass  Total  Time
map[!] implementation specialized for a pair of (input) sparse vectors/matrices |   21     21  1.5s
Test Summary:                                                                | Pass  Total  Time
map[!] implementation capable of handling >2 (input) sparse vectors/matrices |   20     20  1.7s
Test Summary:                                                                               | Pass  Total  Time
broadcast! implementation specialized for solely an output sparse vector/matrix (no inputs) |    4      4  0.4s
Test Summary:                                                                  | Pass  Total  Time
broadcast implementation specialized for a single (input) sparse vector/matrix |    3      3  0.5s
Test Summary:                                                                   | Pass  Total  Time
broadcast! implementation specialized for a single (input) sparse vector/matrix |   66     66  2.0s
Test Summary:                                                                        | Pass  Total   Time
broadcast[!] implementation specialized for pairs of (input) sparse vectors/matrices |  741    741  13.8s
Test Summary:                                                                      | Pass  Total   Time
broadcast[!] implementation capable of handling >2 (input) sparse vectors/matrices | 5477   5477  21.6s
Test Summary:                                                                            | Pass  Total  Time
sparse map/broadcast with result eltype not a concrete subtype of Number (#19561/#19589) |    9      9  5.3s
Test Summary:                                                         | Pass  Total     Time
broadcast[!] over combinations of scalars and sparse vectors/matrices |  360    360  1m21.3s
Test Summary:                                                                                             | Pass  Total  Time
broadcast[!] over combinations of scalars, sparse arrays, structured matrices, and dense vectors/matrices |   68     68  9.2s
Test Summary:                                              | Pass  Total  Time
map[!] over combinations of sparse and structured matrices |   80     80  1.1s
Test Summary:                                               | Pass  Total   Time
assorted tests of sparse broadcast over two input arguments |   59     59  10.9s
Test Summary:                            | Pass  Total  Time
sparse vector broadcast of two arguments |  122    122  3.7s
Test Summary:                                 | Pass  Total  Time
aliasing and indexed assignment or broadcast! |   15     15  3.1s
Test Summary:                                     | Pass  Total  Time
1-dimensional 'opt-out' (non) sparse broadcasting |    8      8  1.0s
Test Summary: | Pass  Total  Time
Issue #27836  |    1      1  1.1s
Test Summary: | Pass  Broken  Total  Time
Issue #30118  |    4       1      5  0.5s
Test Summary:                  | Pass  Total  Time
Issue #30120: method ambiguity |    3      3  0.5s
Test Summary:                                               | Pass  Total  Time
Sparse outer product, for type Float64 and vector transpose |    4      4  0.4s
Test Summary:                                                  | Pass  Total  Time
Sparse outer product, for type ComplexF64 and vector transpose |    4      4  0.6s
Test Summary:                                             | Pass  Total  Time
Sparse outer product, for type Float64 and vector adjoint |    4      4  0.3s
Test Summary:                                                | Pass  Total  Time
Sparse outer product, for type ComplexF64 and vector adjoint |    4      4  0.4s
Test Summary:                                       | Pass  Total  Time
issue #31758: out of bounds write in _map_zeropres! |    1      1  0.4s
Test Summary: | Pass  Total  Time
Vec/Mat Style |    8      8  0.0s
Test Summary: | Pass  Total  Time
extrema       |   22     22  4.7s
Test Summary:               | Pass  Total  Time
NaN test for sparse extrema |   24     24  0.5s
Test Summary:                                   | Pass  Total  Time
issue #42670 - error in sparsevec outer product |    1      1  0.2s
Test Summary:                         | Pass  Total  Time
issue #46337 - error in sparsevec map |    2      2  0.6s
WARNING: Method definition getproperty(SparseArrays.SparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Symbol) in module HigherOrderFnsTests at /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/test/forbidproperties.jl:4 overwritten in module SparseIssuesTests on the same line (check for duplicate calls to `include`).
WARNING: Method definition getproperty(SparseArrays.SparseVector{Tv, Ti} where Ti<:Integer where Tv, Symbol) in module HigherOrderFnsTests at /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/test/forbidproperties.jl:5 overwritten in module SparseIssuesTests on the same line (check for duplicate calls to `include`).
Test Summary: | Pass  Total  Time
Issue #15     |    8      8  0.5s
Test Summary: | Pass  Total   Time
Issue #33169  |   10     10  21.7s
Test Summary: | Pass  Total  Time
Issue #30006  |    2      2  0.3s
Test Summary: | Pass  Total  Time
Issue #28963  |    1      1  0.2s
Test Summary: | Pass  Total  Time
Issue #30502  |    2      2  0.1s
Test Summary: | Pass  Total  Time
Issue #5190   |    1      1  0.0s
Test Summary:               | Pass  Total  Time
what used to be issue #5386 |    1      1  0.0s
Test Summary: | Pass  Total  Time
issue #5824   |    1      1  0.2s
Test Summary: | Pass  Total  Time
issue #5985   |    8      8  0.0s
Test Summary:            | Pass  Total  Time
issue #5853, sparse diff |    6      6  1.7s
Test Summary: | Pass  Total  Time
issue #6036   |    9      9  0.0s
Test Summary: | Pass  Total  Time
issue #7507   |    1      1  0.1s
Test Summary: | Pass  Total  Time
issue #7650   |    1      1  0.0s
Test Summary: | Pass  Total  Time
issue #7677   |    1      1  0.0s
Test Summary: | Pass  Total  Time
issue #8225   |    1      1  0.0s
Test Summary: | Pass  Total  Time
issue #8363   |    1      1  0.1s
Test Summary: | Pass  Total  Time
issue #8976   |    2      2  0.3s
Test Summary: | Pass  Total  Time
issue #9525   |    1      1  0.0s
Test Summary: | Pass  Total  Time
issue #9917   |    5      5  0.4s
Test Summary: | Pass  Total  Time
issue #10407  |    2      2  0.0s
Test Summary: | Pass  Total  Time
issue #10411  |    9      9  0.0s
Test Summary:                                                     | Pass  Total  Time
issues #10837 & #32466, sparse constructors from special matrices |   11     11  0.2s
Test Summary:                                                           | Pass  Total  Time
issue #12177, error path if triplet vectors are not all the same length |    2      2  0.0s
Test Summary:                                                 | Pass  Total  Time
issue #12118: sparse matrices are closed under +, -, min, max |    8      8  1.2s
Test Summary: | Pass  Total  Time
issue #13008  |    2      2  0.0s
Test Summary: | Pass  Total  Time
issue #13024  |   17     17  4.7s
Test Summary:                                                            | Pass  Total  Time
issue #13792, use sparse triangular solvers for sparse triangular solves |    4      4  0.2s
Test Summary:                                                                    | Pass  Total  Time
issue described in https://groups.google.com/forum/#!topic/julia-dev/QT7qpIpgOaA |    2      2  0.3s
Test Summary:                      | Pass  Total  Time
issparse for sparse vectors #34253 |    3      3  0.0s
Test Summary: |Time
issue #16073  | None  0.1s
Test Summary: | Pass  Total  Time
issue #14816  |    1      1  0.5s
Test Summary: | Pass  Total  Time
issue #16548  |    1      1  0.0s
Test Summary: | Pass  Total  Time
issue #18705  |    1      1  0.2s
Test Summary: | Pass  Total  Time
issue #19225  |   24     24  3.1s
Test Summary: |Time
issue #19304  | None  1.3s
Test Summary: | Pass  Total  Time
issue #18974  |    1      1  0.1s
Test Summary: | Pass  Total  Time
issue #19503  |    1      1  0.0s
Test Summary: | Pass  Total  Time
issue #14398  |    1      1  0.9s
Test Summary:           | Pass  Total  Time
dropstored issue #20513 |    8      8  0.0s
Test Summary:         | Pass  Total  Time
setindex issue #20657 |    3      3  1.0s
Test Summary:                        | Pass  Total  Time
setindex with vector eltype (#29034) |    3      3  0.3s
Test Summary: | Pass  Total  Time
issue #29644  |    2      2  1.3s
Test Summary:                               | Pass  Total  Time
reverse search direction if step < 0 #21986 |    1      1  0.6s
Test Summary: | Pass  Total  Time
Issue #28369  |   11     11  1.5s
Test Summary: | Pass  Total  Time
Issue #28634  |    1      1  0.1s
Test Summary: | Pass  Total  Time
Issue #28934  |    2      2  0.0s
Test Summary: | Pass  Total  Time
issue #31453  |    3      3  0.9s
Test Summary: | Pass  Total  Time
issue #31453  |    3      3  0.6s
Test Summary: | Pass  Total  Time
issue #31453  |    3      3  0.7s
Test Summary: | Pass  Total  Time
issue #31453  |    3      3  0.7s
Test Summary: | Pass  Total  Time
issue #31453  |    3      3  0.6s
Test Summary: | Pass  Total  Time
issue #31453  |    3      3  0.6s
Test Summary:                               | Pass  Total  Time
Ti cannot store all potential values #31024 |    5      5  0.3s
Test Summary:               | Pass  Total  Time
Typecheck too strict #31435 |   11     11  0.3s
Test Summary:                                                               | Pass  Total  Time
avoid aliasing of fields during constructing SparseMatrixCSC (issue #34630) |    5      5  0.0s
Test Summary:                                                                        | Pass  Total  Time
avoid aliasing of fields during constructing SparseMatrixCSC{Float64} (issue #34630) |    5      5  0.1s
Test Summary:                                                                               | Pass  Total  Time
avoid aliasing of fields during constructing SparseMatrixCSC{Float64, Int16} (issue #34630) |    5      5  0.1s
Test Summary:                  | Pass  Total  Time
Symmetric and Hermitian #35325 |   47     47  3.2s
Test Summary:                                             | Pass  Total  Time
Multiplying with triangular sparse matrices #35609 #35610 |   16     16  2.0s
Test Summary: | Pass  Total  Time
issue #41135  |    8      8  0.6s
Test Summary: | Pass  Total  Time
Issue #29     |    1      1  0.3s
Test Summary:                  | Pass  Total  Time
operations on Integer subtypes |    1      1  0.5s
Test Summary:      | Pass  Total  Time
vec returns a view |    1      1  0.0s
Test Summary:              | Pass  Total  Time
-0.0 (issue #294, pr #296) |    2      2  0.0s
Test Summary:                     | Pass  Total  Time
reinterpret (issue #289, pr #296) |    8      8  0.1s
Test Summary: | Pass  Total  Time
copy!         |    4      4  0.0s
Test Summary:  | Pass  Total  Time
CartesianIndex |    3      3  0.0s
Test Summary:                                                | Pass  Total  Time
Assignment of singleton array to sparse array (julia #43644) |    5      5  1.0s
Test Summary: | Pass  Total  Time
julia #17088  |    6      6  0.2s
Test Summary:          | Pass  Total  Time
mapslices julia #21123 |    1      1  1.6s
Test Summary: | Pass  Total  Time
itr, iterate  |    4      4  0.1s
Test Summary: | Pass  Total  Time
Issue #210    |    3      3  0.0s
Test Summary: | Pass  Total  Time
Issue #334    |    2      2  1.2s
Test Summary: | Pass  Total  Time
Issue #390    |    1      1  0.1s
WARNING: Method definition getproperty(SparseArrays.SparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Symbol) in module SparseIssuesTests at /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/test/forbidproperties.jl:4 overwritten in module SparseLinalgTests on the same line (check for duplicate calls to `include`).
WARNING: Method definition getproperty(SparseArrays.SparseVector{Tv, Ti} where Ti<:Integer where Tv, Symbol) in module SparseIssuesTests at /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/test/forbidproperties.jl:5 overwritten in module SparseLinalgTests on the same line (check for duplicate calls to `include`).
Test Summary: | Pass  Total  Time
circshift     |   80     80  0.0s
Test Summary:      | Pass  Total  Time
wrappers of sparse |   24     24  3.6s
Test Summary:                     | Pass  Total  Time
Sparse promotion in sparse matmul |    6      6  7.6s
Test Summary:                                          | Pass  Total  Time
multiplication of triangular sparse and dense matrices |  112    112  9.4s
Test Summary:            | Pass  Total  Time
sparse transpose adjoint |   12     12  0.5s
Test Summary:                                                         | Pass  Total  Time
forward and backward solving of transpose/adjoint triangular matrices |   20     20  0.6s
Test Summary:                                      | Pass  Total  Time
triangular multiply with identity(UpperTriangular) |    2      2  0.3s
Test Summary:                                      | Pass  Total  Time
triangular multiply with identity(LowerTriangular) |    2      2  0.1s
Test Summary:                                          | Pass  Total  Time
triangular multiply with identity(UnitUpperTriangular) |    2      2  0.1s
Test Summary:                                          | Pass  Total  Time
triangular multiply with identity(UnitLowerTriangular) |    2      2  0.1s
Test Summary:                                     | Pass  Total  Time
triangular multiply with adjoint(UpperTriangular) |    2      2  0.4s
Test Summary:                                     | Pass  Total  Time
triangular multiply with adjoint(LowerTriangular) |    2      2  0.1s
Test Summary:                                         | Pass  Total  Time
triangular multiply with adjoint(UnitUpperTriangular) |    2      2  0.1s
Test Summary:                                         | Pass  Total  Time
triangular multiply with adjoint(UnitLowerTriangular) |    2      2  0.1s
Test Summary:                                       | Pass  Total  Time
triangular multiply with transpose(UpperTriangular) |    2      2  0.3s
Test Summary:                                       | Pass  Total  Time
triangular multiply with transpose(LowerTriangular) |    2      2  0.1s
Test Summary:                                           | Pass  Total  Time
triangular multiply with transpose(UnitUpperTriangular) |    2      2  0.1s
Test Summary:                                           | Pass  Total  Time
triangular multiply with transpose(UnitLowerTriangular) |    2      2  0.1s
Test Summary:                               | Pass  Total  Time
triangular multiply with conjugate matrices |    2      2  0.6s
Test Summary:                               | Pass  Total  Time
triangular multiply with conjugate matrices |    2      2  0.1s
Test Summary:                               | Pass  Total  Time
triangular multiply with conjugate matrices |    2      2  0.1s
Test Summary:                               | Pass  Total  Time
triangular multiply with conjugate matrices |    2      2  0.1s
Test Summary:                               | Pass  Total  Time
triangular multiply with conjugate matrices |    2      2  0.5s
Test Summary:                               | Pass  Total  Time
triangular multiply with conjugate matrices |    2      2  0.1s
Test Summary:                               | Pass  Total  Time
triangular multiply with conjugate matrices |    2      2  0.1s
Test Summary:                               | Pass  Total  Time
triangular multiply with conjugate matrices |    2      2  0.1s
Test Summary:                                   | Pass  Total  Time
triangular solver for identity(UpperTriangular) |    1      1  0.0s
Test Summary:                                   | Pass  Total  Time
triangular solver for identity(LowerTriangular) |    1      1  0.0s
Test Summary:                                       | Pass  Total  Time
triangular solver for identity(UnitUpperTriangular) |    1      1  0.0s
Test Summary:                                       | Pass  Total  Time
triangular solver for identity(UnitLowerTriangular) |    1      1  0.0s
Test Summary:                                  | Pass  Total  Time
triangular solver for adjoint(UpperTriangular) |    1      1  0.0s
Test Summary:                                  | Pass  Total  Time
triangular solver for adjoint(LowerTriangular) |    1      1  0.0s
Test Summary:                                      | Pass  Total  Time
triangular solver for adjoint(UnitUpperTriangular) |    1      1  0.0s
Test Summary:                                      | Pass  Total  Time
triangular solver for adjoint(UnitLowerTriangular) |    1      1  0.0s
Test Summary:                                    | Pass  Total  Time
triangular solver for transpose(UpperTriangular) |    1      1  0.1s
Test Summary:                                    | Pass  Total  Time
triangular solver for transpose(LowerTriangular) |    1      1  0.0s
Test Summary:                                        | Pass  Total  Time
triangular solver for transpose(UnitUpperTriangular) |    1      1  0.0s
Test Summary:                                        | Pass  Total  Time
triangular solver for transpose(UnitLowerTriangular) |    1      1  0.0s
Test Summary:                  | Pass  Total  Time
triangular singular exceptions |    2      2  0.1s
Test Summary:                                | Pass  Total  Time
Symmetric of sparse matrix mul! dense vector |    8      8  1.2s
Test Summary:                                        | Pass  Total  Time
Symmetric of view of sparse matrix mul! dense vector |    8      8  2.8s
Test Summary:  | Pass  Total  Time
UniformScaling |    4      4  0.3s
Test Summary:                         | Pass  Total  Time
unary minus for SparseMatrixCSC{Bool} |    1      1  0.0s
Test Summary:       | Pass  Total  Time
sparse matrix norms |   24     24  1.6s
Test Summary: | Pass  Total  Time
fillstored!   |    1      1  0.0s
Test Summary:         | Pass  Total   Time
Diagonal linear solve |   40     40  14.2s
Test Summary: | Pass  Total  Time
triu/tril     |    9      9  0.1s
Test Summary: | Pass  Total  Time
norm          |    4      4  0.0s
Test Summary:           | Pass  Total  Time
ishermitian/issymmetric |   26     26  0.2s
Test Summary: | Pass  Total  Time
rotations     |   11     11  0.2s
Test Summary: | Pass  Total  Time
istriu/istril |    4      4  0.0s
Test Summary: | Pass  Total  Time
trace         |    2      2  0.0s
Test Summary: | Pass  Total  Time
spdiagm       |   32     32  0.4s
Test Summary: | Pass  Total  Time
diag          |  106    106  0.1s
Test Summary:                             | Pass  Total  Time
scaling with * and mul!, rmul!, and lmul! |   33     33  2.7s
Test Summary: | Pass  Total  Time
conj          |    2      2  0.2s
Test Summary:                                  | Pass  Total  Time
SparseMatrixCSC [c]transpose[!] and permute[!] |   47     47  0.0s
Test Summary:          | Pass  Total  Time
transpose of SubArrays |    2      2  0.3s
Test Summary: | Pass  Total  Time
exp           |    1      1  0.2s
Test Summary:                             | Pass  Total  Time
matrix-vector multiplication (non-square) |    5      5  0.0s
Test Summary:            | Pass  Total  Time
sparse matrix * BitArray |    3      3  3.8s
Test Summary:         | Pass  Total  Time
matrix multiplication |   39     39  0.1s
Test Summary:                                         | Pass  Total   Time
multiplication of sparse matrix and triangular matrix |  720    720  42.5s
Test Summary:     | Pass  Total  Time
kronecker product | 1862   1862  1.0s
Test Summary:                      | Pass  Total  Time
sparse Frobenius dot/inner product |  148    148  3.8s
Test Summary:           | Pass  Total  Time
generalized dot product |   14     14  1.0s
Test Summary:                             | Pass  Total  Time
conversion to special LinearAlgebra types |   10     10  0.7s
Test Summary:                                    | Pass  Total  Time
SparseMatrixCSC construction from UniformScaling |   10     10  0.3s
Test Summary:                                                | Pass  Total  Time
sparse(S::UniformScaling, shape...) convenience constructors |    4      4  0.2s
Test Summary:  | Pass  Total  Time
explicit zeros |    2      2  0.0s
Test Summary:                                          | Pass  Total  Time
complex matrix-vector multiplication and left-division |  335    335  0.2s
Test Summary:      | Pass  Total  Time
sparse matrix cond |   10     10  0.2s
Test Summary:              | Pass  Total  Time
sparse matrix opnormestinv |    6      6  0.0s
Test Summary: | Pass  Total  Time
factorization |   11     11  0.3s
WARNING: Method definition getproperty(SparseArrays.SparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Symbol) in module SparseLinalgTests at /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/test/forbidproperties.jl:4 overwritten in module SparseMatrixConstructorIndexingTests on the same line (check for duplicate calls to `include`).
WARNING: Method definition getproperty(SparseArrays.SparseVector{Tv, Ti} where Ti<:Integer where Tv, Symbol) in module SparseLinalgTests at /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/test/forbidproperties.jl:5 overwritten in module SparseMatrixConstructorIndexingTests on the same line (check for duplicate calls to `include`).
Test Summary:                               | Pass  Total  Time
uniform scaling should not change type #103 |    1      1  0.2s
Test Summary:        | Pass  Total  Time
spzeros de-splatting |    4      4  0.1s
Test Summary:                                            | Pass  Total  Time
conversion to AbstractMatrix/SparseMatrix of same eltype |    6      6  0.1s
Test Summary:              | Pass  Total  Time
sparse matrix construction |   17     17  1.9s
Test Summary:                                   | Pass  Total  Time
spzeros for pattern creation (structural zeros) |   12     12  0.4s
Test Summary:       | Pass  Total   Time
concatenation tests |  563    563  18.6s
Test Summary: | Pass  Total  Time
copyto!       |   48     48  0.1s
Test Summary: | Pass  Total  Time
getindex      |  216    216  3.7s
Test Summary: | Pass  Total  Time
setindex      |  103    103  6.3s
Test Summary: | Pass  Total  Time
dropstored!   |   21     21  1.8s
Test Summary:           | Pass  Total  Time
sparsevec from matrices |    6      6  0.1s
Test Summary:      | Pass  Total   Time
test_getindex_algs |   42     42  52.8s
Test Summary:            | Pass  Total  Time
getindex bounds checking |    4      4  0.0s
Test Summary:                                                              | Pass  Total  Time
test that sparse / sparsevec constructors work for AbstractMatrix subtypes |    4      4  0.1s
Test Summary:                                          | Pass  Total  Time
Sparse construction with empty/1x1 structured matrices |   10     10  0.2s
Test Summary:                          | Pass  Total  Time
avoid allocation for zeros in diagonal |    2      2  0.1s
Test Summary:                              | Pass  Total  Time
error conditions for reshape, and dropdims |    2      2  0.1s
Test Summary: | Pass  Total  Time
float         |    2      2  0.1s
Test Summary: | Pass  Total  Time
complex       |    2      2  0.2s
Test Summary:           | Pass  Total  Time
one(A::SparseMatrixCSC) |    2      2  0.0s
Test Summary: | Pass  Total  Time
sparsevec     |    3      3  0.1s
Test Summary: | Pass  Total  Time
sparse        |    2      2  0.0s
Test Summary: | Pass  Total  Time
droptol       |    2      2  0.1s
Test Summary: | Pass  Total  Time
dropzeros[!]  |   41     41  0.4s
Test Summary:                                                                             | Pass  Total  Time
test created type of sprand{T}(::Type{T}, m::Integer, n::Integer, density::AbstractFloat) |    3      3  0.1s
Test Summary:                   | Pass  Total  Time
sparse and dense concatenations |   18     18  0.1s
Test Summary:                                            | Pass  Total  Time
row indexing a SparseMatrixCSC with non-Int integer type |    1      1  0.4s
Test Summary: | Pass  Total  Time
isstored      |   60     60  0.3s
Test Summary:                                   | Pass  Total  Time
similar should not alias the input sparse array |    2      2  0.2s
Test Summary:                | Pass  Total  Time
similar with type conversion |    6      6  0.1s
Test Summary:               | Pass  Total  Time
similar for SparseMatrixCSC |   44     44  0.3s
Test Summary:                                                 | Pass  Total  Time
similar should preserve underlying storage type and uplo flag |   12     12  0.1s
Test Summary:                                   | Pass  Total  Time
similar should preserve underlying storage type |   16     16  0.1s
Test Summary:                       | Pass  Total  Time
sparse findprev/findnext operations |  167    167  0.4s
Test Summary:       | Pass  Total   Time
nonscalar setindex! |  214    214  34.4s
Test Summary:                          | Pass  Total  Time
generic sparse matrix access functions |   48     48  0.3s
Test Summary: | Pass  Total  Time
sprand        |   10     10  1.1s
Test Summary:                           | Pass  Total  Time
copy a ReshapedArray of SparseMatrixCSC |    1      1  0.1s
Test Summary:       | Pass  Total  Time
SparseMatrixCSCView |    3      3  0.0s
Test Summary:       | Pass  Total  Time
fill! for SubArrays |    2      2  0.1s
Test Summary:        | Pass  Total  Time
swaprows!, swapcols! |    6      6  0.0s
Test Summary:             | Pass  Total  Time
sprandn with type Float64 |    1      1  0.0s
Test Summary:             | Pass  Total  Time
sprandn with type Float32 |    1      1  0.0s
Test Summary:             | Pass  Total  Time
sprandn with type Float16 |    1      1  0.0s
Test Summary:                | Pass  Total  Time
sprandn with type ComplexF64 |    1      1  0.0s
Test Summary:                | Pass  Total  Time
sprandn with type ComplexF32 |    1      1  0.0s
Test Summary:                | Pass  Total  Time
sprandn with type ComplexF16 |    1      1  0.0s
Test Summary:                           | Pass  Total  Time
sprandn with invalid type AbstractFloat |    1      1  0.1s
Test Summary:                     | Pass  Total  Time
sprandn with invalid type Complex |    1      1  0.1s
Test Summary:         | Pass  Total  Time
count specializations |    2      2  0.2s
Test Summary: | Pass  Total  Time
show          |  104    104  3.3s
Test Summary:                         | Pass  Total  Time
issparse for specialized matrix types |   18     18  0.0s
Test Summary: | Pass  Total  Time
equality ==   |   11     11  0.4s
Test Summary: | Pass  Total  Time
expandptr     |    3      3  0.0s
Test Summary:        | Pass  Total  Time
sparse! and spzeros! |  240    240  0.2s
WARNING: Method definition getproperty(SparseArrays.SparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Symbol) in module SparseMatrixConstructorIndexingTests at /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/test/forbidproperties.jl:4 overwritten in module SparseTests on the same line (check for duplicate calls to `include`).
WARNING: Method definition getproperty(SparseArrays.SparseVector{Tv, Ti} where Ti<:Integer where Tv, Symbol) in module SparseMatrixConstructorIndexingTests at /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/test/forbidproperties.jl:5 overwritten in module SparseTests on the same line (check for duplicate calls to `include`).
Test Summary: | Pass  Total  Time
_isnotzero    |    5      5  0.0s
Test Summary: | Pass  Total  Time
issparse      |    3      3  0.0s
Test Summary:                             | Pass  Total  Time
iszero specialization for SparseMatrixCSC |    5      5  0.2s
Test Summary:                            | Pass  Total  Time
isone specialization for SparseMatrixCSC |    5      5  0.1s
Test Summary: | Pass  Total  Time
indtype       |    1      1  0.0s
Test Summary:            | Pass  Total   Time
sparse binary operations |  142    142  11.9s
Test Summary: | Pass  Total  Time
sparse ref    |    3      3  0.0s
Test Summary:     | Pass  Total  Time
sparse assignment |    2      2  0.9s
Test Summary: | Pass  Total  Time
dropdims      |   20     20  0.0s
Test Summary: | Pass  Total   Time
reductions    |  218    218  10.3s
Test Summary: | Pass  Total  Time
findall       |    4      4  0.5s
Test Summary:                                                              | Pass  Total  Time
access to undefined error types that initially allocate elements as #undef |    1      1  0.9s
Test Summary:   | Pass  Total   Time
unary functions |   72     72  10.1s
Test Summary:                    | Pass  Total  Time
argmax, argmin, findmax, findmin |   16     16  0.5s
Test Summary:                   | Pass  Total  Time
findmin/findmax/minimum/maximum |   31     31  0.5s
Test Summary:                          | Pass  Total  Time
findmin/findmax for non-numerical type |    2      2  0.0s
Test Summary:                    | Pass  Total  Time
any/all predicates over dims = 1 |   24     24  3.0s
Test Summary: | Pass  Total  Time
mapreducecols |   63     63  0.8s
Test Summary:            | Pass  Total  Time
oneunit of sparse matrix |    4      4  0.4s
Test Summary:                | Pass  Total  Time
transpose! does not allocate |    1      1  0.0s
Test Summary:                         | Pass  Total  Time
Comparisons to adjoints are efficient |    7      7  0.3s
Test Summary:                         | Pass  Total  Time
Comparisons to adjoints are efficient |    7      7  0.4s
Test Summary:                         |Time
Comparisons to adjoints are efficient | None  0.0s
Test Summary:                         | Pass  Total  Time
Comparisons to adjoints are efficient |    7      7  0.1s
Test Summary:                         | Pass  Total  Time
Comparisons to adjoints are efficient |    7      7  0.1s
Test Summary:                         |Time
Comparisons to adjoints are efficient | None  0.0s
Test Summary:                         |Time
Comparisons to adjoints are efficient | None  0.0s
Test Summary:                         |Time
Comparisons to adjoints are efficient | None  0.0s
Test Summary:                         | Pass  Total  Time
Comparisons to adjoints are efficient |    7      7  0.3s
Test Summary: | Pass  Total  Time
Issue #246    |   18     18  1.7s
WARNING: Method definition getproperty(SparseArrays.SparseMatrixCSC{Tv, Ti} where Ti<:Integer where Tv, Symbol) in module SparseTests at /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/test/forbidproperties.jl:4 overwritten in module SparseVectorTests on the same line (check for duplicate calls to `include`).
WARNING: Method definition getproperty(SparseArrays.SparseVector{Tv, Ti} where Ti<:Integer where Tv, Symbol) in module SparseTests at /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/test/forbidproperties.jl:5 overwritten in module SparseVectorTests on the same line (check for duplicate calls to `include`).
Test Summary:    | Pass  Total  Time
basic properties |   17     17  0.1s
Test Summary: | Pass  Total  Time
isstored      |    8      8  0.0s
Test Summary:             | Pass  Total  Time
conversion to dense Array |    4      4  0.0s
Test Summary: | Pass  Total  Time
show          |    4      4  0.2s
Test Summary:      | Pass  Total  Time
other constructors |   49     49  1.2s
Test Summary: | Pass  Total  Time
getindex      |   28     28  0.0s
Test Summary: | Pass  Total  Time
setindex      |    9      9  0.0s
Test Summary: | Pass  Total  Time
dropstored!   |    4      4  0.0s
Test Summary:      | Pass  Total  Time
findall and findnz |    8      8  0.6s
Test Summary: | Pass  Total  Time
copy[!]       |   43     43  0.1s
Test Summary:     | Pass  Total  Time
vec/float/complex |    9      9  0.2s
Test Summary:   | Pass  Total  Time
Type conversion |   12     12  0.1s
Test Summary:                        | Pass  Total  Time
Conversion from other issparse types |   10     10  1.3s
Test Summary: | Pass  Total  Time
Concatenation |   70     70  2.4s
Test Summary:                              | Pass  Total  Time
sparsemat: combinations with sparse matrix | 1074   1074  0.0s
Test Summary:         | Pass  Total  Time
Arithmetic operations |   31     31  0.6s
Test Summary:                                    | Pass  Total  Time
Zero-preserving math functions: sparse -> sparse |   57     57  1.6s
Test Summary:                                       | Pass  Total  Time
Non-zero-preserving math functions: sparse -> dense |   50     50  2.7s
Test Summary: | Pass  Broken  Total  Time
sum, norm     |   12       4     16  0.4s
Test Summary:                      | Pass  Total  Time
maximum, minimum, findmax, findmin |   76     76  1.1s
Test Summary: | Pass  Total  Time
BLAS Level-1  |   33     33  0.0s
Test Summary: | Pass  Total     Time
BLAS Level-2  | 7574   7574  3m23.9s
Test Summary: | Pass  Total  Time
fkeep!        |    5      5  0.5s
Test Summary:               | Pass  Total  Time
dropzeros[!] with length=10 |   12     12  0.2s
Test Summary:               | Pass  Total  Time
dropzeros[!] with length=20 |   12     12  0.0s
Test Summary:               | Pass  Total  Time
dropzeros[!] with length=30 |   12     12  0.0s
Test Summary:            | Pass  Total  Time
original dropzeros! test |    1      1  0.0s
Test Summary:         | Pass  Total  Time
stored zero semantics |   21     21  0.0s
Test Summary: | Pass  Total  Time
Issue 14013   |    4      4  0.1s
Test Summary: | Pass  Total  Time
Issue 14046   |    2      2  0.0s
Test Summary: | Pass  Total  Time
Issue 14589   |    6      6  1.1s
Test Summary: | Pass  Total  Time
fill!         |   80     80  7.7s
Test Summary:   | Pass  Total  Time
13130 and 16661 |    8      8  0.0s
Test Summary: | Pass  Total  Time
show          |    4      4  0.2s
Test Summary:           | Pass  Total  Time
spzeros with index type |    1      1  0.0s
Test Summary:                                         | Pass  Total  Time
binary operations on sparse vectors with union eltype |  108    108  7.0s
Test Summary:                                                         | Pass  Total  Time
corner cases of broadcast arithmetic operations with scalars (#21515) |    4      4  0.3s
Test Summary:            | Pass  Total  Time
similar for SparseVector |   41     41  0.1s
Test Summary:             | Pass  Total  Time
map preserves index types |    1      1  0.1s
Test Summary:                        | Pass  Total  Time
Fast operations on full column views | 1600   1600  0.8s
Test Summary:          | Pass  Total  Time
SparseVector circshift |   24     24  0.0s
Test Summary:               | Pass  Total  Time
SparseColumnView properties |    2      2  0.0s
Test Summary:                                                            | Pass  Total  Time
avoid aliasing of fields during constructing SparseVector (issue #34630) |    4      4  0.0s
Test Summary:                                                                     | Pass  Total  Time
avoid aliasing of fields during constructing SparseVector{Float64} (issue #34630) |    4      4  0.0s
Test Summary:                                                                            | Pass  Total  Time
avoid aliasing of fields during constructing SparseVector{Float64, Int16} (issue #34630) |    4      4  0.0s
Test Summary:                                                           | Pass  Total  Time
multiplication of Triangular sparse matrices with sparse vectors #35642 |   12     12  0.0s
Test Summary: | Pass  Total   Time
Sparse QR     |  168    168  21.5s
Test Summary:        | Pass  Total  Time
Workspace management |   81     81  1.0s
Test Summary:    | Pass  Total   Time
UMFPACK wrappers |  239    239  30.0s
Test Summary:              | Pass  Total  Time
REPL printing of UmfpackLU |    2      2  0.1s
Test Summary:                        | Pass  Total  Time
UMFPACK's lu with custom permutation |   20     20  0.1s
Test Summary:                               | Pass  Total  Time
changing refinement should resize workspace |    5      5  0.0s
Test Summary:                                    | Pass  Total  Time
copy should keep the numeric/symbolic by default |    2      2  0.0s
┌ Warning: CHOLMOD version incompatibility
│ 
│ Julia was compiled with CHOLMOD version 4.0.4. It is
│ currently linked with version 5.2.1.
│ This might cause Julia to terminate when working with
│ sparse matrix factorizations, e.g. solving systems of
│ equations with \.
│ 
│ It is recommended that you use Julia with the same major
│ version of CHOLMOD as the one used during the build, or
│ download the generic binaries from www.julialang.org,
│ which ship with the correct versions of all dependencies.
└ @ SparseArrays.CHOLMOD /net/mraid14/export/data/users/obk/anaconda3/envs/jupyter/share/julia/stdlib/v1.10/SparseArrays/src/solvers/cholmod.jl:206
Test Summary:              | Pass  Total  Time
threaded SuiteSparse tests |    2      2  5.3s
  threads = 1              |    1      1  0.5s
  threads = 4              |    1      1  4.8s
     Testing SparseArrays tests passed 
@ViralBShah
Copy link
Member

I believe this is because Conda uses their own SuiteSparse to build Julia and the recipe should be updated to at least make it pick the same version Julia is using:

https://github.com/conda-forge/julia-feedstock/blob/500281afd193db6eb49268df931132aaf9b9c749/recipe/build.sh#L50

Cholmod has seen some small breaking changes across minor releases recently, and it would be best to ensure that the correct version is used at build time. Conda is also using their own versions of many other math libraries (BLAS, LAPACK), which could also be potentially problematic depending on exact versions - but Cholmod is particularly sensitive because cholmod structs have changed across releases and they need to match perfectly.

@minrk
Copy link

minrk commented Jun 19, 2024

The conda Julia package version is built with the version that's linked, but I think our patch to use updated suitesparse (currently 7.7) doesn't do enough.

I'm afraid I don't understand how Julia pulls in shared library dependencies well enough, because it appears that CHOLMOD_MAIN_VERSION is hardcoded to 5, even when that's not the version being compiled against according to Julia's build arguments, and then the error message indicates that the constant defined in source is the compile-time version, which is not accurate. In the conda-forge package, Julia 1.10.4 is compiled against suitesparse 7.7 and links the same version. It might be worth clarifying the message because I think it is not true that the compiled version and linked version do not match, and that statement confused me for a while.

Should Julia 1.10.4 built from source only be considered compatible with exactly suitesparse 7.2.1? If so, perhaps it makes sense to check that when USE_SYSTEM_LIBSUITESPARSE=1 is given.

@ViralBShah
Copy link
Member

ViralBShah commented Jun 19, 2024

The Julia and SuiteSparse versions have to match exactly because we parse the header files to autogenerate the struct definitions and thus the version used at build time should match the one at running time. This is where the hardcoding comes from. The file gets regenerated when we update to new SuiteSparse versions.

I see that the warning is confusing. It is not really the compile and run time version, but the version that the header file was auto-generated from that needs to match the run time.

There have been instances in the past when SuiteSparse did not follow semver (although I believe it does now at least at the component library level), which has led us to be strict about the versioning.

@ViralBShah
Copy link
Member

Should Julia 1.10.4 built from source only be considered compatible with exactly suitesparse 7.2.1? If so, perhaps it makes sense to check that when USE_SYSTEM_LIBSUITESPARSE=1 is given.

I think this is a good suggestion and we should do this.

@ViralBShah ViralBShah reopened this Jun 19, 2024
@ViralBShah ViralBShah changed the title Cholmod version incompatibility Clarify Cholmod version incompatibility message at build time and run time Jun 19, 2024
@minrk
Copy link

minrk commented Jun 19, 2024

That makes sense! I think I understand things better and can update the relationship between Julia and suitesparse versions in Conda-forge and can add these checks to our build process, too. I don't know what the 1.11 release plan is, but if it were on suitesparse 7.7 (I think I see it's 7.6 now), that would be super nice because our suitesparse was stuck for a long time so 7.7.0 is the only 7.x we have packaged now. But that's not your problem!

FWIW, the SparseArray tests pass in 1.10.4 against suitesparse 7.7. I don't know how comprehensive they are, though.

@ViralBShah
Copy link
Member

Julia 1.11 went to feature freeze a while ago, and we are getting into release candidates so it may be hard to bump SS. It appears that SS 7.7 should work fine with Julia 1.11 - since Cholmod just has a patch bump.

@KristofferC Would we be comfortable getting SS 7.7 into Julia 1.11?

@minrk
Copy link

minrk commented Jun 20, 2024

On first inspection, it looks like it should work fine with 7.7, so if it's too late for you to bump I think targeting 7.6 should be no trouble for us.

@ViralBShah
Copy link
Member

The PR for upgrading to 7.7 suggests that there is on change and it should work.

#545

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

3 participants