Precompiling error with DifferentialEquations

Hello,

I am very new to Julia and I’ve been struggling with a problem since DifferentialEquations got updated. My code was working but now several dependencies that I need will not precompile, and my code won’t execute because it does not recognize Tsit5 and other crucial functions. When I try to run the “using” line, I get the following message:

Info: Precompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa] (cache misses: wrong dep version loaded (2), incompatible header (2), dep missing source (2)).

I tried running an older version of the package, then I tried removing and re-downloading the package, and then I tried deleting and re-downloading an updated version of Julia and running the newer version with the most up-to-date package and nothing works. I am launching Julia into Jupyter notebooks with Anaconda Navigator, and running a Julia 1.11.4 kernel, as well as using v7.16.1 of DifferentialEquations.

Any advice would be greatly appreciated!

Thanks!

1 Like

How did you install Julia?

I used the download link here: Download Julia

Interesting. It seems like you’re having download issues? Do you have full permissions on this computer?

Hi,

That shouldn’t be a problem, the computer is my personal laptop.

I tried installing everything fresh on my PC (to use a different OS), and I am still having problems with the same 15 dependencies. I downloaded julia from the command line in the website I mentioned, and started running Jupyter Notebook from Anaconda Navigator. I don’t get the errors of the cache misses now, but it just throws a warning: could not import on the same 15 dependencies. More specifically, the errors say that it “failed to precompile” the 15 dependencies, and I also get several warnings that certain functions could not be imported to NonlinearSolve.

Thank you for your reply and I really appreciate any help.

Can you copy paste the error from the REPL?

Here is the error for when I try to precompile the project:
Precompiling project…
✗ NonlinearSolve
✗ NonlinearSolve → NonlinearSolveNLsolveExt
✗ NonlinearSolve → NonlinearSolveBandedMatricesExt
✗ OrdinaryDiffEqNonlinearSolve
✗ StochasticDiffEq
✗ OrdinaryDiffEqFIRK
✗ OrdinaryDiffEqSDIRK
✗ OrdinaryDiffEqPDIRK
✗ OrdinaryDiffEqIMEXMultistep
✗ OrdinaryDiffEqStabilizedIRK
✗ OrdinaryDiffEqBDF
✗ OrdinaryDiffEqDefault
✗ OrdinaryDiffEq
✗ DelayDiffEq
✗ DifferentialEquations
0 dependencies successfully precompiled in 147 seconds. 631 already precompiled.
15 dependencies errored.

and the error for when I try to use the “using DifferentialEquations” line:

