Opened 8 years ago
Closed 7 years ago
#11444 closed defect (worksforme)
optional package cbc-2.3.p2.spkg does not build on some platforms on sage-4.7.1.alpha1
Reported by: | mariah | Owned by: | tbd |
---|---|---|---|
Priority: | minor | Milestone: | sage-duplicate/invalid/wontfix |
Component: | packages: optional | Keywords: | sd32 sd40.5 |
Cc: | ncohen, kcrisman, ddrake | Merged in: | |
Authors: | Reviewers: | Karl-Dieter Crisman, Dan Drake, John Perry | |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
The optional package cbc-2.3.p2.spkg does not build on skynet/eno (x86_64-Linux-core2-fc) on sage-4.7.1.alpha1:
... /usr/local/gcc-4.6.0/x86_64-Linux-core2-fc/bin/g++ -DHAVE_CONFIG_H -I. -I. -I../inc -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Clp/src -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Osi/src/OsiClp -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cbc/../Clp/inc -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglClique -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglDuplicateRow -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglFlowCover -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglGomory -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglKnapsackCover -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglMixedIntegerRounding -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglMixedIntegerRounding2 -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglOddHole -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglPreProcess -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglProbing -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglRedSplit -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglTwomir -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglLandP -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglResidualCapacity -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cgl/src/CglZeroHalf -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/CoinUtils/src -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cbc/../CoinUtils/inc -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Osi/src -I/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cbc/../Osi/inc -DCOIN_NO_CLP_MESSAGE -DUSE_CBCCONFIG -O3 -fomit-frame-pointer -pipe -DNDEBUG -pedantic-errors -Wimplicit -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -MT CbcEventHandler.lo -MD -MP -MF .deps/CbcEventHandler.Tpo -c CbcEventHandler.cpp -fPIC -DPIC -o .libs/CbcEventHandler.o cc1plus: warning: command line option '-Wimplicit' is valid for C/ObjC but not for C++ [enabled by default] In file included from CbcEventHandler.cpp:8:0: CbcEventHandler.hpp:137:43: error: 'NULL' was not declared in this scope make[2]: *** [CbcEventHandler.lo] Error 1 make[2]: Leaving directory `/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cbc/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/mariah/sage/sage-4.7.1.alpha1-x86_64-Linux-core2-fc/spkg/build/cbc-2.3.p2/src/Cbc' make: *** [all-recursive] Error 1 real 5m40.762s user 4m8.662s sys 0m49.002s sage: An error occurred while installing cbc-2.3.p2
Change History (13)
comment:1 Changed 8 years ago by
- Cc ncohen added
- Summary changed from optional package cbc-2.3.p2.spkg does not build on sage-4.7.1.alpha1 to optional package cbc-2.3.p2.spkg does not build on some platforms on sage-4.7.1.alpha1
comment:2 follow-up: ↓ 3 Changed 8 years ago by
Hellooooooo !!!
Well, this doctest has been written before GLPK got installed as a standard spkg. Since then, a function using LP needs not be optional anymore. On the other hand, if you have CBC or CPLEX installed, the LP will be solved with them instead of GLPK. The truth is this #optional keyword could be removed. The only occurrences of "#optional CBC" should appear in the file numerical/backends/coin_backend.pyx
Nathann
comment:3 in reply to: ↑ 2 Changed 8 years ago by
Replying to ncohen:
Hellooooooo !!!
Well, this doctest has been written before GLPK got installed as a standard spkg. Since then, a function using LP needs not be optional anymore. On the other hand, if you have CBC or CPLEX installed, the LP will be solved with them instead of GLPK. The truth is this #optional keyword could be removed. The only occurrences of "#optional CBC" should appear in the file numerical/backends/coin_backend.pyx
Interesting! So maybe we should open another ticket to fix that.
That doesn't explain this doctest, though I have to admit I rarely run optional doctests because they usually involve programs I don't have.
comment:4 follow-up: ↓ 5 Changed 8 years ago by
Then maybe this doctest should be removed. We've been adding a very hard one in #11324 anyway, so this small example could disappear without much to worry about. This is a problem that appears very often with LP solvers : they all give good answers, but it's a mess to write doctests when the answers have no reason to be unique :-)
If it's fine by you I can modify my patch at #11324 to fix it there !
Nathann
comment:5 in reply to: ↑ 4 ; follow-up: ↓ 7 Changed 8 years ago by
- Cc kcrisman added
Replying to ncohen:
Then maybe this doctest should be removed. We've been adding a very hard one in #11324 anyway, so this small example could disappear without much to worry about. This is a problem that appears very often with LP solvers : they all give good answers, but it's a mess to write doctests when the answers have no reason to be unique
:-)
If it's fine by you I can modify my patch at #11324 to fix it there !
Is there no way to generate a "canonical" answer from both packages? (Does that even make sense mathematically? I'm not familiar with the gale ryser theorem.) If not, I agree with Nathann.
comment:6 Changed 8 years ago by
- Keywords sd32 added
comment:7 in reply to: ↑ 5 Changed 8 years ago by
Is there no way to generate a "canonical" answer from both packages? (Does that even make sense mathematically? I'm not familiar with the gale ryser theorem.) If not, I agree with Nathann.
Not that I know. When I write doctests using LP, I try to find examples for which the solution is unique, but there are many matrices solving the gale-ryser proble (ryser's algorithm even lets one enumerate them), and the solvers have no reason to return one rather than the other. Adding a fake objective functions to make the answer unique on the same problem would touch the running time just to make the doctests easier to write, which clearly isn't a good idea :-D
Nathann
comment:8 Changed 7 years ago by
- Component changed from optional packages to packages
This is listed as a "high priority" bug for sage days 40.5, but sage-4.7.1 is way out of date, and the cbc package has since been updated to a newer version. Should the status of this ticket be changed to invalid or obsolete, if possible, or can someone test sage-5.0 on the systems reported as defective, or... something?
comment:9 follow-up: ↓ 10 Changed 7 years ago by
- Cc ddrake added
- Keywords sd40.5 added
- Milestone changed from sage-5.1 to sage-duplicate/invalid/wontfix
- Reviewers set to Karl-Dieter Crisman, Dan Drake, John Perry
- Status changed from new to needs_review
Dan Drake is just now trying sage -i cbc-2.7.5
(the current version according to http://sagemath.org/packages/optional/) with Sage 5.0 and the result is... it builds! He's running tests now.
comment:10 in reply to: ↑ 9 Changed 7 years ago by
Replying to kcrisman:
Dan Drake is just now trying
sage -i cbc-2.7.5
(the current version according to http://sagemath.org/packages/optional/) with Sage 5.0 and the result is... it builds! He's running tests now.
Does he have the same hardware? I know it builds on x86_64 with Phenom, and x86_32 Pentium something-or-other (I have an OLD computer at home :-)) and some other machine at work. i think the problem is whether it builds on the specific hardware listed.
comment:11 follow-up: ↓ 12 Changed 7 years ago by
sage -i cbc-2.7.5
works on skynet/eno (a Fedora machine, 64 bit, Linux 3.2.3, gcc 4.7.0) and almost all doctests pass -- there's one failure in cplex_backend.pyx
which I think is a typo.
[drake@eno sage-5.0]$ ./sage -tp 8 -only-optional=Coin devel/sage/sage/numerical/backends/cplex_backend.pyx Global iterations: 1 File iterations: 1 Using cached timings to run longest doctests first. Doctesting 1 file using 1 thread sage -t -only-optional=Coin devel/sage/sage/numerical/backends/cplex_backend.pyx ********************************************************************** File "/home/drake/sage-5.0/devel/sage-main/sage/numerical/backends/cplex_backend.pyx", line 424: sage: p.add_linear_constraints(2, None, 2, names=['foo','bar']) # optional - Coin Exception raised: Traceback (most recent call last): File "/home/drake/sage-5.0/local/bin/ncadoctest.py", line 1231, in run_one_test self.run_one_example(test, example, filename, compileflags) File "/home/drake/sage-5.0/local/bin/sagedoctest.py", line 38, in run_one_example OrigDocTestRunner.run_one_example(self, test, example, filename, compileflags) File "/home/drake/sage-5.0/local/bin/ncadoctest.py", line 1172, in run_one_example compileflags, 1) in test.globs File "<doctest __main__.example_0[3]>", line 1, in <module> p.add_linear_constraints(Integer(2), None, Integer(2), names=['foo','bar']) # optional - Coin###line 424: sage: p.add_linear_constraints(2, None, 2, names=['foo','bar']) # optional - Coin NameError: name 'p' is not defined **********************************************************************
Should that test be "optional - CPLEX"?
If all we care about is building on eno with gcc 4.7, this works fine. Here's info on eno: http://wiki.sagemath.org/skynet#Eno
comment:12 in reply to: ↑ 11 Changed 7 years ago by
- Status changed from needs_review to positive_review
Should that test be "optional - CPLEX"?
As discussed and relevant to comment:2, this definitely was a typo.
If all we care about is building on eno with gcc 4.7, this works fine. Here's info on eno: http://wiki.sagemath.org/skynet#Eno
As regards John's comment, this is exactly the place where the problem is reported.
I've reported the typo to the appropriate person, so this is good to go.
comment:13 Changed 7 years ago by
- Component changed from packages to optional packages
- Resolution set to worksforme
- Status changed from positive_review to closed
This did install normally on 4.7.1.alpha1 on Mac OS X 10.6. So perhaps it's just certain Linuces that don't work.
On a related note, there seems to be exactly one set of doctests which even require this package optionally. I'm surprised that numerical/backends/ and the graph stuff doesn't. I'm cc:ing Nathann about this. After all, hopefully optional tests are at least sometimes run for major releases...
And when I run them, I get
And all the ones with 'generic backend' fail as well... Nathann?