diff --git a/lib/OptimizationBase/Project.toml b/lib/OptimizationBase/Project.toml index c44acbca3..55775dfae 100644 --- a/lib/OptimizationBase/Project.toml +++ b/lib/OptimizationBase/Project.toml @@ -1,7 +1,7 @@ name = "OptimizationBase" uuid = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" authors = ["Vaibhav Dixit and contributors"] -version = "3.2.0" +version = "3.3.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" diff --git a/lib/OptimizationBase/src/OptimizationBase.jl b/lib/OptimizationBase/src/OptimizationBase.jl index ae615a056..4849f74ae 100644 --- a/lib/OptimizationBase/src/OptimizationBase.jl +++ b/lib/OptimizationBase/src/OptimizationBase.jl @@ -15,10 +15,9 @@ import SciMLBase: solve, init, solve!, __init, __solve, requireshessian, requiresconsjac, requiresconshess -@static if isdefined(SciMLBase, :supports_opt_cache_interface) - import SciMLBase: supports_opt_cache_interface -else - supports_opt_cache_interface(alg) = false +supports_opt_cache_interface(alg) = false +@static if !hasmethod(SciMLBase.__solve, Tuple{OptimizationProblem, SciMLBase.AbstractOptimizationAlgorithm}) + include("solve.jl") end export ObjSense, MaxSense, MinSense @@ -40,7 +39,6 @@ Base.length(::NullData) = 0 include("adtypes.jl") include("symify.jl") include("cache.jl") -include("solve.jl") include("OptimizationDIExt.jl") include("OptimizationDISparseExt.jl") include("function.jl") diff --git a/lib/OptimizationBase/src/solve.jl b/lib/OptimizationBase/src/solve.jl index 47f66cb25..273c32e38 100644 --- a/lib/OptimizationBase/src/solve.jl +++ b/lib/OptimizationBase/src/solve.jl @@ -92,7 +92,7 @@ from NLopt for an example. The common local optimizer arguments are: """ function solve(prob::SciMLBase.OptimizationProblem, alg, args...; kwargs...)::SciMLBase.AbstractOptimizationSolution - if supports_opt_cache_interface(alg) + if SciMLBase.supports_opt_cache_interface(alg) solve!(init(prob, alg, args...; kwargs...)) else if prob.u0 !== nothing && !isconcretetype(eltype(prob.u0))