Skip to content

default solvers are broken on 0.6 #148

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
mlubin opened this issue Jan 7, 2017 · 2 comments
Closed

default solvers are broken on 0.6 #148

mlubin opened this issue Jan 7, 2017 · 2 comments

Comments

@mlubin
Copy link
Member

mlubin commented Jan 7, 2017

Default solvers no longer work in Julia 0.6 following JuliaLang/julia#17057. My guess is that we'll have to redefine how we want to handle default solvers from scratch.

$ julia6 runtests.jl 
WARNING: @test_approx_eq is deprecated, use `@test r / abs(r) ≈ -1.0` instead
Stacktrace:
 [1] depwarn(::String, ::Symbol) at ./deprecated.jl:64
 [2] @test_approx_eq(::ANY, ::ANY) at ./test.jl:1022
 [3] include_from_node1(::String) at ./loading.jl:532
 [4] include(::String) at ./sysimg.jl:14
 [5] include_from_node1(::String) at ./loading.jl:532
 [6] include(::String) at ./sysimg.jl:14
 [7] process_options(::Base.JLOptions) at ./client.jl:308
 [8] _start() at ./client.jl:374
while loading /home/mlubin/.julia/v0.6/MathProgBase/test/linprog.jl, in expression starting on line 4
Testing linprog and subfunctions with solver MathProgBase.DefaultLPSolver
ERROR: LoadError: MethodError: no method matching loadproblem!(::Clp.ClpMathProgSolverInterface.ClpMathProgModel, ::Array{Int64,2}, ::Array{Int64,1}, ::Array{Float64,1}, ::Array{Int64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Symbol)
The applicable method may be too new: running in world age 20553, while current world is 20555.
Closest candidates are:
  loadproblem!(::Clp.ClpMathProgSolverInterface.ClpMathProgModel, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any) at /home/mlubin/.julia/v0.6/Clp/src/ClpSolverInterface.jl:105 (method too new to be called from this world context.)
  loadproblem!(!Matched::MathProgBase.SolverInterface.ConicToLPQPBridge, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any) at /home/mlubin/.julia/v0.6/MathProgBase/src/SolverInterface/conic_to_lpqp.jl:29
  loadproblem!(!Matched::MathProgBase.SolverInterface.NonlinearToLPQPBridge, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any) at /home/mlubin/.julia/v0.6/MathProgBase/src/SolverInterface/nonlinear_to_lpqp.jl:35
  ...
Stacktrace:
 [1] buildlp(::Array{Int64,1}, ::Array{Int64,2}, ::Char, ::Float64, ::Int64, ::Float64, ::MathProgBase.DefaultLPSolver) at /home/mlubin/.julia/v0.6/MathProgBase/src/HighLevelInterface/linprog.jl:60
 [2] #linprogtest#1(::Float64, ::Float64, ::Function, ::MathProgBase.DefaultLPSolver) at /home/mlubin/.julia/v0.6/MathProgBase/test/linprog.jl:12
 [3] linprogtest() at /home/mlubin/.julia/v0.6/MathProgBase/test/linprog.jl:5
 [4] include_from_node1(::String) at ./loading.jl:532
 [5] include(::String) at ./sysimg.jl:14
 [6] process_options(::Base.JLOptions) at ./client.jl:308
 [7] _start() at ./client.jl:374
while loading /home/mlubin/.julia/v0.6/MathProgBase/test/runtests.jl, in expression starting on line 4
@blegat
Copy link
Member

blegat commented Jan 7, 2017

I am not sure to understand exactly what is causing the error. I understand what JuliaLang/julia#17057 is about but why is it complaining on loadproblem! ? Is it because buildlp is defined before loadproblem! ? In that case, the issue is not related to the default mechanism.

@mlubin
Copy link
Member Author

mlubin commented Jan 8, 2017

linprogtest(ClpSolver()) passes, while linprogtest() does not. We do some sketchy things in handling the default solver like loading the Clp package at runtime, so it's not surprising that this would break.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants