Giter Club home page Giter Club logo

clp.jl's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clp.jl's Issues

Don't query entire solution vector every time

This is really bad for performance, because we copy the entire vector into Julia every call.
https://github.com/JuliaOpt/Clp.jl/blob/a812d4f00b6b4c297220ce375ce477c1e78ff073/src/MOIWrapper.jl#L430-L431

We should use a function like this instead:

function getColSolution(model::ClpModel, column::Int)
    p = Clp.ClpCInterface.@clp_ccall(
        getColSolution, Ptr{Float64}, (Ptr{Cvoid},), model.p
    )
    return unsafe_wrap(Array, p, (Clp.get_num_cols(model),))[column]
end

Default LogLevel is 1 rather than 0 as documented in README

Hello,

Clp.jl's README §Solver options says that the LogLevel is set to zero by default. However, if I run an JuMP optimization such as:

model = Model(Clp.Optimizer)
@variable(model, 0 <= x <= 2)
optimize!(model)

I get this:

Clp3002W Empty problem - 0 rows, 1 columns and 0 elements
Clp0000I Optimal - objective value 0
Clp0032I Optimal objective 0 - 0 iterations time 0.002

and indeed get_optimizer_attribute(model, "LogLevel") returns 1.

Perhaps it's a recent change related to the MPB → MOI transition?

I guess either the README or the default LogLevel should be updated. I didn't find in the source code where LogLevel is set.

best,
Pierre

versions:

  • julia 1.4.0
  • Clp v0.7.1
  • JuMP v0.21.2

Support for Apple M1

I cannot run Clp through JuMP, it crashes when as soon as I start the optimization. Here is a minimal example, where I am trying to minimize c^T x where A x = b and x >=0.

julia> using JuMP, Clp

julia> C =[-2.0,3.0,0.0, 0.0]
4-element Vector{Float64}:
 -2.0
  3.0
  0.0
  0.0

julia> A=[1.0 1.0 1.0 0.0;
       1.0 -1.0 0.0 1.0]
2×4 Matrix{Float64}:
 1.0   1.0  1.0  0.0
 1.0  -1.0  0.0  1.0

julia> b= [4.0,6.0]
2-element Vector{Float64}:
 4.0
 6.0

julia> model = Model(Clp.Optimizer)
A JuMP Model
Feasibility problem with:
Variables: 0
Model mode: AUTOMATIC
CachingOptimizer state: EMPTY_OPTIMIZER
Solver name: Clp

julia> @variable(model,x[1:4]>=0)
4-element Vector{VariableRef}:
 x[1]
 x[2]
 x[3]
 x[4]

julia> @objective(model,Min,C'*x)
-2 x[1] + 3 x[2]

julia> @constraint(model,A*x.==b)
2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.EqualTo{Float64}}, ScalarShape}}:
 x[1] + x[2] + x[3] = 4.0
 x[1] - x[2] + x[4] = 6.0

julia> optimize!(model)
julia(91740,0x100cd8580) malloc: *** error for object 0xe00000000000000: pointer being freed was not allocated
julia(91740,0x100cd8580) malloc: *** set a breakpoint in malloc_error_break to debug

signal (6): Abort trap: 6
in expression starting at REPL[9]:1
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 46636441 (Pool: 46623528; Big: 12913); GC: 37
fish: Job 1, 'julia' terminated by signal SIGABRT (Abort)

New release

Would it be possible to issue a new release to get the latest changes?

v0.0.10 sounds preliminary. Why not release v0.1 ?

Hi,
This package seems to work satisfyingly well. In turn, I am surprised that it is still in version 0.0.10. I find that a versionumber starting in 0.0.* sounds like pre-preliminary release.
Why not release v0.1 now, if not v1.0 ?

installation error

I installed a fresh copy of Xubuntu 14.04 64bit, and then installed Julia 0.2.1. I tried to add Clp by using Pkg.add("Clp"), and obtained the following error messages. What should I do?

julia> Pkg.build("Clp")
INFO: Building Cbc
INFO: Attempting to Create directory /home/chkwon/.julia/v0.2/Cbc/deps/downloads
INFO: Directory /home/chkwon/.julia/v0.2/Cbc/deps/downloads already created
INFO: Downloading file http://www.coin-or.org/download/source/CoinMP/CoinMP-1.7.6.tgz
INFO: Done downloading file http://www.coin-or.org/download/source/CoinMP/CoinMP-1.7.6.tgz
INFO: Attempting to Create directory /home/chkwon/.julia/v0.2/Cbc/deps/src
INFO: Directory /home/chkwon/.julia/v0.2/Cbc/deps/src already created
INFO: Attempting to Create directory /home/chkwon/.julia/v0.2/Cbc/deps
INFO: Directory /home/chkwon/.julia/v0.2/Cbc/deps already created
INFO: Attempting to Create directory /home/chkwon/.julia/v0.2/Cbc/deps/src/CoinMP-1.7.6
INFO: Directory /home/chkwon/.julia/v0.2/Cbc/deps/src/CoinMP-1.7.6 already created
INFO: Changing Directory to /home/chkwon/.julia/v0.2/Cbc/deps/src/CoinMP-1.7.6
patching file CoinMP/src/CoinProblem.c
Reversed (or previously applied) patch detected! Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file CoinMP/src/CoinProblem.c.rej
=================================[ ERROR: Cbc ]=================================

failed process: Process(patch -N -p1, ProcessExited(1)) [1]
at /home/chkwon/.julia/v0.2/Cbc/deps/build.jl:45

================================[ BUILD ERRORS ]================================

WARNING: Cbc had build errors.

  • packages with build errors remain installed in /home/chkwon/.julia/v0.2
  • build a package and all its dependencies with Pkg.build(pkg)
  • build a single package by running its deps/build.jl script

julia>

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

Build issues

There is a bit more generality in

    run(unpack_cmd("$clpname.tgz", "."))

than in

    run(`tar xvzf $clpname.tgz`)

ccall to maximumIterations fails

Calling Clp.maximum_iterations somehow ends up in a ccall error:

import Clp

m = Clp.ClpModel()
Clp.set_maximum_iterations(m, 10)
Clp.maximum_iterations(m)  # throws error

throws

ERROR: ccall: could not find function Clp_maximumIterations in library /mnt/c/Users/mathi/GitHub/Clp.jl/deps/usr/lib/libClp.so
Stacktrace:
 [1] maximum_iterations(::Clp.ClpCInterface.ClpModel) at /mnt/c/Users/mathi/GitHub/Clp.jl/src/ClpCInterface.jl:197
 [2] top-level scope at none:0

The function is defined in Clp's C interface, so I don't know where the problem comes from.

MathOptInterface installation? Is it a problem with JuMP 0.19.2 and Julia version 1.2.0?

julia> using Pkg

(v1.2) pkg> add https://github.com/JuliaOpt/MathOptInterface.jl.git
Updating registry at C:\Users\Puneet Chitkara\.julia\registries\General
Updating git-repo https://github.com/JuliaRegistries/General.git
Cloning git-repo https://github.com/JuliaOpt/MathOptInterface.jl.git
Updating git-repo https://github.com/JuliaOpt/MathOptInterface.jl.git
Updating git-repo https://github.com/JuliaOpt/MathOptInterface.jl.git
Resolving package versions...
ERROR: Unsatisfiable requirements detected for package LinQuadOptInterface [f8899e07]:
LinQuadOptInterface [f8899e07] log:
├─possible versions are: [0.1.0, 0.2.0, 0.3.0-0.3.1, 0.4.0-0.4.3, 0.5.0, 0.6.0] or uninstalled
├─restricted by compatibility requirements with MathOptInterface [b8f27783] to versions: uninstalled
│ └─MathOptInterface [b8f27783] log:
│ ├─possible versions are: 0.9.1 or uninstalled
│ ├─restricted to versions 0.9.0-0.9 by JuMP [4076af6c], leaving only versions 0.9.1
│ │ └─JuMP [4076af6c] log:
│ │ ├─possible versions are: 0.19.2 or uninstalled
│ │ └─JuMP [4076af6c] is fixed to version 0.19.2
│ └─MathOptInterface [b8f27783] is fixed to version 0.9.1
└─restricted by compatibility requirements with Clp [e2554f3b] to versions: 0.6.0 — no versions left
└─Clp [e2554f3b] log:
├─possible versions are: [0.0.5-0.0.10, 0.1.0-0.1.1, 0.2.0-0.2.2, 0.3.0-0.3.1, 0.4.0, 0.5.0-0.5.1, 0.6.0-0.6.2] or uninstalled
└─restricted to versions 0.6.2 by an explicit requirement, leaving only versions 0.6.2

Numerical differences between versions 0.7.0 and 0.8.4