[ Info: Precompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]
WARNING: could not import DiffEqBase.AbstractNonlinearTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.AbstractSafeBestNonlinearTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.AbsNormTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.AbsSafeBestTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.AbsSafeTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.AbsTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.NormTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.RelNormTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.RelSafeBestTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.RelSafeTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.RelTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.SimpleNonlinearSolveTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.SteadyStateDiffEqTerminationMode into NonlinearSolve
ERROR: LoadError: UndefVarError: AbstractNonlinearTerminationMode not defined in NonlinearSolve
Stacktrace:
[1] top-level scope
@ C:\Users\Amelia.julia\packages\NonlinearSolve\sBl1H\src\internal\termination.jl:11
[2] include(mod::Module, _path::String)
@ Base .\Base.jl:557
[3] include(x::String)
@ NonlinearSolve C:\Users\Amelia.julia\packages\NonlinearSolve\sBl1H\src\NonlinearSolve.jl:1
[4] top-level scope
@ C:\Users\Amelia.julia\packages\NonlinearSolve\sBl1H\src\NonlinearSolve.jl:83
[5] include
@ .\Base.jl:557 [inlined]
[6] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
@ Base .\loading.jl:2881
[7] top-level scope
@ stdin:6
in expression starting at C:\Users\Amelia.julia\packages\NonlinearSolve\sBl1H\src\internal\termination.jl:11
in expression starting at C:\Users\Amelia.julia\packages\NonlinearSolve\sBl1H\src\NonlinearSolve.jl:1
in expression starting at stdin:6
ERROR: LoadError: Failed to precompile NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec] to “C:\Users\Amelia\.julia\compiled\v1.11\NonlinearSolve\jl_41BC.tmp”.
Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)
@ Base .\loading.jl:3174
[3] (::Base.var"#1110#1111"{Base.PkgId})()
@ Base .\loading.jl:2579
[4] mkpidlock(f::Base.var"#1110#1111"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:95
[5] #mkpidlock#6
@ C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:90 [inlined]
[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:116
[7] #invokelatest#2
@ .\essentials.jl:1057 [inlined]
[8] invokelatest
@ .\essentials.jl:1052 [inlined]
[9] maybe_cachefile_lock(f::Base.var"#1110#1111"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
@ Base .\loading.jl:3698
[10] maybe_cachefile_lock
@ .\loading.jl:3695 [inlined]
[11] _require(pkg::Base.PkgId, env::String)
@ Base .\loading.jl:2565
[12] __require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base .\loading.jl:2388
[13] #invoke_in_world#3
@ .\essentials.jl:1089 [inlined]
[14] invoke_in_world
@ .\essentials.jl:1086 [inlined]
[15] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base .\loading.jl:2375
[16] macro expansion
@ .\loading.jl:2314 [inlined]
[17] macro expansion
@ .\lock.jl:273 [inlined]
[18] __require(into::Module, mod::Symbol)
@ Base .\loading.jl:2271
[19] #invoke_in_world#3
@ .\essentials.jl:1089 [inlined]
[20] invoke_in_world
@ .\essentials.jl:1086 [inlined]
[21] require(into::Module, mod::Symbol)
@ Base .\loading.jl:2260
[22] include
@ .\Base.jl:557 [inlined]
[23] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
@ Base .\loading.jl:2881
[24] top-level scope
@ stdin:6
in expression starting at C:\Users\Amelia.julia\packages\OrdinaryDiffEqNonlinearSolve\e4hoO\src\OrdinaryDiffEqNonlinearSolve.jl:1
in expression starting at stdin:6
ERROR: LoadError: Failed to precompile OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8] to “C:\Users\Amelia\.julia\compiled\v1.11\OrdinaryDiffEqNonlinearSolve\jl_3CDA.tmp”.
Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)
@ Base .\loading.jl:3174
[3] (::Base.var"#1110#1111"{Base.PkgId})()
@ Base .\loading.jl:2579
[4] mkpidlock(f::Base.var"#1110#1111"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:95
[5] #mkpidlock#6
@ C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:90 [inlined]
[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:116
[7] #invokelatest#2
@ .\essentials.jl:1057 [inlined]
[8] invokelatest
@ .\essentials.jl:1052 [inlined]
[9] maybe_cachefile_lock(f::Base.var"#1110#1111"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
@ Base .\loading.jl:3698
[10] maybe_cachefile_lock
@ .\loading.jl:3695 [inlined]
[11] _require(pkg::Base.PkgId, env::String)
@ Base .\loading.jl:2565
[12] __require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base .\loading.jl:2388
[13] #invoke_in_world#3
@ .\essentials.jl:1089 [inlined]
[14] invoke_in_world
@ .\essentials.jl:1086 [inlined]
[15] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base .\loading.jl:2375
[16] macro expansion
@ .\loading.jl:2314 [inlined]
[17] macro expansion
@ .\lock.jl:273 [inlined]
[18] __require(into::Module, mod::Symbol)
@ Base .\loading.jl:2271
[19] #invoke_in_world#3
@ .\essentials.jl:1089 [inlined]
[20] invoke_in_world
@ .\essentials.jl:1086 [inlined]
[21] require(into::Module, mod::Symbol)
@ Base .\loading.jl:2260
[22] include
@ .\Base.jl:557 [inlined]
[23] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
@ Base .\loading.jl:2881
[24] top-level scope
@ stdin:6
in expression starting at C:\Users\Amelia.julia\packages\StochasticDiffEq\5eZ6m\src\StochasticDiffEq.jl:1
in expression starting at stdin:6
ERROR: LoadError: Failed to precompile StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0] to “C:\Users\Amelia\.julia\compiled\v1.11\StochasticDiffEq\jl_36BF.tmp”.
Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)
@ Base .\loading.jl:3174
[3] (::Base.var"#1110#1111"{Base.PkgId})()
@ Base .\loading.jl:2579
[4] mkpidlock(f::Base.var"#1110#1111"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:95
[5] #mkpidlock#6
@ C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:90 [inlined]
[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:116
[7] #invokelatest#2
@ .\essentials.jl:1057 [inlined]
[8] invokelatest
@ .\essentials.jl:1052 [inlined]
[9] maybe_cachefile_lock(f::Base.var"#1110#1111"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
@ Base .\loading.jl:3698
[10] maybe_cachefile_lock
@ .\loading.jl:3695 [inlined]
[11] _require(pkg::Base.PkgId, env::String)
@ Base .\loading.jl:2565
[12] __require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base .\loading.jl:2388
[13] #invoke_in_world#3
@ .\essentials.jl:1089 [inlined]
[14] invoke_in_world
@ .\essentials.jl:1086 [inlined]
[15] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base .\loading.jl:2375
[16] macro expansion
@ .\loading.jl:2314 [inlined]
[17] macro expansion
@ .\lock.jl:273 [inlined]
[18] __require(into::Module, mod::Symbol)
@ Base .\loading.jl:2271
[19] #invoke_in_world#3
@ .\essentials.jl:1089 [inlined]
[20] invoke_in_world
@ .\essentials.jl:1086 [inlined]
[21] require(into::Module, mod::Symbol)
@ Base .\loading.jl:2260
[22] include
@ .\Base.jl:557 [inlined]
[23] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
@ Base .\loading.jl:2881
[24] top-level scope
@ stdin:6
in expression starting at C:\Users\Amelia.julia\packages\DifferentialEquations\eQbP8\src\DifferentialEquations.jl:1
in expression starting at stdin:6
Failed to precompile DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa] to “C:\Users\Amelia\.julia\compiled\v1.11\DifferentialEquations\jl_38F3.tmp”.

Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)
@ Base .\loading.jl:3174
[3] (::Base.var"#1110#1111"{Base.PkgId})()
@ Base .\loading.jl:2579
[4] mkpidlock(f::Base.var"#1110#1111"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:95
[5] #mkpidlock#6
@ C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:90 [inlined]
[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:116
[7] #invokelatest#2
@ .\essentials.jl:1057 [inlined]
[8] invokelatest
@ .\essentials.jl:1052 [inlined]
[9] maybe_cachefile_lock(f::Base.var"#1110#1111"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
@ Base .\loading.jl:3698
[10] maybe_cachefile_lock
@ .\loading.jl:3695 [inlined]
[11] _require(pkg::Base.PkgId, env::String)
@ Base .\loading.jl:2565
[12] __require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base .\loading.jl:2388
[13] #invoke_in_world#3
@ .\essentials.jl:1089 [inlined]
[14] invoke_in_world
@ .\essentials.jl:1086 [inlined]
[15] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base .\loading.jl:2375
[16] macro expansion
@ .\loading.jl:2314 [inlined]
[17] macro expansion
@ .\lock.jl:273 [inlined]
[18] __require(into::Module, mod::Symbol)
@ Base .\loading.jl:2271
[19] #invoke_in_world#3
@ .\essentials.jl:1089 [inlined]
[20] invoke_in_world
@ .\essentials.jl:1086 [inlined]
[21] require(into::Module, mod::Symbol)
@ Base .\loading.jl:2260

1 Like

Just to rule out a few things:

  • what is your OS (can you paste the output of the Julia function versioninfo())?
  • does it work if you just start a REPL in the terminal? e.g. open a bash/PowerShell/… window and type juliaand copy-paste the code you are normally executing in Jupyter
  • from within Jupyter, what is the output of DEPOT_PATH and what happens when you rename the folder that is shown (something ending in .../.julia) and restart the kernel? Does it still throw the same errors?

Hi,

  1. the output of versioninfo() is
    Julia Version 1.11.4
    Commit 8561cc3d68 (2025-03-10 11:36 UTC)
    Build Info:
    Official https://julialang.org/ release
    Platform Info:
    OS: Windows (x86_64-w64-mingw32)
    CPU: 12 × AMD Ryzen 5 5500
    WORD_SIZE: 64
    LLVM: libLLVM-16.0.6 (ORCJIT, znver3)
    Threads: 1 default, 0 interactive, 1 GC (on 12 virtual cores).
  2. When I start the REPL in the terminal and try the “using DifferentialEquations” term, I get the same errors.
  3. The following is the output of DEPOT_PATH,
    3-element Vector{String}:
    “C:\Users\Amelia\.julia”
    “C:\Users\Amelia\.julia\juliaup\” ⋯ 17 bytes ⋯ “4.w64.mingw32\local\share\julia”
    “C:\Users\Amelia\.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia”
    I’m not sure if I fully understood your instructions but I don’t think anything changed.

Thank you!

1 Like

Can you share ]st?

Status C:\Users\Amelia\.julia\environments\v1.11\Project.toml
⌃ [13f3f980] CairoMakie v0.12.18
[1130ab10] DiffEqParamEstim v2.2.0
[0c46a032] DifferentialEquations v7.16.1
[af5da776] GlobalSensitivity v2.7.0
[7073ff75] IJulia v1.27.0
⌃ [8913a72c] NonlinearSolve v3.15.1
[7f7a1694] Optimization v4.1.2
[3e6eede4] OptimizationBBO v0.4.0
[36348300] OptimizationOptimJL v0.4.1
[91a5bcdd] Plots v1.40.11
[3fca794e] ProfileLikelihood v0.4.1
[8a4e6c94] QuasiMonteCarlo v0.3.3
[10745b16] Statistics v1.11.1
Info Packages marked with ⌃ have new versions available and may be upgradable.

It looks like your versions are a bit out of sync because of some bounds issues we have to handle, + ProfileLikelihood.jl just not having been updated in a long time. Can you try removing ProfileLilkelihood and the ]up?

Hi,

That worked! Thank you so much, I really appreciate all your help you actually saved me.

I’m very new to Julia but I’m glad to see what a supportive community there is!

Truly, thank you!

2 Likes

I’ve had the very same problem with ArchGDAL.jl… very weird. I had to remove it.

Same exact issue for me with the AbstractNonlinearTerminationMode not defined in NonlinearSolve error! @ChrisRackauckas

Abridged precompilation error

julia> err
> PkgPrecompileError: The following 6 direct dependencies failed to precompile:

Catalyst 

Failed to precompile Catalyst [479239e8-5488-4da2-87a7-35f2df7eef83] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/Catalyst/jl_BDWIHZ".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
 [1] include
...

Failed to precompile CatalystCairoMakieExtension [505083d8-75bf-58f0-848e-17ed6f43954a] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/CatalystCairoMakieExtension/jl_I07CdZ".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
 [1] include
...

ModelingToolkit 

Failed to precompile ModelingToolkit [961ee093-0014-501f-94e3-6117800e7a78] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/ModelingToolkit/jl_Oijq7X".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
 [1] include
...

OrdinaryDiffEq 

Failed to precompile OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/OrdinaryDiffEq/jl_2IYPZX".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
 [1] include
...

DiffEqCallbacks 

Failed to precompile DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/DiffEqCallbacks/jl_vzoWMZ".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
 [1] include
   @ ./Base.jl:495 [inlined]
...

MTKChainRulesCoreExt 

Failed to precompile MTKChainRulesCoreExt [e86d2102-9cb4-5e93-8b67-808f3ccccc73] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/MTKChainRulesCoreExt/jl_8MGzeY".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
...

Project env

pkg> status --outdated -m
Status `/home/jfisch27/Desktop/ThesisStuff/GeometricallyTunableOscillator/Manifest.toml`
⌃ [13f3f980] CairoMakie v0.12.18 (<v0.13.5)
⌃ [479239e8] Catalyst v14.4.1 (<v15.0.6)
⌅ [3da002f7] ColorTypes v0.11.5 (<v0.12.1): ColorVectorSpace, ShaderAbstractions
⌃ [c3611d14] ColorVectorSpace v0.10.0 (<v0.11.0)
⌅ [a80b9123] CommonMark v0.8.16 (<v0.9.1): JuliaFormatter
⌃ [2b5f629d] DiffEqBase v6.168.0 (<v6.173.1)
⌅ [459566f4] DiffEqCallbacks v3.9.1 ⚲ (<v4.5.0): ModelingToolkit
⌅ [a0c0ee7d] DifferentiationInterface v0.6.54 (<v0.7.0): NLSolversBase, NonlinearSolve, OrdinaryDiffEqDifferentiation, OrdinaryDiffEqRosenbrock, SimpleNonlinearSolve
⌅ [6b7a57c9] Expronicon v0.8.5 (<v0.10.14): ModelingToolkit
⌅ [8fc22ac5] FilePaths v0.8.3 (<v0.9.0): Makie
⌅ [f6369f11] ForwardDiff v0.10.38 (<v1.0.1): DiffEqCallbacks, ModelingToolkit, NonlinearSolve, OrdinaryDiffEq, OrdinaryDiffEqDifferentiation, OrdinaryDiffEqNonlinearSolve, OrdinaryDiffEqRosenbrock, SimpleNonlinearSolve
⌅ [d9f16b24] Functors v0.4.12 (<v0.5.2): DiffEqCallbacks
⌃ [e9467ef8] GLMakie v0.10.18 (<v0.11.6)
⌅ [5c1252a2] GeometryBasics v0.4.11 (<v0.5.9): CairoMakie, GLMakie, Makie, MakieCore, MeshIO, ShaderAbstractions
⌅ [98e50ef6] JuliaFormatter v1.0.62 (<v2.1.2): ModelingToolkit
⌅ [ba0b0d4f] Krylov v0.9.10 (<v0.10.1): LinearSolve
⌅ [7ed4a6bd] LinearSolve v2.39.1 (<v3.12.0): NonlinearSolve
⌅ [ee78f7c6] Makie v0.21.18 (<v0.22.5): CairoMakie, GLMakie
⌅ [20f20a25] MakieCore v0.8.12 (<v0.9.3): Makie
⌅ [7269a6da] MeshIO v0.4.13 (<v0.5.3): GLMakie
⌃ [961ee093] ModelingToolkit v9.41.0 ⚲ (<v9.79.0)
⌅ [8913a72c] NonlinearSolve v3.15.1 (<v4.8.0): DiffEqCallbacks, ModelingToolkit
⌃ [bbf590c4] OrdinaryDiffEqCore v1.23.0 (<v1.25.0)
⌅ [aea7be01] PrecompileTools v1.2.1 (<v1.3.2): julia
⌃ [0bca4576] SciMLBase v2.87.0 (<v2.89.1)
⌅ [c0aeaf25] SciMLOperators v0.3.13 (<v0.4.0): DiffEqBase, LinearSolve, NonlinearSolve, OrdinaryDiffEqCore, SciMLBase
⌅ [65257c39] ShaderAbstractions v0.4.1 (<v0.5.0): GLMakie, Makie
⌅ [727e6d20] SimpleNonlinearSolve v1.12.3 (<v2.5.0): ModelingToolkit, NonlinearSolve
⌅ [09ab397b] StructArrays v0.6.21 (<v0.7.1): GeometryBasics, ShaderAbstractions
⌃ [2efcf032] SymbolicIndexingInterface v0.3.37 ⚲ (<v0.3.40)
⌅ [68821587] Arpack_jll v3.5.1+1 (<v3.9.1+2): Arpack
⌃ [83423d85] Cairo_jll v1.18.4+0 (<v1.18.5+0)
⌅ [b22a6f82] FFMPEG_jll v6.1.2+0 (<v7.1.0+0): Makie
⌃ [7746bdde] Glib_jll v2.82.4+0 (<v2.84.0+0)
⌅ [e9f186c6] Libffi_jll v3.2.2+2 (<v3.4.7+0): Glib_jll, HarfBuzz_jll, Wayland_jll
⌅ [30392449] Pixman_jll v0.44.2+0 (<v0.46.0+0): Cairo_jll
⌃ [a2964d1f] Wayland_jll v1.21.0+2 (<v1.23.1+0)
⌅ [02c8fc9c] XML2_jll v2.13.6+1 (<v2.14.1+0): Gettext_jll, Wayland_jll
⌅ [dfaa095f] x265_jll v3.6.0+0 (<v4.1.0+0): FFMPEG_jll

Version Info

julia> versioninfo()
Julia Version 1.10.9
Commit 5595d20a287 (2025-03-10 12:51 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 36 × Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, cascadelake)
Threads: 36 default, 0 interactive, 18 GC (on 36 virtual cores)
Environment:
  LD_LIBRARY_PATH = /tmp/.mount_CursorMleN5b/usr/lib/:/tmp/.mount_CursorMleN5b/usr/lib32/:/tmp/.mount_CursorMleN5b/usr/lib64/:/tmp/.mount_CursorMleN5b/lib/:/tmp/.mount_CursorMleN5b/lib/i386-linux-gnu/:/tmp/.mount_CursorMleN5b/lib/x86_64-linux-gnu/:/tmp/.mount_CursorMleN5b/lib/aarch64-linux-gnu/:/tmp/.mount_CursorMleN5b/lib32/:/tmp/.mount_CursorMleN5b/lib64/:
  JULIA_NUM_THREADS = auto

Share ]st. I’m going to backport a fix to NonlinearSolve.jl v3, but you really want to find out what’s blocking everything there for many reasons.

I have backported NonlinearSolve v3.15.2 which should make the error go away. But… NonlinearSolve v4 came out almost a year ago so I’d recommend finding out what is blocking it and getting the many performance improvements from that.

1 Like

UPDATE

Thanks to Chris’s backport of AbstractNonlinearTerminationMode into NonlinearSolve v3.15.2, just running ] up now pulls in the fix and my project precompiles without error.

(OptimizationFrameworks) pkg> up
    Updating registry at `~/.julia/registries/General.toml`
   Installed gperf_jll ──────────── v3.3.0+0
   Installed SimpleNonlinearSolve ─ v1.12.5
   Installed CondaPkg ───────────── v0.2.29
   Installed NonlinearSolve ─────── v3.15.2
   Installed PythonCall ─────────── v0.9.25
   Installed GPUCompiler ────────── v1.4.1
   Installed Optimization ───────── v4.3.0
   Installed OptimizationOptimJL ── v0.4.3
   Installed Enzyme_jll ─────────── v0.0.179+0
   Installed Enzyme ─────────────── v0.13.43
  Downloaded artifact: Enzyme
  Downloaded artifact: gperf
    Updating `/home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/Project.toml`
  [992eb4ea] ↑ CondaPkg v0.2.28 ⇒ v0.2.29
  [7da242da] ↑ Enzyme v0.13.41 ⇒ v0.13.43
⌅ [8913a72c] ↑ NonlinearSolve v3.15.1 ⇒ v3.15.2
  [7f7a1694] ↑ Optimization v4.2.0 ⇒ v4.3.0
  [36348300] ↑ OptimizationOptimJL v0.4.2 ⇒ v0.4.3
  [6099a3de] ↑ PythonCall v0.9.24 ⇒ v0.9.25
⌃ [0bca4576] ↑ SciMLBase v2.86.2 ⇒ v2.87.0
  [860ef19b] ↑ StableRNGs v1.0.2 ⇒ v1.0.3
    Updating `/home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/Manifest.toml`
  [4fba245c] ↑ ArrayInterface v7.18.0 ⇒ v7.19.0
  [e2ed5e7c] ↑ Bijections v0.1.9 ⇒ v0.1.10
  [992eb4ea] ↑ CondaPkg v0.2.28 ⇒ v0.2.29
  [2b5f629d] ↑ DiffEqBase v6.171.0 ⇒ v6.173.1
⌅ [a0c0ee7d] ↑ DifferentiationInterface v0.6.52 ⇒ v0.6.54
  [31c24e10] ↑ Distributions v0.25.119 ⇒ v0.25.120
  [7da242da] ↑ Enzyme v0.13.41 ⇒ v0.13.43
  [61eb1bfa] ↑ GPUCompiler v1.4.0 ⇒ v1.4.1
⌅ [8913a72c] ↑ NonlinearSolve v3.15.1 ⇒ v3.15.2
  [7f7a1694] ↑ Optimization v4.2.0 ⇒ v4.3.0
  [36348300] ↑ OptimizationOptimJL v0.4.2 ⇒ v0.4.3
  [90014a1f] ↑ PDMats v0.11.34 ⇒ v0.11.35
  [6099a3de] ↑ PythonCall v0.9.24 ⇒ v0.9.25
⌃ [0bca4576] ↑ SciMLBase v2.86.2 ⇒ v2.87.0
  [19f34311] ↑ SciMLJacobianOperators v0.1.3 ⇒ v0.1.5
⌅ [c0aeaf25] ↓ SciMLOperators v0.3.14 ⇒ v0.3.13
⌅ [727e6d20] ↑ SimpleNonlinearSolve v1.12.3 ⇒ v1.12.5
  [860ef19b] ↑ StableRNGs v1.0.2 ⇒ v1.0.3
  [1986cc42] ↑ Unitful v1.22.0 ⇒ v1.22.1
  [7cc45869] ↑ Enzyme_jll v0.0.175+0 ⇒ v0.0.179+0
  [e33a78d0] ↑ Hwloc_jll v2.12.0+0 ⇒ v2.12.1+0
  [1a1c6b14] ↑ gperf_jll v3.1.1+1 ⇒ v3.3.0+0
  [b53b4c65] ↑ libpng_jll v1.6.47+0 ⇒ v1.6.48+0
        Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
Precompiling packages finished.
  173 dependencies successfully precompiled in 182 seconds. 374 already precompiled.
  1 dependency had output during precompilation:
┌ SciMLBase → SciMLBasePythonCallExt
│      CondaPkg Found dependencies: /home/local/WIN/jfisch27/.julia/packages/PythonCall/L4cjh/CondaPkg.toml
│      CondaPkg Resolving changes
│               ~ libstdcxx-ng
│      CondaPkg Initialising pixi
│               │ /home/local/WIN/jfisch27/.julia/artifacts/cefba4912c2b400756d043a2563ef77a0088866b/bin/pixi
│               │ init
│               │ --format pixi
│               └ /home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/.CondaPkg
│  ✔ Created /home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/.CondaPkg/pixi.toml
│      CondaPkg Wrote /home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/.CondaPkg/pixi.toml
│               │ [dependencies]
│               │ openssl = ">=3, <3.6"
│               │ libstdcxx-ng = ">=3.4,<14.0"
│               │ 
│               │     [dependencies.python]
│               │     channel = "conda-forge"
│               │     build = "*cpython*"
│               │     version = ">=3.8,<4"
│               │ 
│               │ [project]
│               │ name = ".CondaPkg"
│               │ platforms = ["linux-64"]
│               │ channels = ["conda-forge"]
│               │ channel-priority = "strict"
│               └ description = "automatically generated by CondaPkg.jl"
│      CondaPkg Installing packages
│               │ /home/local/WIN/jfisch27/.julia/artifacts/cefba4912c2b400756d043a2563ef77a0088866b/bin/pixi
│               │ install
│               └ --manifest-path /home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/.CondaPkg/pixi.toml
│  ✔ The default environment has been installed.
└  

(OptimizationFrameworks) pkg> 

Original post

Here is all the project info for a separate project (OptimizationFrameworks in SciMLBenchmarks.jl), which produces the exact same precompilation error sequence as posted before, but this project is simpler and without any pinned versions.

(OptimizationFrameworks) pkg> st
Status `/home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/Project.toml`
⌅ [54578032] ADNLPModels v0.7.2
  [6e4b80f9] BenchmarkTools v1.6.0
  [4552ee2b] BlackBoxOptimizationBenchmarking v1.0.0
  [2569d6c7] ConcreteStructs v0.2.3
⌃ [992eb4ea] CondaPkg v0.2.28
  [a93c6f00] DataFrames v1.7.0
⌃ [7da242da] Enzyme v0.13.41
⌅ [f6369f11] ForwardDiff v0.10.38
  [b6b21f68] Ipopt v1.10.3
  [4076af6c] JuMP v1.25.0
⌃ [961ee093] ModelingToolkit v9.32.0
  [f4238b75] NLPModelsIpopt v0.10.4
  [01bcebdf] Nonconvex v2.1.3
  [bf347577] NonconvexIpopt v0.4.3
⌅ [8913a72c] NonlinearSolve v3.15.1
  [429524aa] Optim v1.12.0
  [7f7a1694] Optimization v4.2.0
  [3e6eede4] OptimizationBBO v0.4.1
  [bca83a33] OptimizationBase v2.5.0
  [fd9f6733] OptimizationMOI v0.5.3
  [4e6fcdb7] OptimizationNLopt v0.3.2
⌃ [36348300] OptimizationOptimJL v0.4.2
  [91a5bcdd] Plots v1.40.13
⌅ [c36e90e8] PowerModels v0.19.10
  [08abe8d2] PrettyTables v2.4.0
⌃ [6099a3de] PythonCall v0.9.24
  [37e2e3b7] ReverseDiff v1.16.1
⌃ [0bca4576] SciMLBase v2.86.2
⌃ [47a9eef4] SparseDiffTools v2.23.1
⌃ [860ef19b] StableRNGs v1.0.2
  [2efcf032] SymbolicIndexingInterface v0.3.40
⌅ [0c5d862f] Symbolics v5.36.0
  [76f85450] LibGit2
  [37e2e46d] LinearAlgebra
  [9a3f8284] Random
  [8dfed614] Test
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated`
(OptimizationFrameworks) pkg> status --outdated -m
Status `/home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/Manifest.toml`
⌅ [54578032] ADNLPModels v0.7.2 (<v0.8.12) [compat]
⌅ [c29ec348] AbstractDifferentiation v0.4.4 (<v0.6.2): NonconvexUtils
⌃ [4fba245c] ArrayInterface v7.18.0 (<v7.19.0)
⌃ [e2ed5e7c] Bijections v0.1.9 (<v0.1.10)
⌅ [ffa27691] ColPack v0.3.0 (<v0.5.0): ADNLPModels
⌅ [a80b9123] CommonMark v0.8.16 (<v0.9.1): JuliaFormatter
⌃ [992eb4ea] CondaPkg v0.2.28 (<v0.2.29)
⌅ [187b0558] ConstructionBase v1.5.6 (<v1.5.8): SymbolicUtils
⌃ [2b5f629d] DiffEqBase v6.171.0 (<v6.173.1)
⌅ [459566f4] DiffEqCallbacks v3.9.1 (<v4.5.0): ModelingToolkit
⌅ [a0c0ee7d] DifferentiationInterface v0.6.52 (<v0.7.0): NLSolversBase, NonlinearSolve, OptimizationBase, SciMLJacobianOperators, SimpleNonlinearSolve
⌃ [31c24e10] Distributions v0.25.119 (<v0.25.120)
⌅ [7c1d4256] DynamicPolynomials v0.5.7 (<v0.6.1): SymbolicUtils, Symbolics
⌅ [06fc5a27] DynamicQuantities v0.13.2 (<v1.8.0): ModelingToolkit
⌃ [7da242da] Enzyme v0.13.41 (<v0.13.43)
⌅ [6b7a57c9] Expronicon v0.8.5 (<v0.10.14): ModelingToolkit
⌅ [f6369f11] ForwardDiff v0.10.38 (<v1.0.1): ADNLPModels, DiffEqCallbacks, ModelingToolkit, NonconvexCore, NonconvexUtils, NonlinearSolve, SimpleNonlinearSolve, SparseDiffTools, Symbolics
⌅ [d9f16b24] Functors v0.4.12 (<v0.5.2): DiffEqCallbacks
⌃ [61eb1bfa] GPUCompiler v1.4.0 (<v1.4.1)
⌅ [d1acc4aa] IntervalArithmetic v0.20.9 (<v0.22.34): NonconvexCore
⌅ [98e50ef6] JuliaFormatter v1.0.62 (<v2.1.2): ModelingToolkit
⌅ [ba0b0d4f] Krylov v0.9.10 (<v0.10.1): LinearSolve
⌅ [984bce1d] LambertW v0.4.6 (<v1.0.0): Symbolics
⌅ [7ed4a6bd] LinearSolve v2.39.1 (<v3.12.0): NonlinearSolve
⌃ [961ee093] ModelingToolkit v9.32.0 (<v9.79.0)
⌅ [8913a72c] NonlinearSolve v3.15.1 (<v4.8.0): DiffEqCallbacks, ModelingToolkit
⌃ [36348300] OptimizationOptimJL v0.4.2 (<v0.4.3)
⌃ [90014a1f] PDMats v0.11.34 (<v0.11.35)
⌅ [c36e90e8] PowerModels v0.19.10 (<v0.21.3) [compat]
⌅ [aea7be01] PrecompileTools v1.2.1 (<v1.3.2): julia
⌃ [6099a3de] PythonCall v0.9.24 (<v0.9.25)
⌃ [0bca4576] SciMLBase v2.86.2 (<v2.89.1)
⌃ [19f34311] SciMLJacobianOperators v0.1.3 (<v0.1.5)
⌅ [c0aeaf25] SciMLOperators v0.3.14 (<v0.4.0): DiffEqBase, LinearSolve, NonlinearSolve, SciMLBase, SciMLJacobianOperators, SparseDiffTools
⌅ [727e6d20] SimpleNonlinearSolve v1.12.3 (<v2.5.0): ModelingToolkit, NonlinearSolve
⌃ [47a9eef4] SparseDiffTools v2.23.1 (<v2.26.0)
⌃ [860ef19b] StableRNGs v1.0.2 (<v1.0.3)
⌃ [19f23fe9] SymbolicLimits v0.2.1 (<v0.2.2)
⌅ [d1185830] SymbolicUtils v2.1.3 (<v3.27.0): ModelingToolkit, SymbolicLimits, Symbolics
⌅ [0c5d862f] Symbolics v5.36.0 (<v6.39.1): ModelingToolkit, NonconvexUtils
⌅ [8ea1fca8] TermInterface v0.4.1 (<v2.0.0): SymbolicUtils, Symbolics
⌃ [1986cc42] Unitful v1.22.0 (<v1.22.1)
⌅ [e88e6eb3] Zygote v0.6.77 (<v0.7.7): NonconvexCore, NonconvexIpopt, NonconvexUtils
⌃ [83423d85] Cairo_jll v1.18.4+0 (<v1.18.5+0)
⌅ [f218ff0c] ColPack_jll v0.3.0+0 (<v0.4.3+0): ColPack
⌅ [7cc45869] Enzyme_jll v0.0.175+0 (<v0.0.179+0): Enzyme
⌅ [b22a6f82] FFMPEG_jll v4.4.4+1 (<v7.1.0+0): FFMPEG
⌃ [7746bdde] Glib_jll v2.82.4+0 (<v2.84.0+0)
⌃ [e33a78d0] Hwloc_jll v2.12.0+0 (<v2.12.1+0)
⌅ [e9f186c6] Libffi_jll v3.2.2+2 (<v3.4.7+0): Glib_jll, HarfBuzz_jll, Wayland_jll
⌅ [d7ed1dd3] MUMPS_seq_jll v500.700.301+0 (<v500.800.0+0): Ipopt_jll
⌅ [656ef2d0] OpenBLAS32_jll v0.3.24+0 (<v0.3.29+0): julia
⌅ [30392449] Pixman_jll v0.44.2+0 (<v0.46.0+0): Cairo_jll
⌅ [c0090381] Qt6Base_jll v6.7.1+1 (<v6.8.2+1): GR_jll, Qt6Declarative_jll, Qt6ShaderTools_jll, Qt6Wayland_jll
⌅ [629bc702] Qt6Declarative_jll v6.7.1+2 (<v6.8.2+1): Qt6Wayland_jll
⌅ [ce943373] Qt6ShaderTools_jll v6.7.1+1 (<v6.8.2+1): Qt6Declarative_jll
⌃ [e99dba38] Qt6Wayland_jll v6.7.1+1 (<v6.8.2+0)
⌅ [319450e9] SPRAL_jll v2024.5.8+0 (<v2025.1.8+0): Ipopt_jll
⌃ [a2964d1f] Wayland_jll v1.21.0+2 (<v1.23.1+0)
⌅ [02c8fc9c] XML2_jll v2.13.6+1 (<v2.14.1+0): Gettext_jll, Wayland_jll
⌃ [b53b4c65] libpng_jll v1.6.47+0 (<v1.6.48+0)
⌅ [1270edf5] x264_jll v2021.5.5+0 (<v10164.0.1+0): FFMPEG_jll
⌅ [dfaa095f] x265_jll v3.5.0+0 (<v4.1.0+0): FFMPEG_jll
julia> versioninfo()
Julia Version 1.10.9
Commit 5595d20a287 (2025-03-10 12:51 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 36 × Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, cascadelake)
Threads: 36 default, 0 interactive, 18 GC (on 36 virtual cores)
Environment:
  LD_LIBRARY_PATH = /tmp/.mount_CursorMleN5b/usr/lib/:/tmp/.mount_CursorMleN5b/usr/lib32/:/tmp/.mount_CursorMleN5b/usr/lib64/:/tmp/.mount_CursorMleN5b/lib/:/tmp/.mount_CursorMleN5b/lib/i386-linux-gnu/:/tmp/.mount_CursorMleN5b/lib/x86_64-linux-gnu/:/tmp/.mount_CursorMleN5b/lib/aarch64-linux-gnu/:/tmp/.mount_CursorMleN5b/lib32/:/tmp/.mount_CursorMleN5b/lib64/:
  JULIA_NUM_THREADS = auto

Yup that’s the patch. Still, getting to latest versions would be good, but that should get things unblocked.

2 Likes

Thank you Chris! But yes, I’ll try to see what the actual block is on my machine