Ask Your Question

Unable to build sage with Python 2

asked 2018-07-12 18:34:50 +0200

number123 gravatar image

updated 2018-07-12 19:37:52 +0200

I set export SAGE_CHECK="yes" to run tests on the spkgs before running make -j5. This gives me another build breaking error, despite using python 2 to build sage

Sage version: 8.3rc0 OS fedora 28 linux_86_x64

Last section from ppl-1.2.p1.log or see pastebin:

In file included from ../../src/Pointset_Powerset_defs.hh:1454,
                 from ../../src/algorithms.hh:28,
                 from ../../src/ppl_include_files.hh:18,
                 from ../../src/ppl_header.hh:38,
                 from ../../tests/ppl_test.hh:27,
../../src/Pointset_Powerset_templates.hh: In instantiation of 'Parma_Polyhedra_Library::Pointset_Powerset<PSET>::Pointset_Powerset(const Parma_Polyhedra_Library::Pointset_Powerset<QH>&, Parma_Polyhedra_Library::Complexity_Class) [with QH = Parma_Polyhedra_Library::Box<Parma_Polyhedra_Library::Interval<__gmp_expr<__mpq_struct [1], __mpq_struct [1]>, Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned int, Parma_Polyhedra_Library::Test::Rational_Real_Open_Interval_Info_Policy> > >; PSET = Parma_Polyhedra_Library::NNC_Polyhedron]':
../../src/Pointset_Powerset_inlines.hh:262:43:   required from 'bool Parma_Polyhedra_Library::Pointset_Powerset<PSET>::geometrically_equals(const 

Parma_Polyhedra_Library::Pointset_Powerset<PSET>&) const [with PSET = 
Parma_Polyhedra_Library::Box<Parma_Polyhedra_Library::Interval<__gmp_expr<__mpq_struct [1], __mpq_struct [1]>, Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned int, Parma_Polyhedra_Library::Test::Rational_Real_Open_Interval_Info_Policy> > >]'   required from here

../../src/Pointset_Powerset_templates.hh:66:29: internal compiler error: in type_dependent_expression_p, at cp/pt.c:25100
          y_end = y.end(); i != y_end; ++i) {
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <> for instructions.
    Preprocessed source stored into /tmp/ccb8H3zx.out file, please attach this to your bugreport.
    make[7]: *** [Makefile:1245: equals1.o] Error 1
    Error testing package ppl-1.2.p1

edit retag flag offensive close merge delete


Which OS ? which sage version ? which environment variables ? pointer to the whole log ?

tmonteil gravatar imagetmonteil ( 2018-07-12 18:47:44 +0200 )edit

Linux federa 28. The only environment variables I set are SAGE_CHECK and MAKE. I will have put the log file on pastebin.

number123 gravatar imagenumber123 ( 2018-07-12 19:10:27 +0200 )edit

To skip testing for ppl, set SAGE_CHECK_PACKAGES='!python2,!python3,!ppl'. (The Python 2 and Python 3 packages are known to fail their tests.) It is worth knowing which packages build (should be all of them), which pass their test suites (looks like ppl fails on your system, and it would also be good to know the version of gcc on your machine), and whether Sage's doctests pass (run make ptestlong to run them all).

John Palmieri gravatar imageJohn Palmieri ( 2018-07-12 19:35:01 +0200 )edit

@John Palmierigcc (GCC) 8.1.1 20180502 (Red Hat 8.1.1-1). I read on the github page that python test suite is already disabled, quote:

"Python's test suite has been disabled by default, because it causes failures on most systems. To renable the Python testsuite, set the environment variable SAGE_CHECK_PACKAGES to "python"

  • What do I have to do before running make again?
  • And should i run make ptestlong before running make -j5 or after it?
  • PPL is for numerical optimisation, is it not a bad idea to skip tests for it?
  • What's the difference between make ptest and make ptestlong? Doesn't the latter test external dependencies like maple etc
number123 gravatar imagenumber123 ( 2018-07-12 19:41:22 +0200 )edit

You should be able to run make again and it should pick up where it left off. make ptestlong first builds Sage (if necessary) and then runs its tests, so you can do that (actually make -j5 ptestlong) instead of make -j5.

Using SAGE_CHECK=yes at all is optional; the hope is that Sage's use of each component package is tested in Sage's own test suite. In the case of ppl, it looks like some compiler incompatibility: gcc 8 is pretty new. So such a test failure is not necessarily a catastrophe.

You run the basic tests with make ptest; some other tests take a longer time to run, and they are only run with make ptestlong. Neither one tests optional external packages like maple unless you explicitly ask them too.

John Palmieri gravatar imageJohn Palmieri ( 2018-07-12 20:06:13 +0200 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2018-07-12 20:03:34 +0200

slelievre gravatar image

updated 2018-07-12 20:07:11 +0200

The most usual way to build Sage is to unpack the tarball, optionally set MAKE='make -jN' with N of your choice (usually 2, 4, 8 depending on the number of cpu cores available), and run make.

Running make test, make ptest, make testlong or make ptestlong is an extra step to check whether all examples and tests in Sage's documentation give the expected output. Not every one goes to that trouble.

Setting SAGE_CHECK is an even further step whose effect is, for each package shipped by Sage, to run the tests provided by that package (independent of Sage). I would guess that even less people set SAGE_CHECK than run make ptestlong.

Thanks for caring, and please report any bugs you encounter.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2018-07-12 18:34:50 +0200

Seen: 473 times

Last updated: Jul 12 '18