When we moved from Clp 0.7.0 to Clp 0.8.4, I had to completely rewrite my interface to Clp.
Before I was using a very simple

using MathProgBase
using Clp
solution = linprog(obj, a, '=', rhs, lb, ub, ClpSolver(MaximumIterations = maxiter, MaximumSeconds = maxtime))

Now I use

using JuMP
using Clp
model = Model(Clp.Optimizer);
@variable(model, lb[i] <= x[i=1:length(lb)] <= ub[i]);
@objective(model, Min, obj'x);
# Depending on the `sense` vector, you may need to split it into `<=` and `>=` constraints too
@constraint(model, a * x .== rhs);
JuMP.set_optimizer_attribute(model, "LogLevel", 0)
JuMP.set_optimizer_attribute(model, "MaximumIterations", maxiter)
optimize!(model);

I don't mind the extra work of setting up the model.
I write that once and done.
What I do mind is that I am getting different results.
In most cases it is just numerical fuzz, but at times the differences are more noticeable.
Sometimes the objective value is better, and sometimes worse.

My questions are the following:

Has the underlying COIN code changed?

If not, are there some hidden settings that have changed, which causes the underlying C-library to calculate differently?

I am happy to provide examples of both numerical fuzz and substantial differences.
I can be reached at [email protected].

Any insight you can give me will be highly appreciated.

Quadratic objectives

It looks like Clp support for quadratic objectives is available here. Any reason why this isn't exposed at the MathProgBase level?

cc @mlubin

VariableConstraints

The following four fields:
https://github.com/jump-dev/MathOptInterface.jl/blob/a1d3ed961176f65ec9f74afad455ecedbb1ce8d3/src/Utilities/model.jl#L993-L1001
are quite independent from the rest and constitute a representation of SingleVariable constraints.
Many MOI wrapper reimplement that part with the VariableInfo struct. Instead of copy-pasting this VariableInfo struct implementation in all these wrappers, we could create a ModelLike in MOI.Utilities containing these 4 fields, replace these four fields by this struct in GenericModel, and use this struct as well in all wrappers.
This will greatly simplify many wrappers and ensure that their behavior with SingleVariable constraint is consistent with GenericModel and as fast as GenericModel by design.

Segfault when solving large problem with barrier

Don't know whether this happens because of Julia or whether it's a Clp internal bug.
I am getting segmentation faults when trying to solve large-ish LPs with Clp's barrier algorithm.

The instance in the example below is neos3 from Hans Mittelmann's benchmark and can be download here.

MWE:

import Clp

clp = Clp.ClpCInterface.ClpModel()
options = Clp.ClpCInterface.ClpSolve()
Clp.ClpCInterface.set_solve_type(options, 4)  # barrier, no crossover

Clp.ClpCInterface.read_mps(clp, "neos3.mps")

Clp.ClpCInterface.initial_solve_with_options(clp, options)

and the output:

Coin0001I At line 1 NAME          neos3
Coin0001I At line 2 ROWS
Coin0001I At line 512213 COLUMNS
Coin0001I At line 1283910 RHS
Coin0001I At line 1283912 ENDATA
Coin0002I Problem neos3 has 512209 rows, 6624 columns and 1542816 elements
Clp0027I Model was imported from dat/plato/neos3.mps in 0.515625 seconds
Coin0506I Presolve 512209 (0) rows, 6624 (0) columns and 1542816 (0) elements
2.0729e+08 elements in sparse Cholesky, flop count 3.4653e+16

signal (11): Segmentation fault
in expression starting at REPL[6]:1
_ZN15ClpCholeskyBase9factorizeEPKdPi at /home/mtanneau/.julia/artifacts/6698bf93c2ab2c997ca5a4d58f84329c113b2990/lib/libClp.so.1 (unknown line)
_ZN21ClpPredictorCorrector14createSolutionEv at /home/mtanneau/.julia/artifacts/6698bf93c2ab2c997ca5a4d58f84329c113b2990/lib/libClp.so.1 (unknown line)
_ZN21ClpPredictorCorrector5solveEv at /home/mtanneau/.julia/artifacts/6698bf93c2ab2c997ca5a4d58f84329c113b2990/lib/libClp.so.1 (unknown line)
_ZN10ClpSimplex12initialSolveER8ClpSolve at /home/mtanneau/.julia/artifacts/6698bf93c2ab2c997ca5a4d58f84329c113b2990/lib/libClp.so.1 (unknown line)
initial_solve_with_options at /home/mtanneau/.julia/packages/Clp/ULSlO/src/ClpCInterface.jl:200
unknown function (ip: 0x7f8adc1068a3)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2158 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2322
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1692 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:369
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:458
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:409 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:817
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:911
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:814
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:764
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:843
eval at ./boot.jl:331
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2144 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2322
eval_user_input at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:86
macro expansion at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/REPL/src/REPL.jl:118 [inlined]
#26 at ./task.jl:358
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2144 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2322
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1692 [inlined]
start_task at /buildworker/worker/package_linux64/build/src/task.c:687
unknown function (ip: (nil))
Allocations: 16523660 (Pool: 16518949; Big: 4711); GC: 12
Segmentation fault (core dumped)

Finally, system info:

Julia Version 1.4.0
Commit b8e9a9ecc6 (2020-03-21 16:36 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)

and Clp versions (from Manifest):

[[Clp]]
deps = ["BinaryProvider", "Clp_jll", "Libdl", "LinearAlgebra", "MathOptInterface", "MathProgBase", "SparseArrays"]
git-tree-sha1 = "dfaabbde22abbdf30a8d35f1ff49db174faa4901"
repo-rev = "master"
repo-url = "https://github.com/JuliaOpt/Clp.jl.git"
uuid = "e2554f3b-3117-50c0-817c-e040a3ddf72d"
version = "0.7.1"

[[Clp_jll]]
deps = ["CoinUtils_jll", "CompilerSupportLibraries_jll", "Libdl", "OpenBLAS32_jll", "Osi_jll", "Pkg"]
git-tree-sha1 = "7fec44e2cf907d339d2bcc2f1dffe611401e5560"
uuid = "06985876-5285-5a41-9fcb-8948a742cc53"
version = "1.17.6+4"

Update to LQOI 0.6

Without this update, we can't grab the latest Cbc.jl (tagged) and Gurobi.jl (#master) due to conflicts:

(jtestenv) pkg> st
    Status `~/jtestenv/Project.toml`
  [9961bab8] Cbc v0.4.3
  [e2554f3b] Clp v0.6.0
  [2e9cd046] Gurobi v0.5.7

(jtestenv) pkg> add [email protected]
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package LinQuadOptInterface [f8899e07]:
 LinQuadOptInterface [f8899e07] log:
 ├─possible versions are: [0.1.0, 0.2.0, 0.3.0-0.3.1, 0.4.0-0.4.3, 0.5.0, 0.6.0] or uninstalled
 ├─restricted by julia compatibility requirements to versions: [0.3.0-0.3.1, 0.4.0-0.4.3, 0.5.0, 0.6.0] or uninstalled
 ├─restricted by compatibility requirements with Clp [e2554f3b] to versions: 0.4.0-0.4.3
 │ └─Clp [e2554f3b] log:
 │   ├─possible versions are: [0.0.5-0.0.10, 0.1.0-0.1.1, 0.2.0-0.2.2, 0.3.0-0.3.1, 0.4.0, 0.5.0-0.5.1, 0.6.0] or uninstalled
 │   └─restricted to versions 0.6.0 by an explicit requirement, leaving only versions 0.6.0
 └─restricted by compatibility requirements with MathOptInterface [b8f27783] to versions: 0.6.0 or uninstalled — no versions left
   └─MathOptInterface [b8f27783] log:
     ├─possible versions are: [0.1.0, 0.2.0, 0.3.0, 0.4.0-0.4.1, 0.5.0-0.5.1, 0.6.0-0.6.4, 0.7.0, 0.8.0] or uninstalled
     ├─restricted by julia compatibility requirements to versions: [0.5.0-0.5.1, 0.6.0-0.6.4, 0.7.0, 0.8.0] or uninstalled
     └─restricted by compatibility requirements with Cbc [9961bab8] to versions: 0.8.0
       └─Cbc [9961bab8] log:
         ├─possible versions are: [0.0.5-0.0.8, 0.1.0-0.1.8, 0.2.0-0.2.5, 0.3.0-0.3.2, 0.4.0-0.4.4, 0.5.0] or uninstalled
         └─restricted to versions 0.5.0 by an explicit requirement, leaving only versions 0.5.0

error with an infeasible diet problem

using JuMP, Clp, LinearAlgebra
solver = Clp.Optimizer

# Nutrition guidelines
numCategories = 4
categories = ["calories", "protein", "fat", "sodium"]
minNutrition = [1800, 91, 0, 0]
maxNutrition = [2200, Inf, 65, 1779]

# Foods
numFoods = 9
foods = ["hamburger", "chicken", "hot dog", "fries",
                 "macaroni", "pizza", "salad", "milk", "ice cream"]
cost = [2.49, 2.89, 1.50, 1.89, 2.09, 1.99, 2.49, 0.89, 1.59]
nutritionValues = [410 24 26 730;
                   420 32 10 1190;
                   560 20 32 1800;
                   380  4 19 270;
                   320 12 10 930;
                   320 15 12 820;
                   320 31 12 1230;
                   100  8 2.5 125;
                   330  8 10 180]

# Build model
m = Model(with_optimizer(solver))

# Variables for nutrition info
@variable(m, minNutrition[i] <= nutrition[i=1:numCategories] <= maxNutrition[i])
# Variables for which foods to buy
@variable(m, buy[i=1:numFoods] >= 0)

# Objective - minimize cost
@objective(m, Min, dot(cost, buy))

# Nutrition constraints
for j = 1:numCategories
    @constraint(m, sum(nutritionValues[i,j]*buy[i] for i=1:numFoods) == nutrition[j])
end

@constraint(m, buy[8] + buy[9] <= 6)

# Solve
JuMP.optimize!(m)

The above code generates an error in Julia v1.0

Coin0506I Presolve 5 (0) rows, 9 (-4) columns and 38 (-4) elements
Clp0006I 0  Obj 0 Primal inf 16.526772 (2)
Clp0006I 5  Obj 11.828861 Primal inf 2.9401859 (2)
Clp0006I 5  Obj 11.828861 Primal inf 2.9401859 (2)
Clp0001I Primal infeasible - objective value 11.828861
Coin0505I Presolved problem not optimal, resolve after postsolve
Coin0511I After Postsolve, objective 11.828861, infeasibilities - dual 0 (0), primal 3.5614582 (1)
Clp0032I PrimalInfeasible objective 11.82886111 - 5 iterations time 0.002, Presolve 0.00
ERROR: MethodError: no method matching Array{Float64,N} where N(::Int64)
Closest candidates are:
  Array{Float64,N} where N(::UndefInitializer, ::Int64) where T at boot.jl:408
  Array{Float64,N} where N(::UndefInitializer, ::Int64, ::Int64) where T at boot.jl:409
  Array{Float64,N} where N(::UndefInitializer, ::Int64, ::Int64, ::Int64) where T at boot.jl:410
  ...
Stacktrace:
 [1] infeasibility_ray(::Clp.ClpCInterface.ClpModel) at /Users/chkwon/.julia/packages/Clp/qWiux/src/ClpCInterface.jl:879
 [2] get_farkas_dual!(::Clp.Optimizer, ::Array{Float64,1}) at /Users/chkwon/.julia/packages/Clp/qWiux/src/MOIWrapper.jl:305
 [3] optimize!(::Clp.Optimizer) at /Users/chkwon/.julia/packages/LinQuadOptInterface/RY8jg/src/solve.jl:57
 [4] optimize!(::MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.AbstractOptimizer,MathOptInterface.Utilities.UniversalFallback{JuMP.JuMPMOIModel{Float64}}}) at /Users/chkwon/.julia/packages/MathOptInterface/62rhX/src/Utilities/cachingoptimizer.jl:162
 [5] optimize!(::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.AbstractOptimizer,MathOptInterface.Utilities.UniversalFallback{JuMP.JuMPMOIModel{Float64}}},MathOptInterface.Bridges.AllBridgedConstraints{Float64}}) at /Users/chkwon/.julia/packages/MathOptInterface/62rhX/src/Bridges/bridgeoptimizer.jl:73
 [6] #optimize!#94(::Bool, ::Function, ::Model, ::Nothing) at /Users/chkwon/.julia/packages/JuMP/LjMor/src/optimizer_interface.jl:65
 [7] optimize! at /Users/chkwon/.julia/packages/JuMP/LjMor/src/optimizer_interface.jl:42 [inlined] (repeats 2 times)
 [8] top-level scope at none:0

