After updating my package KiteModels.jl I get the following warning:
┌ Warning: Circular dependency detected.
│ Precompilation will be skipped for dependencies in this cycle:
│ ┌ LinearSolve → LinearSolveSparseArraysExt
│ └─ LinearSolve → LinearSolveRecursiveArrayToolsExt
│ Precompilation will also be skipped for the following, which depend on the above cycle:
│ NonlinearSolveFirstOrder
│ NonlinearSolve
│ NonlinearSolveQuasiNewton → NonlinearSolveQuasiNewtonForwardDiffExt
│ NonlinearSolveQuasiNewton
│ NonlinearSolve → NonlinearSolveNLsolveExt
│ ModelingToolkit
│ LinearSolve → LinearSolveEnzymeExt
│ OrdinaryDiffEqDifferentiation
│ OrdinaryDiffEqNonlinearSolve
│ OrdinaryDiffEqSDIRK
│ OrdinaryDiffEqBDF
│ NonlinearSolve → NonlinearSolveSundialsExt
│ NonlinearSolveBase → NonlinearSolveBaseLinearSolveExt
│ KiteModels
│ ModelingToolkit → MTKChainRulesCoreExt
└ @ Pkg.API.Precompilation ~/.julia/juliaup/julia-1.10.8+0.x64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/precompilation.jl:584
Any idea?
Benny
February 11, 2025, 3:57pm
2
There’s an issue
Circular dependency on 1.10 · Issue #573 · SciML/LinearSolve.jl
I don’t know how to read that cycle warning, not sure if it’s even legit. Maybe someone can help explain. I did check that there’s a RecursiveArrayToolsSparseArraysExt.jl , and SparseArrays is weirdly a full dependency of LinearSolve, not among [weakdeps]
.
1 Like
I added
LinearSolve = "=2.39.0"
to my Project.toml
file, now pre-compilation works again. But it is annoying that these errors pop up out of nothing.
Benny
February 11, 2025, 4:36pm
4
The 3.0.0 release added a few extensions, including LinearSolveSparseArraysExt
. What I’m wondering is why the circular dependency didn’t stop the release, does it not trigger on 1.11?
It’s Krylov.jl being an issue with Make SparseArrays an extension package by ChrisRackauckas · Pull Request #955 · JuliaSmoothOptimizers/Krylov.jl · GitHub . We also might need to do something with LazyArrays.jl. I can put a hack in to make this not trigger and remove it when the dependencies are cleaned.
Wait the hack is already there…