JuliaArrays / ArrayInterface.jl

Designs for new Base array interface primitives, used widely through scientific machine learning (SciML) and other organizations
https://docs.sciml.ai/ArrayInterface/stable/
MIT License
134 stars 37 forks source link

Move `SparseArrays` and `SuiteSparse` into extensions #447

Closed avik-pal closed 3 months ago

avik-pal commented 3 months ago

Since they are no longer included by default in Julia it leads to an unnecessary increase in load times:

julia> @time_imports using ArrayInterface
               ┌ 1.3 ms SuiteSparse_jll.__init__() 
    156.1 ms  SuiteSparse_jll 96.90% compilation time (20% recompilation)
               ┌ 10.8 ms SparseArrays.CHOLMOD.__init__() 94.87% compilation time
    169.6 ms  SparseArrays 6.05% compilation time
      0.4 ms  SuiteSparse
      1.5 ms  ArrayInterface
      0.3 ms  Statistics → SparseArraysExt
julia> versioninfo()
Julia Version 1.11.0-rc1
Commit 3a35aec36d1 (2024-06-25 10:23 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 12 × AMD Ryzen 5 4600H with Radeon Graphics
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, znver2)
Threads: 12 default, 0 interactive, 6 GC (on 12 virtual cores)
Environment:
  JULIA_EDITOR = vim