When the same code is run at Julia v0.7:

┌ Warning: `Array{T}(m::Int) where T` is deprecated, use `Array{T}(undef, m)` instead.
│   caller = infeasibility_ray(::Clp.ClpCInterface.ClpModel) at ClpCInterface.jl:879
└ @ Clp.ClpCInterface ~/.julia/packages/Clp/qWiux/src/ClpCInterface.jl:879

Crash from missing symbol

I can reproducibly crash Clp with

using MathProgBase.SolverInterface, Clp, JLD2, SparseArrays
@load "clpcrash.jld2" data
model = LinearQuadraticModel(ClpSolver())
loadproblem!(model, data...)
optimize!(model)

giving the message

/home/gunnar/julia1.0/julia: symbol lookup error: /home/gunnar/.julia/packages/Clp/GpVOR/deps/usr/lib/libClp.so: undefined symbol: dgetrf_

The 28 MB data file is for now available at http://www.lysator.liu.se/~gunnar/clpcrash.jld2.

julia> versioninfo()
Julia Version 1.0.0
Commit 5d4eaca0c9 (2018-08-08 20:58 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, sandybridge)

(clpcrash) pkg> st -m
    Status `/tmp/clpcrash/Manifest.toml`
  [b99e7846] BinaryProvider v0.5.3
  [e2554f3b] Clp v0.6.1
  [944b1d66] CodecZlib v0.5.1
  [34da2185] Compat v1.4.0
  [864edb3b] DataStructures v0.15.0
  [5789e2e9] FileIO v1.0.5
  [033835bb] JLD2 v0.1.2
  [f8899e07] LinQuadOptInterface v0.6.0
  [b8f27783] MathOptInterface v0.8.1
  [fdba3010] MathProgBase v0.7.7
  [bac558e1] OrderedCollections v1.0.2
  [3bb67fe8] TranscodingStreams v0.8.1
  [2a0f44e3] Base64 
  [ade2ca70] Dates 
  [8bb1440f] DelimitedFiles 
  [8ba89e20] Distributed 
  [b77e0a4c] InteractiveUtils 
  [76f85450] LibGit2 
  [8f399da3] Libdl 
  [37e2e46d] LinearAlgebra 
  [56ddb016] Logging 
  [d6f4376e] Markdown 
  [a63ad114] Mmap 
  [44cfe95a] Pkg 
  [de0858da] Printf 
  [3fa0cd96] REPL 
  [9a3f8284] Random 
  [ea8e919c] SHA 
  [9e88b42a] Serialization 
  [1a1011a3] SharedArrays 
  [6462fe0b] Sockets 
  [2f01184e] SparseArrays 
  [10745b16] Statistics 
  [8dfed614] Test 
  [cf7118a7] UUIDs 
  [4ec0a83e] Unicode 

copy_to incorrectly maps scalar constraints

Edit(@odow):

using Clp
const MOI = Clp.MathOptInterface
model = MOI.Utilities.Model{Float64}()
x = MOI.add_variable(model)
con = [
    MOI.add_constraint(
        model, 
        MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1.0, x)], 0.0),
        MOI.EqualTo(1.0),
    )
    for i = 1:2
]
clp = Clp.Optimizer()
index_map = MOI.copy_to(clp, model)
index_map[con[1]] === index_map[con[2]]  # True! But should be false.

Original issue text

I created a simple model in JuMP v0.21.5 (Julia Version 1.5.2):

max 10𝑋1+15𝑋2
Subject to
6𝑋1+20𝑋2≤2400.0
20𝑋1+20𝑋2≤4000.0
4𝑋1+9𝑋2≤900.0
𝑋1≤100.0
𝑋2≤100.0
𝑋1≥0.0
𝑋2≥0.0

After optimizing (Solver: Clp 0.8.1) I do get the correct objective value as well as the correct variable values(X1=100, X2=55.55555). But for the following it seems as there is a problem. In earlier versions of Julia this code used to work.

JuMP.has_duals(LP)
Out: true

JuMP.dual(CapacityRestriction[1]), JuMP.dual(CapacityRestriction[2]), JuMP.dual(CapacityRestriction[3])
Out: (0.0, 0.0, 0.0)

JuMP.shadow_price(CapacityRestriction[1]), JuMP.shadow_price(CapacityRestriction[2]), JuMP.shadow_price(CapacityRestriction[3])
Out: (-0.0, -0.0, -0.0)

