v3.0.0
LinearSolve v3.0.0
Breaking changes
- RecrusiveFactorization.jl removed as a dependency and turned into an extension. It now must be explicitly loaded (
using RecrusiveFactorization
) in order to be used. It's still a part of the default algorithm but will only be selected if loaded. The reason for this is because this method brings in the LoopVectorization.jl stack and is thus a heavy dependency that can invalidate a large amount of code. This greatly reduces first run and solve times downstream. However, as it is the fastest method for many scenarios, it is still recommended that many users opt-in if they are looking for performance, but we see this makes a better trade-off between default performance and first run times. - FastLapackInterface.jl removed as a dependency and turn into an extension. It's not actually faster so it was unused, so this is a simple dependency reduction.
- SparseArrays.jl removed as a dependency and turned into an extension. This allows for more easily building SciML packages in a GPL-free way (since SuiteSparse is GPL and pulled in through SparseArrays.jl), and also can greatly improve load times. However, in its current form it does not actually make a change because Krylov.jl, a hard dependency, still does
using SparseArrays
, which always triggers the extension. However, that should be solved soon (see JuliaSmoothOptimizers/Krylov.jl#955) in which case SparseArrays will no longer be required.
Merged pull requests:
- Use Aliasing API for alias_A and alias_b (#564) (@jClugstor)
- Make RecursiveFactorization.jl optional (#569) (@ChrisRackauckas)
- Make SparseArrays an extension (#570) (@ChrisRackauckas)
- Make FastLapackInterface.jl an extension as well (#572) (@ChrisRackauckas)