Hello! Qualche giorno fa ho scaricato e installato l'ultima (0.6.1) versione della PPL, e sto facendo qualche esperimento usando la sua interfaccia verso Sicstus Prolog. In particolare sono interessato agli operatori di rimozione di dimensioni: 1) ppl_Polyhedron_remove_higher_dimensions/2 2) ppl_Polyhedron_remove_dimensions/2 Tutto bene con il primo, meno con il secondo, che sembra non eliminare la variabile voluta e che mantiene quindi la dimensione del poliedro originale. Puo' darsi che mi sbagli, ma per prudenza ho pensato di mandarvi questa mail e di allegare anche un piccolo programma cosicche' possiate riprodurre il mio 'esperimento'. L'output del programma allegato segue in fondo a questa mail. Spero possiate verificare se sia io a scrivere codice sbagliato o se non vi sia qualche sorta di bug nell'API verso Sicstus. Vi ringrazio molto, Jacopo Mantovani Artificial Intelligence Laboratory DIST - University of Genova http://www.ai.dist.unige.it/jacopo SICStus 3.10.0 (x86-linux-glibc2.2): Tue Dec 17 15:24:21 CET 2002 Licensed to dist.unige.it | ?- yes % source_info | ?- compile(prova). % compiling /home/staff/jacopo/work/ppl/prova.pl... % compiling /usr/lib/ppl/ppl_sicstus.pl... % loading foreign resource /usr/lib/ppl/ppl_sicstus.so in module user % compiled /usr/lib/ppl/ppl_sicstus.pl in module user, 30 msec 16112 bytes % compiled /home/staff/jacopo/work/ppl/prova.pl in module user, 30 msec 22076 bytes yes % source_info | ?- init. PPL versione 0.6.1 This is the Parma Polyhedra Library (PPL) version 0.6.1. Copyright (C) 2001-2004 Roberto Bagnara <bagnara@cs.unipr.it>. The PPL is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by the GNU C++ compiler version 3.3.4 (Debian 1:3.3.4-13). Report bugs to ppl-devel@cs.unipr.it. For the most up-to-date information see the Parma Polyhedra Library site: http://www.cs.unipr.it/ppl/ . -- Using ppl_Polyhedron_remove_higher_dimensions -- Constraints before: [1*A>=0,1*B>=0,-1*B>= -2,-1*A>= -2] Generators before: [point(2*A+2*B),point(2*A),point(2*B),point(0)] Dimension before: 2 Constraints after: [1*A>=0,-1*A>= -2] Generators after: [point(2*A),point(0)] Dimension after: 1 -- Using ppl_Polyhedron_remove_dimensions -- Constraints before: [1*A>=0,1*B>=0,-1*B>= -2,-1*A>= -2] Generators before: [point(2*A+2*B),point(2*A),point(2*B),point(0)] Dimension before: 2 Constraints after: [1*A>=0,1*B>=0,-1*B>= -2,-1*A>= -2] Generators after: [point(2*A+2*B),point(2*A),point(2*B),point(0)] Dimension after: 2 yes % source_info | ?-
Jacopo Mantovani wrote:
Qualche giorno fa ho scaricato e installato l'ultima (0.6.1) versione della PPL, e sto facendo qualche esperimento usando la sua interfaccia verso Sicstus Prolog. In particolare sono interessato agli operatori di rimozione di dimensioni:
1) ppl_Polyhedron_remove_higher_dimensions/2 2) ppl_Polyhedron_remove_dimensions/2
Tutto bene con il primo, meno con il secondo, che sembra non eliminare la variabile voluta e che mantiene quindi la dimensione del poliedro originale.
Puo' darsi che mi sbagli, ma per prudenza ho pensato di mandarvi questa mail e di allegare anche un piccolo programma cosicche' possiate riprodurre il mio 'esperimento'. L'output del programma allegato segue in fondo a questa mail. Spero possiate verificare se sia io a scrivere codice sbagliato o se non vi sia qualche sorta di bug nell'API verso Sicstus.
[...]
-- Using ppl_Polyhedron_remove_dimensions --
Constraints before: [1*A>=0,1*B>=0,-1*B>= -2,-1*A>= -2] Generators before: [point(2*A+2*B),point(2*A),point(2*B),point(0)] Dimension before: 2 Constraints after: [1*A>=0,1*B>=0,-1*B>= -2,-1*A>= -2] Generators after: [point(2*A+2*B),point(2*A),point(2*B),point(0)] Dimension after: 2 yes % source_info | ?-
Dear Jacopo, I reply to you in English because this is the official language of the list (in this particular case this is especially important because the main maintainer of the Prolog interface is Pat Hill). I have tried to reproduce the problem you observe, but I could not. I am using SICStus 3.11.1 because that is the only version I have at the moment, and the release 0.6.1 of the PPL: the same you use. Below the signature you can find the output I get. By the way: what is the "% source_info" string you have in your output? The first thing to do is the following: after compiling the PPL with `make', please run the regression tests with `make check' and see if you see any failure. Then come back to us and we will proceed from there. Ciao, Roberto P.S. I attach your test program again in case someone on this list has SICStus 3.10.0 handy. The attachment in your message was filtered out due to a misconfiguration of our mailing list software (just fixed). The attached program is identical to yours with the exception that it assumes the most common installation path (`/usr/local' instead of `/usr'). -- Prof. Roberto Bagnara Computer Science Group Department of Mathematics, University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:bagnara@cs.unipr.it $ sicstus SICStus 3.11.1 (x86-linux-glibc2.3): Fri Feb 20 18:38:25 CET 2004 Licensed to math.unipr.it | ?- compile(prova). % compiling /tmp/prova.pl... % compiling /usr/local/lib/ppl/ppl_sicstus.pl... % loading foreign resource /usr/local/lib/ppl/ppl_sicstus.so in module user % compiled /usr/local/lib/ppl/ppl_sicstus.pl in module user, 10 msec 16096 bytes % compiled /tmp/prova.pl in module user, 20 msec 21412 bytes yes | ?- init. PPL versione 0.6.1 This is the Parma Polyhedra Library (PPL) version 0.6.1. Copyright (C) 2001-2004 Roberto Bagnara <bagnara@cs.unipr.it>. The PPL is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by the GNU C++ compiler version 3.4.2. Report bugs to ppl-devel@cs.unipr.it. For the most up-to-date information see the Parma Polyhedra Library site: http://www.cs.unipr.it/ppl/ . -- Using ppl_Polyhedron_remove_higher_dimensions -- Constraints before: [1*A>=0,1*B>=0,-1*B>= -2,-1*A>= -2] Generators before: [point(2*A+2*B),point(2*A),point(2*B),point(0)] Dimension before: 2 Constraints after: [1*A>=0,-1*A>= -2] Generators after: [point(2*A),point(0)] Dimension after: 1 -- Using ppl_Polyhedron_remove_dimensions -- Constraints before: [1*A>=0,1*B>=0,-1*B>= -2,-1*A>= -2] Generators before: [point(2*A+2*B),point(2*A),point(2*B),point(0)] Dimension before: 2 Constraints after: [1*A>=0,-1*A>= -2] Generators after: [point(2*A),point(0)] Dimension after: 1 yes | ?-
Hello again, Roberto Bagnara wrote:
The first thing to do is the following: after compiling the PPL with `make', please run the regression tests with `make check' and see if you see any failure. Then come back to us and we will proceed from there.
I followed your instructions, and I attach here the (final) results of the check phase. Actually, three so-called 'expected failures' are reported, and I suppose that they can be the cause of the wrong behaviour of my version of the PPL.. Meanwhile, I try to install the PPL on some other machine here in the lab. Thank you very much, Jacopo. -- Jacopo Mantovani Artificial Intelligence Laboratory DIST - University of Genova http://www.ai.dist.unige.it/jacopo ... creating watchdog1 make[3]: Leaving directory `/root/ppl-0.6.1/tests' make check-TESTS make[3]: Entering directory `/root/ppl-0.6.1/tests' PASS: CbecomesNNC1 PASS: NNCminimize1 PASS: NNCminimize2 PASS: NNCminimize3 PASS: NNCminimize4 PASS: NNCminimize5 PASS: NNCminimize6 PASS: addconstraint1 PASS: addconstraint2 PASS: addconstraint3 PASS: addconstraints1 PASS: addconstraints2 PASS: addconstraints3 PASS: addconstraints4 PASS: addconstraints5 PASS: addconstraints6 PASS: addconstraints7 PASS: addconstraints8 PASS: addconstraints9 PASS: addconstraints10 PASS: addconstraints11 PASS: addconstraints12 PASS: addconstraints13 PASS: adddimensions1 PASS: adddimensions2 PASS: adddimensions3 PASS: adddimensions4 PASS: adddimensions5 PASS: adddimensions6 PASS: adddimensions7 PASS: adddimensions8 PASS: adddimensions9 PASS: adddimensions10 PASS: adddimensions11 PASS: adddimensions12 PASS: adddimensions13 PASS: addgenerator1 PASS: addgenerator2 PASS: addgenerator3 PASS: addgenerator4 PASS: addgenerators1 PASS: addgenerators2 PASS: addgenerators3 PASS: addgenerators4 PASS: addgenerators5 PASS: addgenerators6 PASS: addgenerators7 PASS: addgenerators8 PASS: addgenerators9 PASS: addgenerators10 XFAIL: addgenerators11 PASS: addgenerators12 PASS: addgenerators13 PASS: affineimage1 PASS: affineimage2 PASS: affineimage3 PASS: affineimage4 PASS: affineimage5 PASS: affineimage6 PASS: affineimage7 PASS: affineimage8 PASS: affinepreimage1 PASS: affinepreimage2 PASS: affinepreimage3 PASS: affinepreimage4 PASS: affinepreimage5 PASS: affinepreimage6 PASS: affinepreimage7 PASS: affinepreimage8 PASS: affinepreimage9 PASS: affinepreimage10 PASS: affinetrans PASS: append1 PASS: append2 PASS: ascii_dump_load1 PASS: ascii_dump_load2 PASS: ascii_dump_load3 PASS: ascii_dump_load4 PASS: ascii_dump_load5 PASS: ascii_dump_load6 PASS: ascii_dump_load7 PASS: bgp99extrapolation1 PASS: bgp99extrapolation2 PASS: bhrz03widening1 PASS: bhrz03widening2 PASS: bhrz03widening3 PASS: bhrz03widening4 PASS: bhrz03widening5 PASS: bhrz03widening6 PASS: bhrz03widening7 PASS: bhrz03widening8 PASS: bhrz03widening9 PASS: bhrz03widening10 PASS: bhrz03widening11 PASS: bhrz03widening12 PASS: bhrz03widening13 PASS: bhrz03widening14 PASS: bhrz03widening15 PASS: bhrz03widening16 PASS: bhrz03widening17 PASS: bhrz03widening18 PASS: bhrz03widening19 PASS: bhz03widening1 PASS: bhz03widening2 PASS: bhz03widening3 PASS: bhz03widening4 PASS: bhz03widening5 PASS: bhz03widening6 PASS: bounded1 PASS: boundedh79extrapolation1 PASS: bounds1 PASS: bounds2 PASS: boundingbox1 PASS: boundingbox2 PASS: boundingbox3 PASS: boundingbox4 PASS: boundingbox5 PASS: concatenate1 PASS: concatenate2 PASS: concatenate3 PASS: concatenate4 PASS: concatenate5 PASS: concatenate6 PASS: constraints1 PASS: constraints2 PASS: constraints3 PASS: constraints4 PASS: contains1 PASS: contains2 PASS: contains3 PASS: contains4 PASS: contains5 PASS: disjoint1 PASS: disjoint2 PASS: disjoint3 PASS: dualhypercubes PASS: empty1 PASS: exceptions1 PASS: exceptions2 PASS: exceptions3 PASS: expanddim1 PASS: expanddim2 PASS: folddims1 PASS: folddims2 PASS: generalizedaffineimage1 PASS: generalizedaffineimage2 PASS: generalizedaffineimage3 PASS: generalizedaffineimage4 PASS: generalizedaffineimage5 PASS: generalizedaffineimage6 PASS: generalizedaffineimage7 PASS: generalizedaffineimage8 PASS: generalizedaffineimage9 PASS: generalizedaffineimage10 PASS: generalizedaffineimage11 PASS: generalizedaffineimage12 PASS: generators1 PASS: generators2 PASS: generators3 PASS: generators4 PASS: generators5 PASS: generators6 PASS: h79widening1 PASS: h79widening2 PASS: h79widening3 PASS: h79widening4 PASS: h79widening5 PASS: h79widening6 PASS: h79widening7 PASS: intersection1 PASS: intersection2 PASS: intersection3 PASS: intersection4 PASS: intersection5 PASS: intersection6 PASS: intersection7 PASS: intersection8 PASS: intersection9 PASS: intersection10 PASS: intersection11 PASS: limitedbhrz03extrapolation1 PASS: limitedh79extrapolation1 PASS: limitedh79extrapolation2 PASS: limitedh79extrapolation3 PASS: limitedh79extrapolation4 PASS: linearpartition1 PASS: linearpartition2 PASS: linearpartition3 PASS: linexpression1 PASS: mc91 PASS: memory1 PASS: minconstraints1 PASS: minconstraints2 PASS: minconstraints3 PASS: minconstraints4 PASS: mingenerators1 PASS: mingenerators2 PASS: mingenerators3 PASS: onepoint PASS: permute PASS: polydifference1 PASS: polydifference2 PASS: polydifference3 PASS: polydifference4 PASS: polydifference5 PASS: polydifference6 PASS: polydifference7 PASS: polydifference8 PASS: polyhull1 PASS: polyhull2 PASS: polyhull3 PASS: polyhull4 PASS: polyhull5 PASS: polyhull6 PASS: polyhull7 PASS: polyhull8 PASS: polyhull9 PASS: polyhull10 PASS: randphull1 PASS: randphull2 PASS: relations1 PASS: relations2 PASS: relations3 PASS: relations4 PASS: relations5 PASS: relations6 PASS: relations7 PASS: relations8 PASS: relations9 PASS: relations10 PASS: relations11 PASS: relations12 PASS: relations13 PASS: relations14 PASS: relations15 PASS: relations16 PASS: relations17 PASS: relations18 PASS: relations19 PASS: removedim1 PASS: removedim2 PASS: removedim3 PASS: removedim4 PASS: removedim5 PASS: removedim6 PASS: removedim7 PASS: removedim8 PASS: removedim9 PASS: removedim10 PASS: mapdim1 PASS: mapdim2 PASS: mapdim3 PASS: max_min1 PASS: max_min2 PASS: smm1 PASS: timeelapse1 PASS: timeelapse2 PASS: timeelapse3 PASS: timeelapse4 PASS: timeelapse5 PASS: timeelapse6 PASS: timeelapse7 PASS: timeelapse8 PASS: topclosed1 PASS: topclosed2 PASS: topclosed3 PASS: topclosure1 PASS: topclosure2 PASS: topclosure3 PASS: topclosure4 PASS: universe1 PASS: universe2 PASS: universe3 PASS: universe4 PASS: universe5 PASS: universe6 PASS: writeconsys1 PASS: writegensys1 PASS: writegensys2 PASS: writegensys3 PASS: writepolyhedron1 PASS: writepolyhedron2 PASS: writepolyhedron3 PASS: writerelation1 PASS: writevariable1 PASS: nnc_addconstraint2 PASS: nnc_addconstraint3 PASS: nnc_addconstraints1 PASS: nnc_addconstraints2 PASS: nnc_addconstraints3 PASS: nnc_addconstraints4 PASS: nnc_addconstraints5 PASS: nnc_addconstraints6 PASS: nnc_addconstraints7 PASS: nnc_addconstraints8 PASS: nnc_addconstraints9 PASS: nnc_addconstraints10 PASS: nnc_addconstraints13 PASS: nnc_adddimensions1 PASS: nnc_adddimensions2 PASS: nnc_adddimensions3 PASS: nnc_adddimensions4 PASS: nnc_adddimensions9 PASS: nnc_adddimensions12 PASS: nnc_addgenerator3 PASS: nnc_addgenerators1 PASS: nnc_addgenerators2 PASS: nnc_addgenerators3 PASS: nnc_addgenerators4 PASS: nnc_addgenerators5 PASS: nnc_addgenerators6 PASS: nnc_addgenerators9 PASS: nnc_addgenerators10 PASS: nnc_addgenerators12 PASS: nnc_addgenerators13 PASS: nnc_affineimage1 PASS: nnc_affineimage2 PASS: nnc_affineimage3 PASS: nnc_affineimage4 PASS: nnc_affineimage5 PASS: nnc_affineimage6 PASS: nnc_affineimage7 PASS: nnc_affineimage8 PASS: nnc_affinepreimage1 PASS: nnc_affinepreimage2 PASS: nnc_affinepreimage3 PASS: nnc_affinepreimage4 PASS: nnc_affinepreimage5 PASS: nnc_affinepreimage6 PASS: nnc_affinepreimage7 PASS: nnc_affinepreimage8 PASS: nnc_affinepreimage9 PASS: nnc_affinepreimage10 PASS: nnc_affinetrans PASS: nnc_append1 PASS: nnc_append2 PASS: nnc_ascii_dump_load1 PASS: nnc_ascii_dump_load2 PASS: nnc_ascii_dump_load3 PASS: nnc_ascii_dump_load6 PASS: nnc_ascii_dump_load7 PASS: nnc_bgp99extrapolation1 PASS: nnc_bgp99extrapolation2 PASS: nnc_bhrz03widening1 PASS: nnc_bhrz03widening2 PASS: nnc_bhrz03widening3 PASS: nnc_bhrz03widening5 PASS: nnc_bhrz03widening6 PASS: nnc_bhrz03widening8 PASS: nnc_bhrz03widening9 PASS: nnc_bhrz03widening10 PASS: nnc_bhrz03widening11 PASS: nnc_bhrz03widening12 PASS: nnc_bounded1 PASS: nnc_boundedh79extrapolation1 PASS: nnc_boundingbox1 PASS: nnc_boundingbox3 PASS: nnc_boundingbox5 PASS: nnc_bounds1 PASS: nnc_bounds2 PASS: nnc_concatenate1 PASS: nnc_concatenate2 PASS: nnc_concatenate3 PASS: nnc_concatenate4 PASS: nnc_concatenate5 PASS: nnc_concatenate6 PASS: nnc_constraints1 PASS: nnc_constraints2 PASS: nnc_constraints3 PASS: nnc_constraints4 PASS: nnc_contains1 PASS: nnc_contains2 PASS: nnc_disjoint1 PASS: nnc_disjoint2 PASS: nnc_empty1 PASS: nnc_exceptions1 PASS: nnc_exceptions3 PASS: nnc_expanddim1 PASS: nnc_folddims1 PASS: nnc_generalizedaffineimage1 PASS: nnc_generalizedaffineimage2 PASS: nnc_generalizedaffineimage3 PASS: nnc_generalizedaffineimage5 PASS: nnc_generalizedaffineimage6 PASS: nnc_generalizedaffineimage11 PASS: nnc_generators1 PASS: nnc_generators2 PASS: nnc_generators3 PASS: nnc_generators4 PASS: nnc_generators5 PASS: nnc_generators6 PASS: nnc_h79widening1 PASS: nnc_h79widening2 PASS: nnc_h79widening4 PASS: nnc_h79widening5 PASS: nnc_h79widening6 PASS: nnc_h79widening7 PASS: nnc_intersection1 PASS: nnc_intersection2 PASS: nnc_intersection3 PASS: nnc_intersection4 PASS: nnc_intersection5 PASS: nnc_intersection6 PASS: nnc_intersection7 PASS: nnc_intersection8 PASS: nnc_intersection9 PASS: nnc_intersection10 PASS: nnc_intersection11 PASS: nnc_limitedbhrz03extrapolation1 PASS: nnc_limitedh79extrapolation1 PASS: nnc_limitedh79extrapolation2 XFAIL: nnc_limitedh79extrapolation3 PASS: nnc_limitedh79extrapolation4 PASS: nnc_linearpartition1 PASS: nnc_linearpartition2 PASS: nnc_linearpartition3 PASS: nnc_mc91 PASS: nnc_minconstraints1 PASS: nnc_minconstraints2 PASS: nnc_mingenerators1 PASS: nnc_mingenerators2 PASS: nnc_onepoint PASS: nnc_permute XFAIL: nnc_polydifference1 PASS: nnc_polydifference3 PASS: nnc_polydifference4 PASS: nnc_polydifference6 PASS: nnc_polydifference7 PASS: nnc_polyhull1 PASS: nnc_polyhull2 PASS: nnc_polyhull3 PASS: nnc_polyhull4 PASS: nnc_polyhull5 PASS: nnc_polyhull6 PASS: nnc_polyhull7 PASS: nnc_polyhull8 PASS: nnc_polyhull9 PASS: nnc_polyhull10 PASS: nnc_randphull1 PASS: nnc_randphull2 PASS: nnc_relations1 PASS: nnc_relations2 PASS: nnc_relations3 PASS: nnc_relations4 PASS: nnc_relations5 PASS: nnc_relations6 PASS: nnc_relations7 PASS: nnc_relations8 PASS: nnc_relations9 PASS: nnc_relations10 PASS: nnc_relations12 PASS: nnc_relations13 PASS: nnc_relations14 PASS: nnc_relations15 PASS: nnc_relations16 PASS: nnc_relations19 PASS: nnc_removedim1 PASS: nnc_removedim2 PASS: nnc_removedim3 PASS: nnc_removedim4 PASS: nnc_removedim5 PASS: nnc_removedim6 PASS: nnc_removedim8 PASS: nnc_removedim9 PASS: nnc_removedim10 PASS: nnc_mapdim1 PASS: nnc_mapdim2 PASS: nnc_mapdim3 PASS: nnc_max_min1 PASS: nnc_max_min2 PASS: nnc_smm1 PASS: nnc_timeelapse2 PASS: nnc_timeelapse5 PASS: nnc_timeelapse6 PASS: nnc_timeelapse7 PASS: nnc_timeelapse8 PASS: nnc_universe1 PASS: nnc_universe2 PASS: nnc_universe3 PASS: nnc_universe4 PASS: nnc_universe5 PASS: nnc_writepolyhedron2 PASS: nnc_writepolyhedron3 PASS: watchdog1 ======================================================= All 484 tests behaved as expected (3 expected failures) ======================================================= make[3]: Leaving directory `/root/ppl-0.6.1/tests' make[2]: Leaving directory `/root/ppl-0.6.1/tests' make[1]: Leaving directory `/root/ppl-0.6.1/tests' Making check in interfaces make[1]: Entering directory `/root/ppl-0.6.1/interfaces' Making check in C make[2]: Entering directory `/root/ppl-0.6.1/interfaces/C' make[2]: Nothing to be done for `check'. make[2]: Leaving directory `/root/ppl-0.6.1/interfaces/C' Making check in Prolog make[2]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog' Making check in Ciao make[3]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/Ciao' make[4]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/Ciao' make check-local make[5]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/Ciao' make[5]: Nothing to be done for `check-local'. make[5]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/Ciao' make[4]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/Ciao' make[3]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/Ciao' Making check in GNU make[3]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/GNU' make[4]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/GNU' make check-local make[5]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/GNU' make[5]: Nothing to be done for `check-local'. make[5]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/GNU' make[4]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/GNU' make[3]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/GNU' Making check in SICStus make[3]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' make[4]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' make check-local make[5]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' make[5]: Nothing to be done for `check-local'. make[5]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' make[4]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' make[3]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' Making check in SWI make[3]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SWI' make[4]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SWI' make make[5]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SWI' make[6]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SWI' make[6]: Nothing to be done for `all-am'. make[6]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SWI' make[5]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SWI' make check-local make[5]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SWI' make[5]: Nothing to be done for `check-local'. make[5]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SWI' make[4]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SWI' make[3]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SWI' Making check in XSB make[3]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/XSB' make[4]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/XSB' make check-local make[5]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/XSB' make[5]: Nothing to be done for `check-local'. make[5]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/XSB' make[4]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/XSB' make[3]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/XSB' Making check in YAP make[3]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/YAP' make[4]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/YAP' make check-local make[5]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/YAP' make[5]: Nothing to be done for `check-local'. make[5]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/YAP' make[4]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/YAP' make[3]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/YAP' make[3]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog' make[3]: Nothing to be done for `check-am'. make[3]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog' make[2]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog' make[2]: Entering directory `/root/ppl-0.6.1/interfaces' make[2]: Nothing to be done for `check-am'. make[2]: Leaving directory `/root/ppl-0.6.1/interfaces' make[1]: Leaving directory `/root/ppl-0.6.1/interfaces' Making check in demos make[1]: Entering directory `/root/ppl-0.6.1/demos' Making check in ppl_lcdd make[2]: Entering directory `/root/ppl-0.6.1/demos/ppl_lcdd' Making check in examples make[3]: Entering directory `/root/ppl-0.6.1/demos/ppl_lcdd/examples' make[3]: Nothing to be done for `check'. make[3]: Leaving directory `/root/ppl-0.6.1/demos/ppl_lcdd/examples' make[3]: Entering directory `/root/ppl-0.6.1/demos/ppl_lcdd' make[3]: Nothing to be done for `check-am'. make[3]: Leaving directory `/root/ppl-0.6.1/demos/ppl_lcdd' make[2]: Leaving directory `/root/ppl-0.6.1/demos/ppl_lcdd' Making check in ppl_lpsol make[2]: Entering directory `/root/ppl-0.6.1/demos/ppl_lpsol' Making check in examples make[3]: Entering directory `/root/ppl-0.6.1/demos/ppl_lpsol/examples' make[3]: Nothing to be done for `check'. make[3]: Leaving directory `/root/ppl-0.6.1/demos/ppl_lpsol/examples' make[3]: Entering directory `/root/ppl-0.6.1/demos/ppl_lpsol' make check-local make[4]: Entering directory `/root/ppl-0.6.1/demos/ppl_lpsol' make[4]: Nothing to be done for `check-local'. make[4]: Leaving directory `/root/ppl-0.6.1/demos/ppl_lpsol' make[3]: Leaving directory `/root/ppl-0.6.1/demos/ppl_lpsol' make[2]: Leaving directory `/root/ppl-0.6.1/demos/ppl_lpsol' make[2]: Entering directory `/root/ppl-0.6.1/demos' make[2]: Nothing to be done for `check-am'. make[2]: Leaving directory `/root/ppl-0.6.1/demos' make[1]: Leaving directory `/root/ppl-0.6.1/demos' Making check in doc make[1]: Entering directory `/root/ppl-0.6.1/doc' make[1]: Nothing to be done for `check'. make[1]: Leaving directory `/root/ppl-0.6.1/doc' Making check in m4 make[1]: Entering directory `/root/ppl-0.6.1/m4' make[1]: Nothing to be done for `check'. make[1]: Leaving directory `/root/ppl-0.6.1/m4' make[1]: Entering directory `/root/ppl-0.6.1' make[1]: Nothing to be done for `check-am'. make[1]: Leaving directory `/root/ppl-0.6.1'
Jacopo Mantovani wrote:
Roberto Bagnara wrote:
The first thing to do is the following: after compiling the PPL with `make', please run the regression tests with `make check' and see if you see any failure. Then come back to us and we will proceed from there.
I followed your instructions, and I attach here the (final) results of the check phase. Actually, three so-called 'expected failures' are reported, and I suppose that they can be the cause of the wrong behaviour of my version of the PPL..
Hi Jacopo, no, the three expected failures are OK. What is wrong, instead, is the following fragment of the file you attached: [...] Making check in SICStus make[3]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' make[4]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' make check-local make[5]: Entering directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' make[5]: Nothing to be done for `check-local'. make[5]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' make[4]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' make[3]: Leaving directory `/root/ppl-0.6.1/interfaces/Prolog/SICStus' [...] This is not what is supposed to happen: there is regression testing code in the SICStus directory and this is executed, _unless_ the presence of SICStus was not detected at library configuration time. At some stage, the configure script will print checking for sicstus... What does it print afterwards? Can you also please send the file `config.log' that was created by the `configure' script? Ciao, Roberto -- Prof. Roberto Bagnara Computer Science Group Department of Mathematics, University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:bagnara@cs.unipr.it
Hi again (and sorry for bothering so much) Roberto Bagnara wrote:
This is not what is supposed to happen: there is regression testing code in the SICStus directory and this is executed, _unless_ the presence of SICStus was not detected at library configuration time. At some stage, the configure script will print
checking for sicstus...
What does it print afterwards?
Oh, you're absolutely right! It seems that the configure script could NOT detect Sicstus! And this was because of a stupid error of mine: I did not set the PATH variable properly. Anyway, now it works, but my original problem still remains. According to the config.log file, now the problem is the following: - Sicstus is now detected. - A header file called sicstus.h is NOT detected. I checked, and that header is located at /usr/local/software/sicstus/include/sicstus/ which is already in the PATH.
Can you also please send the file `config.log' that was created by the `configure' script?
Yes, sure! I attach it here. Thank you very much indeed!! Jacopo.
Jacopo Mantovani wrote:
According to the config.log file, now the problem is the following:
- Sicstus is now detected. - A header file called sicstus.h is NOT detected.
I checked, and that header is located at
/usr/local/software/sicstus/include/sicstus/
which is already in the PATH.
If by `PATH' you mean the environment variable with the same name, this would not help, as this is for executables only. You must make sure your `sicstus.h' is found by the C and C++ compilers you are using (notice that the SICStus interface is written partly in C and partly in C++). You have several ways out. The most convenient ones are the following: 1) You can decide that including <sicstus/sicstus.h> from C/C++ programs is something generally useful in your site, in which case you should create a symbolic link to `/usr/local/software/sicstus/include/sicstus' in a place that is normally searched by your compilers, such as `/usr/local/include/sicstus'. 2) Alternatively, you can use the `CPPFLAGS' environment variable as explained in the output of PPL's `configure --help'. So you would configure with a command like CPPFLAGS=-I/usr/local/software/sicstus/include /usr/local/src/ppl-0.6.1/configure ... When this is fixed, please run `make check' again and pay speciall attention to what happens in the `interface/Prolog/SICStus' directory. Ciao, Roberto -- Prof. Roberto Bagnara Computer Science Group Department of Mathematics, University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:bagnara@cs.unipr.it
Hi again! Now it works! I just copied all the header files in /usr/local/software/sicstus/include/sicstus/ to /usr/local/include/sicstus/ and everything went fine!! Thank you very much, now it's time to enjoy using the PPL :-) ciao ciao, Jacopo.
Jacopo Mantovani wrote:
Thank you very much, now it's time to enjoy using the PPL :-)
Good! In case you find yourself in need for more speed, remember to ask us about PPL 0.7. Ciao, Roberto -- Prof. Roberto Bagnara Computer Science Group Department of Mathematics, University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:bagnara@cs.unipr.it
participants (2)
-
Jacopo Mantovani -
Roberto Bagnara