The third shadow price is not 0. Why doesn`t it show the correct solution.
Thanks for your help.

Error building 'Clp' cannot generate deps.jl

I am trying to install and build Clp on my system but am receiving an error:

┌ Error: Error building `Clp`:
│ ERROR: LoadError: LibraryProduct(nothing, ["libClp"], :libClp, "Prefix(/global/home/users/gorman_will/.julia/packages/Clp/cX6R7/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #write_deps_file#165(::Bool, ::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /global/home/users/gorman_will/.julia/packages/BinaryProvider/GeAtj/src/Products.jl:419
│  [3] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1044
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:392
│  [9] top-level scope at none:0
│ in expression starting at /global/home/users/gorman_will/.julia/packages/Clp/cX6R7/deps/build.jl:144
└ @ Pkg.Operations /global/software/sl-7.x86_64/sources/julia-1.0.3/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1097

I am thinking this might have something to do with potentially needing a custom installation, but am not sure..

Julia session info:

julia> versioninfo()
Julia Version 1.0.3
Platform Info:
  OS: Linux (x86_64-redhat-linux)
  CPU: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, sandybridge)
Environment:
  JULIA_DIR = /global/software/sl-7.x86_64/modules/langs/julia/1.0.3

Package version in my project:

julia> Pkg.status()
    Status `~/.julia/environments/v1.0/Project.toml`
  [e2554f3b] Clp v0.8.0
  [e2685f51] ECOS v0.11.0
  [4076af6c] JuMP v0.21.2
  [eadc2687] Pandas v1.4.0
  [438e738f] PyCall v1.91.4

Build failed to get libcoinblas

When building on Julia v1.0 and Arch Linux I get

ERROR: LoadError: LoadError: LibraryProduct(nothing, ["libcoinblas"], Symbol(""), "Prefix(/home/blegat/.julia/dev/Clp/deps/usr)") is not satisfied, cannot generate deps.jl!
Stacktrace:
 [1] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/blegat/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:409
 [2] write_deps_file(::String, ::Array{LibraryProduct,1}) at /home/blegat/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:396
 [3] top-level scope at none:0
 [4] include at ./sysimg.jl:29 [inlined]
 [5] include(::String) at ./loading.jl:1073
 [6] top-level scope at none:0
in expression starting at /home/blegat/.julia/dev/Clp/deps/build_COINBLASBuilder.v1.4.6.jl:45
in expression starting at /home/blegat/.julia/dev/Clp/deps/build.jl:46

However, I get

$ ls -R usr
usr:
downloads  lib  logs  manifests

usr/downloads:
COINBLASBuilder.v1.4.6.x86_64-linux-gnu.tar.gz  COINBLASBuilder.v1.4.6.x86_64-linux-gnu.tar.gz.sha256

usr/lib:
libcoinblas.a  libcoinblas.la  libcoinblas.so  libcoinblas.so.1  libcoinblas.so.1.4.6  pkgconfig

usr/lib/pkgconfig:
coinblas.pc

usr/logs:
COINBLASBuilder.log

usr/manifests:
COINBLASBuilder.v1.4.6.x86_64-linux-gnu.list

WARNING: Clp had build errors

I get the following error on my Arch Linux System.
Kernel: 4.18.12-arch1-1-ARCH
gfortan: GNU Fortran (GCC) 8.2.1 20180831
julia: 0.6.4
clp: 0.4

julia> using Clp # Solver -> Lineare Optimierung
INFO: Precompiling module Clp.
ERROR: LoadError: LoadError: Clp not properly installed. Please run Pkg.build("Clp")
Stacktrace:
 [1] error(::String) at ./error.jl:21
 [2] include_from_node1(::String) at ./loading.jl:576
 [3] include(::String) at ./sysimg.jl:14
 [4] include_from_node1(::String) at ./loading.jl:576
 [5] include(::String) at ./sysimg.jl:14
 [6] anonymous at ./<missing>:2
while loading /home/markus/.local/share/julia/v0.6/Clp/src/ClpCInterface.jl, in expression starting on line 188
while loading /home/markus/.local/share/julia/v0.6/Clp/src/Clp.jl, in expression starting on line 10
ERROR: Failed to precompile Clp to /home/markus/.local/share/julia/lib/v0.6/Clp.ji.
Stacktrace:
 [1] compilecache(::String) at ./loading.jl:710
 [2] _require(::Symbol) at ./loading.jl:497
 [3] require(::Symbol) at ./loading.jl:405
 [4] eval(::Module, ::Any) at ./boot.jl:235
julia> Pkg.build("Clp")
INFO: Building Clp
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   172    0   172    0     0    287      0 --:--:-- --:--:-- --:--:--   287
100   622    0   622    0     0    817      0 --:--:-- --:--:-- --:--:--   817
  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0curl: (6) Could not resolve host: github-production-release-asset-2e65be.s3.amazonaws.com
=====================================================[ ERROR: Clp ]======================================================

LoadError: failed process: Process(`curl -L -f -o build_COINBLASBuilder.v1.4.6.jl https://github.com/juan-pablo-vielma/COINBLASBuilder/releases/download/v1.4.6-beta2/build_COINBLASBuilder.v1.4.6.jl`, ProcessExited(6)) [6]
while loading /home/markus/.local/share/julia/v0.6/Clp/deps/build.jl, in expression starting on line 38

=========================================================================================================================

====================================================[ BUILD ERRORS ]=====================================================

WARNING: Clp had build errors.

 - packages with build errors remain installed in /home/markus/.local/share/julia/v0.6
 - build the package(s) and all dependencies with `Pkg.build("Clp")`
 - build a single package by running its `deps/build.jl` script

=========================================================================================================================

I've compiled julia from the source code to get the version 0.6.4. I need the version 0.6.4 for my study.
Did I need some more additional packages or is this a Clp error? Please can anyone fix this bug?

Volker

[PkgEval] Clp may have a testing issue on Julia 0.4 (2014-10-08)

PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their tests (if available) on both the stable version of Julia (0.3) and the nightly build of the unstable version (0.4). The results of this script are used to generate a package listing enhanced with testing results.

On Julia 0.4

  • On 2014-10-05 the testing status was Tests pass.
  • On 2014-10-08 the testing status changed to Package doesn't load.

Tests pass. means that PackageEvaluator found the tests for your package, executed them, and they all passed.

Package doesn't load. means that PackageEvaluator did not find tests for your package. Additionally, trying to load your package with using failed.

Special message from @IainNZ: This change may be due to breaking changes to Dict in JuliaLang/julia#8521

This issue was filed because your testing status became worse. No additional issues will be filed if your package remains in this state, and no issue will be filed if it improves. If you'd like to opt-out of these status-change messages, reply to this message saying you'd like to and @IainNZ will add an exception. If you'd like to discuss PackageEvaluator.jl please file an issue at the repository. For example, your package may be untestable on the test machine due to a dependency - an exception can be added.

Test log:

>>> 'Pkg.add("Clp")' log

WARNING: deprecated syntax "(String=>String)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/BinDeps.jl:146.
Use "Dict{String,String}()" instead.

WARNING: deprecated syntax "(String=>String)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/BinDeps.jl:147.
Use "Dict{String,String}()" instead.

WARNING: deprecated syntax "(String=>String)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/BinDeps.jl:148.
Use "Dict{String,String}()" instead.

WARNING: deprecated syntax "(String=>String)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/BinDeps.jl:149.
Use "Dict{String,String}()" instead.

WARNING: deprecated syntax "(Symbol=>Any)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:224.
Use "Dict{Symbol,Any}()" instead.

WARNING: deprecated syntax "(Symbol=>Any)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:383.
Use "Dict{Symbol,Any}()" instead.

WARNING: deprecated syntax "{a=>b, ...}" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:387.
Use "Dict{Any,Any}(a=>b, ...)" instead.

WARNING: deprecated syntax "(Any=>Any)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:494.
Use "Dict{Any,Any}()" instead.

WARNING: deprecated syntax "(Any=>Any)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:555.
Use "Dict{Any,Any}()" instead.

WARNING: deprecated syntax "(Any=>Any)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:660.
Use "Dict{Any,Any}()" instead.

WARNING: deprecated syntax "[a=>b, ...]" at /home/idunning/pkgtest/.julia/v0.4/Cbc/deps/build.jl:50.
Use "Dict(a=>b, ...)" instead.
INFO: Installing BinDeps v0.3.5
INFO: Installing Cbc v0.1.1
INFO: Installing Clp v0.0.9
INFO: Installing MathProgBase v0.3.1
INFO: Installing SHA v0.0.3
INFO: Installing URIParser v0.0.3
INFO: Building Cbc
INFO: Package database updated
INFO: METADATA is out-of-date a you may not have the latest version of Clp
INFO: Use `Pkg.update()` to get the latest versions of your packages

>>> 'using Clp' log

WARNING: deprecated syntax "[a=>b, ...]" at /home/idunning/pkgtest/.julia/v0.4/Clp/src/ClpSolverInterface.jl:52.
Use "Dict(a=>b, ...)" instead.

