
Richard Guenther wrote:
On Tue, Apr 14, 2009 at 3:02 PM, Roberto Bagnara bagnara@cs.unipr.it wrote:
We are pleased to announce the availability of PPL 0.10.1, a new release of the Parma Polyhedra Library.
It seems to build and test ok on {i586,ia64,ppc,ppc64,s390,x86_64}-linux but I get
PASS: nnc_writepolyhedron1 /bin/sh: line 4: 29952 Segmentation fault ${dir}$tst FAIL: memory1 ====================================== 1 of 191 tests failed Please report to ppl-devel@cs.unipr.it ======================================
on s390x-linux. Does the testsuite stop after the first error?
Hi Richard.
The testsuite does not proceed after the first directory that gives an error. In your case, the `tests/Polyhedron' directory produced that error and the `tests/Grid' directory is the only subdirectory of `tests' that has not been tested because of that error.
If not, what is memory1 testing?
It tests the PPL features that allow to recover after an out-of-memory error, i.e., when std::bad_alloc is thrown. It does so by limiting the amount of memory available to the process, attempting some expensive computation, catching std:bad_alloc, and restart. The key function is this one:
bool guarded_compute_open_hypercube_generators(dimension_type dimension, unsigned long max_memory_in_bytes) { try { limit_memory(max_memory_in_bytes); compute_open_hypercube_generators(dimension); return true; } catch (const std::bad_alloc&) { nout << "out of virtual memory" << endl; return false; } catch (...) { exit(1); } // Should never get here. exit(1); }
From the fact that you observe this failure, I gather that the configure script found a version of GMP compiled with -fexceptions. Unfortunately, this is not always enough. For instance, on the Itanium the test fails because of the libunwind bug reported in
http://lists.gnu.org/archive/html/libunwind-devel/2008-09/msg00001.html
Hence the test is disabled if defined(__ia64). I don't know what the problem could be on s390x-linux. Do you know if there is an s390x-linux machine we can obtain access to for the purpose of debugging? Cheers,
Roberto