WARNING: deprecated syntax "[a=>b, ...]" at /home/idunning/pkgtest/.julia/v0.4/Clp/src/ClpSolverInterface.jl:64.
Use "Dict(a=>b, ...)" instead.
Julia Version 0.4.0-dev+998
Commit e24fac0 (2014-10-07 22:02 UTC)
Platform Info:
  System: Linux (x86_64-unknown-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Sandybridge)
  LAPACK: libopenblas
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

ERROR: `Dict{K,V}` has no method matching Dict{K,V}(::Array{Uint8,1}, ::Array{Symbol,1})
 in include at ./boot.jl:245
 in include_from_node1 at ./loading.jl:128
 in include at ./boot.jl:245
 in include_from_node1 at ./loading.jl:128
 in reload_path at ./loading.jl:152
 in _require at ./loading.jl:67
 in require at ./loading.jl:52
 in require_3B_3964 at /home/idunning/julia04/usr/bin/../lib/julia/sys.so
 in include at ./boot.jl:245
 in include_from_node1 at loading.jl:128
 in process_options at ./client.jl:293
 in _start at ./client.jl:362
 in _start_3B_3789 at /home/idunning/julia04/usr/bin/../lib/julia/sys.so
while loading /home/idunning/pkgtest/.julia/v0.4/Clp/src/ClpSolverInterface.jl, in expression starting on line 213
while loading /home/idunning/pkgtest/.julia/v0.4/Clp/src/Clp.jl, in expression starting on line 10
while loading /home/idunning/pkgtest/.julia/v0.4/Clp/testusing.jl, in expression starting on line 2

>>> test log
no tests to run
>>> end of log

[PkgEval] Clp may have a testing issue on Julia 0.4 (2014-10-28)

PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their tests (if available) on both the stable version of Julia (0.3) and the nightly build of the unstable version (0.4). The results of this script are used to generate a package listing enhanced with testing results.

On Julia 0.4

  • On 2014-10-27 the testing status was Tests pass.
  • On 2014-10-28 the testing status changed to Tests fail, but package loads.

Tests pass. means that PackageEvaluator found the tests for your package, executed them, and they all passed.

Tests fail, but package loads. means that PackageEvaluator found the tests for your package, executed them, and they didn't pass. However, trying to load your package with using worked.

This issue was filed because your testing status became worse. No additional issues will be filed if your package remains in this state, and no issue will be filed if it improves. If you'd like to opt-out of these status-change messages, reply to this message saying you'd like to and @IainNZ will add an exception. If you'd like to discuss PackageEvaluator.jl please file an issue at the repository. For example, your package may be untestable on the test machine due to a dependency - an exception can be added.

Test log:

>>> 'Pkg.add("Clp")' log

WARNING: deprecated syntax "{}" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/BinDeps.jl:103.
Use "[]" instead.

WARNING: deprecated syntax "{}" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/BinDeps.jl:104.
Use "[]" instead.

WARNING: deprecated syntax "(String=>String)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/BinDeps.jl:146.
Use "Dict{String,String}()" instead.

WARNING: deprecated syntax "(String=>String)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/BinDeps.jl:147.
Use "Dict{String,String}()" instead.

WARNING: deprecated syntax "(String=>String)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/BinDeps.jl:148.
Use "Dict{String,String}()" instead.

WARNING: deprecated syntax "(String=>String)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/BinDeps.jl:149.
Use "Dict{String,String}()" instead.

WARNING: deprecated syntax "{}" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:87.
Use "[]" instead.

WARNING: deprecated syntax "(Symbol=>Any)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:224.
Use "Dict{Symbol,Any}()" instead.

WARNING: deprecated syntax "{a=>b for (a,b) in c}" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:256.
Use "Dict{Any,Any}([a=>b for (a,b) in c])" instead.

WARNING: deprecated syntax "{}" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:352.
Use "[]" instead.

WARNING: deprecated syntax "(Symbol=>Any)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:383.
Use "Dict{Symbol,Any}()" instead.

WARNING: deprecated syntax "{a=>b, ...}" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:387.
Use "Dict{Any,Any}(a=>b, ...)" instead.

WARNING: deprecated syntax "(Any=>Any)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:494.
Use "Dict{Any,Any}()" instead.

WARNING: deprecated syntax "(Any=>Any)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:555.
Use "Dict{Any,Any}()" instead.

WARNING: deprecated syntax "(Any=>Any)[]" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:660.
Use "Dict{Any,Any}()" instead.

WARNING: deprecated syntax "{}" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:889.
Use "[]" instead.

WARNING: deprecated syntax "{}" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/dependencies.jl:959.
Use "[]" instead.

WARNING: deprecated syntax "{}" at /home/idunning/pkgtest/.julia/v0.4/BinDeps/src/debug.jl:51.
Use "[]" instead.
INFO: Installing BinDeps v0.3.6
INFO: Installing Cbc v0.1.1
INFO: Installing Clp v0.0.9
INFO: Installing MathProgBase v0.3.2
INFO: Installing SHA v0.0.3
INFO: Installing URIParser v0.0.3
INFO: Building Cbc
INFO: Package database updated

>>> 'using Clp' log
Julia Version 0.4.0-dev+1330
Commit 7fdc860 (2014-10-28 03:56 UTC)
Platform Info:
  System: Linux (x86_64-unknown-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Sandybridge)
  LAPACK: libopenblas
  LIBM: libopenlibm
  LLVM: libLLVM-3.3
WARNING: (Dict{K,V})(ks::AbstractArray{K},vs::AbstractArray{V}) is deprecated, use (Dict{K,V})(zip(ks,vs)) instead.
 in call at deprecated.jl:26
 in include at ./boot.jl:242
 in include_from_node1 at ./loading.jl:128
 in include at ./boot.jl:242
 in include_from_node1 at ./loading.jl:128
 in reload_path at ./loading.jl:152
 in _require at ./loading.jl:67
 in require at ./loading.jl:52
 in require_3B_3941 at /home/idunning/julia04/usr/bin/../lib/julia/sys.so
 in include at ./boot.jl:242
 in include_from_node1 at loading.jl:128
 in process_options at ./client.jl:293
 in _start at ./client.jl:362
 in _start_3B_3769 at /home/idunning/julia04/usr/bin/../lib/julia/sys.so

>>> test log
Testing linprog with solver ClpSolver

WARNING: (Dict{K,V})(ks::AbstractArray{K},vs::AbstractArray{V}) is deprecated, use (Dict{K,V})(zip(ks,vs)) instead.
 in call at deprecated.jl:26
 in include at ./boot.jl:242
 in include_from_node1 at ./loading.jl:128
 in include at ./boot.jl:242
 in include_from_node1 at ./loading.jl:128
 in reload_path at ./loading.jl:152
 in _require at ./loading.jl:67
 in require at ./loading.jl:52
 in require_3B_3941 at /home/idunning/julia04/usr/bin/../lib/julia/sys.so
 in include at ./boot.jl:242
 in include_from_node1 at loading.jl:128
 in process_options at ./client.jl:293
 in _start at ./client.jl:362
 in _start_3B_3769 at /home/idunning/julia04/usr/bin/../lib/julia/sys.so
ERROR: `linprog` has no method matching linprog(::Array{Int64,1}, ::Array{Int64,2}, ::Char, ::Float64, ::Int64, ::Float64, ::ClpSolver)
 in linprogtest at /home/idunning/pkgtest/.julia/v0.4/MathProgBase/test/linprog.jl:11
 in include at ./boot.jl:242
 in include_from_node1 at loading.jl:128
 in process_options at ./client.jl:293
 in _start at ./client.jl:362
 in _start_3B_3769 at /home/idunning/julia04/usr/bin/../lib/julia/sys.so
while loading /home/idunning/pkgtest/.julia/v0.4/Clp/test/runtests.jl, in expression starting on line 4

INFO: Testing Clp
=================================[ ERROR: Clp ]=================================

failed process: Process(`/home/idunning/julia04/usr/bin/julia /home/idunning/pkgtest/.julia/v0.4/Clp/test/runtests.jl`, ProcessExited(1)) [1]

================================================================================
INFO: No packages to install, update or remove
ERROR: Clp had test errors
 in error at error.jl:21
 in test at pkg/entry.jl:719
 in anonymous at pkg/dir.jl:28
 in cd at ./file.jl:20
 in cd at pkg/dir.jl:28
 in test at pkg.jl:68
 in process_options at ./client.jl:221
 in _start at ./client.jl:362
 in _start_3B_3769 at /home/idunning/julia04/usr/bin/../lib/julia/sys.so

>>> end of log

Library not loaded : @rpath/libgfortran.4.dylib

I write a Julia code with Games.jl,

pd_payoff = [9.0 1.0; 10.0 3.0]
A, B = Player(pd_payoff), Player(pd_payoff)
pd = NormalFormGame((A, B))
rpd = RepeatedGame(pd, 0.75)
hp_pts = outerapproximation(rpd; nH=64, maxiter=500, tol=1e-8, verbose=true, nskipprint=10)

Then, I have a following error.

error compiling #outerapproximation#62: error compiling Optimizer#1: could not load library "/Users/myname/.julia/packages/Clp/4DejL/deps/usr/lib/libClp.1.13.11.dylib"

dlopen(/Users/myname/.julia/packages/Clp/4DejL/deps/usr/lib/libClp.1.13.11.dylib, 1): Library not loaded: @rpath/libgfortran.4.dylib   
   Referenced from: /Users/myname/.julia/packages/Clp/4DejL/deps/usr/lib/libClp.1.13.11.dylib 
   Reason: image not found

My /Users/myname/.julia/packages/Clp/4DejL/deps/usr/lib/ directory is like this:

MyMacBook-Pro-2:~ myname$ ls ~/.julia/packages/Clp/4DejL/deps/usr/lib/
   libClp.1.13.11.dylib     libClpSolver.1.13.11.dylib  libCoinUtils.la         libOsiClp.dylib         libcoinlapack.la
   libClp.1.dylib           libClpSolver.1.dylib        libOsi.la               libOsiClp.la            libcoinmetis.la
   libClp.dylib             libClpSolver.dylib          libOsiClp.1.13.11.dylib libOsiCommonTests.la    libcoinmumps.la
   libClp.la                libClpSolver.la             libOsiClp.1.dylib       libcoinblas.la          pkgconfig

Does anyone have an idea to resolve this Library not found error?

This issue comes from here. Thank you @giordano !

getconstrmatrix produces ERROR: UndefVarError: SparseMatrixCSC not defined

Hi,
I'm using Clp through JuMP, calling the code:

using SparseArrays
using MathProgBase
using JuMP
using Clp
m = Model(solver = ClpSolver())
JuMP.build(m)
MathProgBase.getconstrmatrix(internalmodel(m))

(It also breaks if the model is non-empty, the above is simply a small example)

produces the error:

ERROR: UndefVarError: SparseMatrixCSC not defined
Stacktrace:
 [1] getconstrmatrix(::Clp.ClpMathProgSolverInterface.ClpMathProgModel) at C:\Users\MärtaEdvin\.juli
a\packages\Clp\qWiux\src\ClpSolverInterface.jl:116
 [2] top-level scope at none:0

including using SparseArray inClpSolverInterface.jl, resolves the problem.
Is this an real issue or am I misusing the MathProgBase.getconstrmatrix?

[PkgEval] Clp may have a testing issue on Julia 0.3 (2014-06-21)

PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their tests (if available) on both the stable version of Julia (0.2) and the nightly build of the unstable version (0.3). The results of this script are used to generate a package listing enhanced with testing results.

On Julia 0.3

  • On 2014-06-19 the testing status was Tests pass.
  • On 2014-06-21 the testing status changed to Tests fail, but package loads.

Tests pass. means that PackageEvaluator found the tests for your package, executed them, and they all passed.

Tests fail, but package loads. means that PackageEvaluator found the tests for your package, executed them, and they didn't pass. However, trying to load your package with using worked.

This issue was filed because your testing status became worse. No additional issues will be filed if your package remains in this state, and no issue will be filed if it improves. If you'd like to opt-out of these status-change messages, reply to this message saying you'd like to and @IainNZ will add an exception. If you'd like to discuss PackageEvaluator.jl please file an issue at the repository. For example, your package may be untestable on the test machine due to a dependency - an exception can be added.

Test log:

INFO: Installing BinDeps v0.2.14
INFO: Installing Cbc v0.0.7
INFO: Installing Clp v0.0.7
INFO: Installing MathProgBase v0.2.0
INFO: Installing URIParser v0.0.2
INFO: Building Cbc
INFO: Package database updated
ERROR: no method addvar!(ClpMathProgModel, Int64, Float64, Int64)
 in linprogsolvertest at /home/idunning/pkgtest/.julia/v0.3/MathProgBase/test/linproginterface.jl:116
 in include at ./boot.jl:244
 in include_from_node1 at loading.jl:128
 in process_options at ./client.jl:285
 in _start at ./client.jl:354
while loading /home/idunning/pkgtest/.julia/v0.3/Clp/test/runtests.jl, in expression starting on line 7
INFO: Package database updated

Documentation for SolveType = 2

From the README:

SolveType - choose the solution method:
0 - dual simplex
1 - primal simplex
3 - barrier with crossover to optimal basis
4 - barrier without crossover to optimal basis
5 - automatic
What does option SolveType=2 yield? This seems undocumented here.
By digging into Clp Doxygen: https://www.coin-or.org/Doxygen/Clp/classClpSolve.html#a3e2f401fca0ad2ea77c7486aa4d4c3f2
2 corresponds to usePrimalorSprint, I have no idea what this means though, and no additional documentation for the term found.

MethodError when setting PresolveType and SolveType through MOI

The following used to work but now results in a MethodError:

import Clp
import MathOptInterface
const MOI = MathOptInterface

clp = Clp.Optimizer()

MOI.set(clp, MOI.RawParameter("SolveType", 4))     # errors
MOI.set(clp, MOI.RawParameter("PresolveType", 1))  # also errors

I did not see any other other case where the following

Error message:

ERROR: MethodError: no method matching ClpSolve_setSolveType(::Ptr{Nothing}, ::Int64)
Closest candidates are:
  ClpSolve_setSolveType(::Any, ::Any, ::Any) at /mnt/c/Users/mathi/Git/Clp.jl/src/gen/libclp_api.jl:593
Stacktrace:
 [1] set(::Clp.Optimizer, ::MathOptInterface.RawParameter, ::Int64) at /mnt/c/Users/mathi/Git/Clp.jl/src/MOI_wrapper/MOI_wrapper.jl:101
 [2] top-level scope at REPL[5]:1

There are at least 3 ways of fixing this. PR incoming.

Building Clp on Julia 1.3.0-rc3.0

i'm having hard times to build Clp package on julia 1.3.0, i added the package successfully, but when i want to build it, it takes forever without any result .
It's showing me only this :

Building Clp → ~/.julia/packages/Clp/IBQzB/deps/build.log
i'm on MacOS high sierra

support getting objective bound

currently thru MOI and LQOI we can get the primal objective value, but it seems not the dual objective value slash objective bound

Lower log level?

Hi,

I'm using Clp/JuMP as part of a larger program; I get a lot of junk like this in my console:

WARNING: Not solved to optimality, status: Unbounded
WARNING: Unbounded ray not available
WARNING: Not solved to optimality, status: Infeasible
WARNING: Infeasibility ray (Farkas proof) not available
WARNING: Not solved to optimality, status: Infeasible
WARNING: Infeasibility ray (Farkas proof) not available
WARNING: Not solved to optimality, status: Infeasible
WARNING: Infeasibility ray (Farkas proof) not available
WARNING: Not solved to optimality, status: Unbounded
WARNING: Unbounded ray not available
WARNING: Not solved to optimality, status: Unbounded
WARNING: Unbounded ray not available
WARNING: Not solved to optimality, status: Infeasible
WARNING: Infeasibility ray (Farkas proof) not available

(And so on...)

I'm currently using these options:

Model(solver=ClpSolver(InfeasibleReturn=1,LogLevel=0))

Although this doesn't matter much, since the default logging level is zero anyway.

I'd like the solver to not generate these warnings; infeasibility / unboundedness is part of the normal course of business, and in fact is largely what I'm using the solver to detect. All the warning messages are really getting in the way, and besides, printing all that must be slowing things down for me. (I'm running a large number of small instances.)

Failed when USING Clp in Julia 1.0.0

I fail when USING Clp in Julia 1.0.0 (on Linux)

julia> using Clp
[ Info: Precompiling Clp [e2554f3b-3117-50c0-817c-e040a3ddf72d]
ERROR: LoadError: LoadError: syntax: extra token "ClpModel" after end of expression
Stacktrace:
 [1] include at ./boot.jl:317 [inlined]
 [2] include_relative(::Module, ::String) at ./loading.jl:1038
 [3] include at ./sysimg.jl:29 [inlined]
 [4] include(::String) at /home/hurak/.julia/packages/Clp/cTlVN/src/Clp.jl:7
 [5] top-level scope at none:0
 [6] include at ./boot.jl:317 [inlined]
 [7] include_relative(::Module, ::String) at ./loading.jl:1038
 [8] include(::Module, ::String) at ./sysimg.jl:29
 [9] top-level scope at none:2
 [10] eval at ./boot.jl:319 [inlined]
 [11] eval(::Expr) at ./client.jl:389
 [12] top-level scope at ./none:3
in expression starting at /home/hurak/.julia/packages/Clp/cTlVN/src/ClpCInterface.jl:214
in expression starting at /home/hurak/.julia/packages/Clp/cTlVN/src/Clp.jl:10
ERROR: Failed to precompile Clp [e2554f3b-3117-50c0-817c-e040a3ddf72d] to /home/hurak/.julia/compiled/v1.0/Clp/UsKiE.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] macro expansion at ./logging.jl:313 [inlined]
 [3] compilecache(::Base.PkgId, ::String) at ./loading.jl:1184
 [4] macro expansion at ./logging.jl:311 [inlined]
 [5] _require(::Base.PkgId) at ./loading.jl:941
 [6] require(::Base.PkgId) at ./loading.jl:852
 [7] macro expansion at ./logging.jl:311 [inlined]
 [8] require(::Module, ::Symbol) at ./loading.jl:834
 [9] eval at ./boot.jl:319 [inlined]
 [10] #53 at /home/hurak/.julia/packages/Atom/jJn7Y/src/repl.jl:125 [inlined]
 [11] with_logstate(::getfield(Main, Symbol("##53#55")), ::Base.CoreLogging.LogState) at ./logging.jl:397
 [12] with_logger(::Function, ::Atom.Progress.JunoProgressLogger) at ./logging.jl:493
 [13] top-level scope at /home/hurak/.julia/packages/Atom/jJn7Y/src/repl.jl:124

cannot get the primal solution when using the Clp ipm method

Hello, I came across two problems.

1

After I use iterior point method(ipm) to solve the LP programming problem, I cannot get the primal solution through value.(x). (But there is no problem with simplex method.) Here are my codes:

using JuMP
using Clp

#read data
...

model = Model(Clp.Optimizer);
@variable(model, x[1:n]);
for i in 1: n
    set_lower_bound(x[i], lb[i]);
    set_upper_bound(x[i], ub[i]);
end
@constraint(model, constraint, A * x .== b);
@objective(model, Min, dot(x, c));
set_optimizer_attribute(model, "SolveType", 4);
set_optimizer_attribute(model, "PresolveType", 1);   
set_optimizer_attribute(model, "MaximumSeconds", 1e3);
set_optimizer_attribute(model, "PrimalTolerance", 1e-6);
set_optimizer_attribute(model, "DualTolerance", 1e-6);
optimize!(model);

where A is a m*n matrix, c, lb, ub are n*1 matrices, b is m*1 matrix. When I try to get the primal solution by value.(x), it traces back:

ERROR: Primal solution not available

2

I have tried different approaches to get the iteration counts, including

MOI.get(model, MOI.SimplexItertions()) 
solution_summary(model).simplex_iterations
solution_summary(model).barrier_iterations
Clp_numberIterations(model)

but none works.

Could you please provide some approaches to acquire the iteration counts and primal solution? Thanks very much.

Stack overflow on test script

~> julia runtests.jl 
ERROR: stack overflow
 in reload_path at loading.jl:146
 in _require at loading.jl:59
 in require at loading.jl:46
 in reload_path at loading.jl:146
 in _require at loading.jl:59
 in require at loading.jl:43
while loading /Users/huchette/.julia/Cbc/src/../deps/build.jl, in expression starting on line 19
while loading /Users/huchette/.julia/Cbc/src/Cbc.jl, in expression starting on line 5
while loading /Users/huchette/.julia/Clp/src/ClpCInterface.jl, in expression starting on line 4
while loading /Users/huchette/.julia/Clp/src/Clp.jl, in expression starting on line 9
while loading /Users/huchette/.julia/Clp/test/runtests.jl, in expression starting on line 1

I just updated to the latest Julia commit, which I think must be the culprit. Any ideas?

Support ConstraintBasisStatus

We had this at one point, but it got lost along the way

Clp.jl/src/MOIWrapper.jl

Lines 378 to 406 in 15da23f

# Corresponds to the `Status` struct defined in https://github.com/coin-or/Clp/blob/8419e63/Clp/src/ClpSimplex.hpp#L114.
const STATMAP = Dict(0x00 => MOI.BASIC, 0x01 => MOI.BASIC, 0x02 => MOI.NONBASIC_AT_UPPER,
0x03 => MOI.NONBASIC_AT_LOWER, 0x04 => MOI.SUPER_BASIC, 0x05 => MOI.NONBASIC)
function MOI.get(instance::Optimizer, ::MOI.ConstraintBasisStatus,
ci::MOI.ConstraintIndex{MOI.ScalarAffineFunction{Float64}, S}) where S <: Union{LQOI.LE, LQOI.GE, LQOI.EQ}
row = instance[ci]
stat = STATMAP[get_row_status(instance.inner, row)]
# Single sided constraints should not specify `NONBASIC_AT_X` but only `NONBASIC`.
if stat == MOI.NONBASIC_AT_LOWER || stat == MOI.NONBASIC_AT_UPPER
return MOI.NONBASIC
end
return stat
end
function MOI.get(instance::Optimizer, ::MOI.ConstraintBasisStatus,
vi::MOI.ConstraintIndex{MOI.SingleVariable, S}) where S <: Union{LQOI.LE, LQOI.GE, LQOI.EQ, LQOI.IV}
col = instance.variable_mapping[instance[vi]]
stat = STATMAP[get_column_status(instance.inner, col)]
# If, e.g., a column is `NONBASIC_AT_LOWER` then the ≤ constraint is `BASIC`.
if (S <: LQOI.LE && stat == MOI.NONBASIC_AT_LOWER) || (S <: LQOI.GE && stat == MOI.NONBASIC_AT_UPPER)
return MOI.BASIC
end
# Single sided constraints should not specify `NONBASIC_AT_X` but only `NONBASIC`.
if !(S <: LQOI.IV) && (stat == MOI.NONBASIC_AT_LOWER || stat == MOI.NONBASIC_AT_UPPER)
return MOI.NONBASIC
end
return stat
end

maximumIterations not found on maxOS and Windows builds

The errors can be seen on this job (macOS) and this job (Windows).

Error on Windows:

ccall: could not find function maximumIterations in library C:\Users\travis\build\mtanneau\Clp.jl\deps\usr\bin\libClp-1.dll

Error message on macOS:

ccall: could not find function maximumIterations in library /Users/travis/build/JuliaOpt/Clp.jl/deps/usr/lib/libClp.1.13.11.dylib

maximumIterations is not tested, so this did not show up in the tests in #69.
However, it is systematically called by the MOI wrapper within MOI.empty!, so it is blocking #66.

cc @juan-pablo-vielma

Imprecise interation Count

Hello. When I test CLP on the large-scale dataset MIPLIB, I find that the iteration count output by CLP is imprecise.
For example, here is the log file of the instance "nug15", by using ipm with crossover:

1.18543e+06 elements in sparse Cholesky, flop count 2.03872e+09
Clp0035I 0 Primal 33264000 Dual -2.53893e+08 Complementarity 2.87157e+08 - 0 fixed, rank 1872
Clp0035I 1 Primal 1765901.8 Dual -14992.846 Complementarity 15506970 - 0 fixed, rank 1853
Clp0035I 2 Primal 9174.1151 Dual -14896.688 Complementarity 83297.529 - 0 fixed, rank 1868
Clp0035I 3 Primal 1530.923 Dual -8024.4335 Complementarity 9555.3565 - 0 fixed, rank 1863
Clp0035I 4 Primal 1413.2117 Dual 192.24931 Complementarity 1220.9624 - 0 fixed, rank 1885
Clp0035I 5 Primal 1184.2881 Dual 910.62857 Complementarity 273.65954 - 0 fixed, rank 1883
Clp0035I 6 Primal 1100.7246 Dual 982.29507 Complementarity 118.42957 - 0 fixed, rank 1860
Clp0035I 7 Primal 1068.7214 Dual 1024.2724 Complementarity 44.449026 - 0 fixed, rank 1884
Clp0035I 8 Primal 1059.4771 Dual 1029.2597 Complementarity 30.217356 - 0 fixed, rank 1858
Clp0035I 9 Primal 1048.3282 Dual 1035.8738 Complementarity 12.454383 - 0 fixed, rank 1858
Clp0035I 10 Primal 1045.4956 Dual 1039.111 Complementarity 6.3846278 - 0 fixed, rank 1854
Clp0035I 11 Primal 1043.0106 Dual 1040.2128 Complementarity 2.7978222 - 0 fixed, rank 1849
Clp0035I 12 Primal 1041.9329 Dual 1040.5324 Complementarity 1.4004408 - 0 fixed, rank 1856
Clp0035I 13 Primal 1041.4574 Dual 1040.8076 Complementarity 0.64982487 - 0 fixed, rank 1867
Clp0035I 14 Primal 1041.2291 Dual 1040.8806 Complementarity 0.3485514 - 0 fixed, rank 1856
Clp0035I 15 Primal 1041.132 Dual 1040.9436 Complementarity 0.18863302 - 0 fixed, rank 1869
Clp0035I 16 Primal 1041.001 Dual 1040.9813 Complementarity 0.019706312 - 0 fixed, rank 1886
Clp0035I 17 Primal 1041.001 Dual 1040.9813 Complementarity 0.019698029 - 0 fixed, rank 1868
Clp0035I 18 Primal 1041.001 Dual 1040.9813 Complementarity 0.019687326 - 0 fixed, rank 1861
Clp0035I 19 Primal 1041.0009 Dual 1040.9813 Complementarity 0.019683878 - 0 fixed, rank 1842
Clp0035I 20 Primal 1041.0009 Dual 1040.9813 Complementarity 0.019670652 - 1 fixed, rank 1852
Clp0035I 21 Primal 1041.001 Dual 1040.9815 Complementarity 0.019526852 - 1 fixed, rank 1857
Clp0035I 22 Primal 1041.001 Dual 1040.9815 Complementarity 0.019487992 - 1 fixed, rank 1883
Clp0035I 23 Primal 1040.9997 Dual 1040.9815 Complementarity 0.019464456 - 1 fixed, rank 1846
Clp0035I 24 Primal 1040.9997 Dual 1040.9815 Complementarity 0.019455725 - 2 fixed, rank 1864
Clp0035I 25 Primal 1040.9999 Dual 1040.9827 Complementarity 0.018208115 - 3 fixed, rank 1877
Clp0035I 26 Primal 1040.9956 Dual 1040.9919 Complementarity 0.0040506787 - 3 fixed, rank 1891
Clp0035I 27 Primal 1040.9955 Dual 1040.9919 Complementarity 0.0040121395 - 4 fixed, rank 1868
Clp0035I 28 Primal 1040.9956 Dual 1040.9919 Complementarity 0.0039933469 - 5 fixed, rank 1873
Clp0035I 29 Primal 1040.9955 Dual 1040.9919 Complementarity 0.0039869459 - 5 fixed, rank 1876
Clp0040I Exiting - using solution from iteration 28
Clp0046I At end primal/dual infeasibilities 0.00010983845/10.247667, complementarity gap 8.9120105e+10, objective 1040.9956
Clp0006I 0  Obj 1040.9944 Primal inf 0.0098131056 (76) Dual inf 6.2859078e+16 (2424)
Clp0006I 87  Obj 1040.9941 Primal inf 0.00040410498 (40) Dual inf 7.4479483e+14 (2398)
Clp0006I 199  Obj 1040.9941 Primal inf 8.4355532e-06 (36) Dual inf 2.800466e+14 (1467)
Clp0006I 333  Obj 1040.9941 Primal inf 1.1295903e-06 (7) Dual inf 2.2308e+12 (893)
Clp0006I 460  Obj 1040.9941 Primal inf 1.1295903e-06 (7) Dual inf 2.2308e+12 (887)
Clp0029I End of values pass after 519 iterations
Clp0006I 519  Obj 1040.9941 Dual inf 121.42928 (857)
Clp0003I Stopped - objective value 1040.9941
Clp0006I 0  Obj 1040.9941 Dual inf 121430.14 (857)
Clp0006I 104  Obj 1040.9941 Dual inf 82637.215 (776)
Clp0006I 202  Obj 1040.9941 Dual inf 58098.959 (764)
Clp0006I 307  Obj 1040.9941 Dual inf 24261.364 (599)
Clp0006I 424  Obj 1040.9941 Primal inf 2.8256396e-05 (51) Dual inf 1.3354605e+12 (845)
Clp0006I 541  Obj 1040.9939 Primal inf 1.6703313e-05 (23) Dual inf 2.9899963e+11 (595)
Clp0006I 610  Obj 1040.9939 Primal inf 1.8605973e-08 (1) Dual inf 1.5345426e+10 (122)
Clp0006I 632  Obj 1040.9939
Clp0000I Optimal - objective value 1040.9939
Clp0006I 0  Obj 1040.994
Clp0000I Optimal - objective value 1040.994
Clp0032I Optimal objective 1040.994041 - 0 iterations time 17.022

As shown in the last line, the iteration count is 0. Clp_getIterationCount(unsafe_backend(model)) also returns 0.
I don't think this is a reasonable result.

What I want is to get the exact iteration count of the iterior point methd (does not include crossover steps). Could you please give some advice?

Compilation issue

julia> Pkg.add("Clp")
INFO: Installing Cbc v0.0.7
INFO: Installing Clp v0.0.7
INFO: Building Cbc
INFO: Attempting to Create directory /home/jvielma/.julia/v0.2/Cbc/deps/downloads
INFO: Directory /home/jvielma/.julia/v0.2/Cbc/deps/downloads already created
INFO: Downloading file http://www.coin-or.org/download/source/CoinMP/CoinMP-1.7.6.tgz
INFO: Done downloading file http://www.coin-or.org/download/source/CoinMP/CoinMP-1.7.6.tgz
INFO: Attempting to Create directory /home/jvielma/.julia/v0.2/Cbc/deps/src
INFO: Directory /home/jvielma/.julia/v0.2/Cbc/deps/src already created
INFO: Attempting to Create directory /home/jvielma/.julia/v0.2/Cbc/deps
INFO: Directory /home/jvielma/.julia/v0.2/Cbc/deps already created
INFO: Attempting to Create directory /home/jvielma/.julia/v0.2/Cbc/deps/src/CoinMP-1.7.6
INFO: Directory /home/jvielma/.julia/v0.2/Cbc/deps/src/CoinMP-1.7.6 already created
INFO: Changing Directory to /home/jvielma/.julia/v0.2/Cbc/deps/src/CoinMP-1.7.6
patching file CoinMP/src/CoinProblem.c
Reversed (or previously applied) patch detected!  Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file CoinMP/src/CoinProblem.c.rej
=============================================================================================[ ERROR: Cbc ]=============================================================================================

failed process: Process(`patch -N -p1`, ProcessExited(1)) [1]
at /home/jvielma/.julia/v0.2/Cbc/deps/build.jl:45

========================================================================================================================================================================================================

============================================================================================[ BUILD ERRORS ]============================================================================================

WARNING: Cbc had build errors.

 - packages with build errors remain installed in /home/jvielma/.julia/v0.2
 - build a package and all its dependencies with `Pkg.build(pkg)`
 - build a single package by running its `deps/build.jl` script

========================================================================================================================================================================================================
INFO: REQUIRE updated.

same message after update and build,

maximum_seconds returns weird results

Clp returns weird results when querying the time limit after it has been set.

The code below

import Clp
m = Clp.ClpModel()

@show Clp.maximum_seconds(m)  # returns -1.0
Clp.set_maximum_seconds(m, 1.0)
@show Clp.maximum_seconds(m)  # returns a (seemingly) random value
Clp.set_maximum_seconds(m, 0.0)
@show Clp.maximum_seconds(m)  # returns a (seemingly) random value

returns seemingly random values after the time limit is set.

Might there be a bug on the C interface's side?

[PkgEval] Clp may have a testing issue on Julia 0.2 (2014-06-21)

PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their tests (if available) on both the stable version of Julia (0.2) and the nightly build of the unstable version (0.3). The results of this script are used to generate a package listing enhanced with testing results.

On Julia 0.2

  • On 2014-06-19 the testing status was Tests pass.
  • On 2014-06-21 the testing status changed to Tests fail, but package loads.

Tests pass. means that PackageEvaluator found the tests for your package, executed them, and they all passed.

Tests fail, but package loads. means that PackageEvaluator found the tests for your package, executed them, and they didn't pass. However, trying to load your package with using worked.

This issue was filed because your testing status became worse. No additional issues will be filed if your package remains in this state, and no issue will be filed if it improves. If you'd like to opt-out of these status-change messages, reply to this message saying you'd like to and @IainNZ will add an exception. If you'd like to discuss PackageEvaluator.jl please file an issue at the repository. For example, your package may be untestable on the test machine due to a dependency - an exception can be added.

Test log:

INFO: Cloning cache of Clp from git://github.com/JuliaOpt/Clp.jl.git
INFO: Installing BinDeps v0.2.14
INFO: Installing Cbc v0.0.7
INFO: Installing Clp v0.0.7
INFO: Installing MathProgBase v0.2.0
INFO: Installing URIParser v0.0.2
INFO: Building Cbc
INFO: REQUIRE updated.
ERROR: no method addvar!(ClpMathProgModel,Int64,Float64,Int64)
 in linprogsolvertest at /home/idunning/pkgtest/.julia/v0.2/MathProgBase/test/linproginterface.jl:116
 in include at boot.jl:238
at /home/idunning/pkgtest/.julia/v0.2/Clp/test/runtests.jl:7
INFO: REQUIRE updated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.