Static linking and running on both windows and linux

Hello,
For a project I am working on with a collaborator, I have the extreme points and the rays of a polyhedron. I have to obtain the facetious representation of this polyhedron. That is, I want a simple V to H conversion.
I have been working with polymake so far. My working code is:
#include <polymake/Main.h> #include <polymake/Matrix.h> #include <polymake/SparseMatrix.h> #include <polymake/Rational.h> using namespace polymake; int main(int argc, const char* argv[]) { try { Main pm; pm.set_application("polytope"); BigObject p("Polytope<Rational>"); std::vectorstd::string CoordinateLabels = { "extravar", "x1", "x2", "x3", "x4", "x5", "x6"}; std::vector<std::vector<Int>> Points; std::vector<Int> point; point = { 1,0,1,1,0,0,1 }; Points.push_back(point); point = { 1,1,0,0,1,1,0 }; Points.push_back(point); point = { 1,0,0,1,1,0,1 }; Points.push_back(point); point = { 1,1,0,0,1,1,0 }; Points.push_back(point); point = { 1,0,1,1,0,0,1 }; Points.push_back(point); point = { 1,1,0,0,1,1,0 }; Points.push_back(point); point = { 1,0,1,1,0,0,1 }; Points.push_back(point); point = { 1,0,0,0,1,1,1 }; Points.push_back(point); point = { 0,1,0,0,0,0,0 }; Points.push_back(point); point = { 0,0,1,0,0,0,0 }; Points.push_back(point); point = { 0,0,0,1,0,0,0 }; Points.push_back(point); point = { 0,0,0,0,1,0,0 }; Points.push_back(point); point = { 0,0,0,0,0,1,0 }; Points.push_back(point); point = { 0,0,0,0,0,0,1 }; Points.push_back(point); p.take("VERTICES") << Points; const Matrix<Rational> f = p.give("FACETS"); cout << "facets" << endl << f << endl; cout << "Dimension of the facets matrix are " << f.rows() << " and " << f.cols() << endl; cout << "Printing the facets for easy reading" << endl; for (int i = 0; i < f.rows(); i++) { cout << " Facet " << i << ": "; Rational rhs = f(i, 0); for (int j = 1; j < f.cols(); j++) { Rational coef = f(i, j); if (coef.is_zero() == false) { cout << " + (" << coef << " " << CoordinateLabels[j] << ") "; } } cout << " >= - (" << rhs << ")" << endl; } const Matrix<Rational> affine_hull = p.give("AFFINE_HULL"); cout << "affine hull" << endl << affine_hull << endl; cout << "Dimension of the affine hull matrix are " << affine_hull.rows() << " and " << affine_hull.cols() << endl; cout << "Printing the affine hull for easy reading" << endl; for (int i = 0; i < affine_hull.rows(); i++) { printf("AffineHull %d: ", i); Rational rhs = affine_hull(i, 0); for (int j = 1; j < affine_hull.cols(); j++) { Rational coef = affine_hull(i, j); if (coef.is_zero() == false) { cout << " + (" << coef << " " << CoordinateLabels[j] << ") "; } } cout << " = - (" << rhs << ")" << endl; } } catch (const std::exception& ex) { std::cerr << "ERROR: " << ex.what() << endl; return 1; } return 0; }
The code can also be seen on godbolt at : https://godbolt.org/z/Ko7zq4z64
The output of the above program is:
polymake: used package ppl The Parma Polyhedra Library ([[wiki:external_software#PPL]]): A C++ library for convex polyhedra and other numerical abstractions. http://www.cs.unipr.it/ppl/
facets -1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 -1 0 1 0 1 0 0 -1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 0 0 1 0 0 0 0 0 0 1 -1 0 0 0 1 0 1 -1 0 0 0 0 1 1 1 0 0 0 0 0 0
Dimension of the facets matrix are 13 and 7 Printing the facets for easy reading Facet 0: + (1 x3) + (1 x5) >= - (-1) Facet 1: + (1 x3) >= - (0) Facet 2: + (1 x2) >= - (0) Facet 3: + (1 x2) + (1 x4) >= - (-1) Facet 4: + (1 x3) + (1 x4) >= - (-1) Facet 5: + (1 x4) >= - (0) Facet 6: + (1 x5) >= - (0) Facet 7: + (1 x1) >= - (0) Facet 8: + (1 x1) + (1 x6) >= - (-1) Facet 9: + (1 x6) >= - (0) Facet 10: + (1 x4) + (1 x6) >= - (-1) Facet 11: + (1 x5) + (1 x6) >= - (-1) Facet 12: >= - (1) affine hull
Dimension of the affine hull matrix are 0 and 7 Printing the affine hull for easy reading I have two queries:
(1) Is there a simple example that shows how the equivalent of the above functionality can be obtained in PPL via C/C+ code? I have looked at the PPL user manual, but I have to admit that it is quite forbidding in its size and details and it is not fully clear where in the document complete C/C++ examples are. I admit that this is possibly my lack of delving too deep into the manual.
I also notice that Polymake has solved this problem by calling PPL behind the scenes.
(2) Can the PPL code I write on Linux/WSL be used on a Windows Machine as well? I ask this because this is not a possibility in Polymake. Indeed, I was guided towards PPL as a result of my query on the Polymake forum. Polymake code cannot run on a Windows machine. I was wondering if PPL has this capability as suggested there. Please see that discussion at:
https://forum.polymake.org/viewtopic.php?f=8&p=3919
Thanks. Tryer

Hello Tryer.
What you are trying to achieve seems to be what the ppl_lcdd demo program (which is distributed along with the PPL) does. Here is an excerpt from its man page:
NAME ppl_lcdd - a PPL-based program for vertex/facet enumeration of convex polyhedra
SYNOPSIS ppl_lcdd [OPTION]... [FILE]
DESCRIPTION Reads an H-representation (resp., a V-representation) of a polyhedron and generates a V-representation (resp., an H-representation) of the same polyhedron.
See the cddlib Reference Manual for information on the file formats.
Regarding your other question, the PPL can be compiled for Windows using MinGW. It can also be compiled for Linux and the resulting executable can be run also under WSL. I recommend you use the version of PPL available in the devel branch of the Git repository available at
git://git.bugseng.com/ppl/ppl.git
Kind regards,
Roberto
On 06/03/22 13:43, anoninus wrote:
Hello,
For a project I am working on with a collaborator, I have the extreme points and the rays of a polyhedron. I have to obtain the facetious representation of this polyhedron. That is, I want a simple V to H conversion.
I have been working with polymake so far. My working code is:
#include <polymake/Main.h> #include <polymake/Matrix.h> #include <polymake/SparseMatrix.h> #include <polymake/Rational.h> using namespace polymake; int main(int argc, const char* argv[]) { try { Main pm; pm.set_application("polytope"); BigObject p("Polytope<Rational>"); std::vectorstd::string CoordinateLabels = { "extravar", "x1", "x2", "x3", "x4", "x5", "x6"}; std::vector<std::vector<Int>> Points; std::vector<Int> point; point = { 1,0,1,1,0,0,1 }; Points.push_back(point); point = { 1,1,0,0,1,1,0 }; Points.push_back(point); point = { 1,0,0,1,1,0,1 }; Points.push_back(point); point = { 1,1,0,0,1,1,0 }; Points.push_back(point); point = { 1,0,1,1,0,0,1 }; Points.push_back(point); point = { 1,1,0,0,1,1,0 }; Points.push_back(point); point = { 1,0,1,1,0,0,1 }; Points.push_back(point); point = { 1,0,0,0,1,1,1 }; Points.push_back(point); point = { 0,1,0,0,0,0,0 }; Points.push_back(point); point = { 0,0,1,0,0,0,0 }; Points.push_back(point); point = { 0,0,0,1,0,0,0 }; Points.push_back(point); point = { 0,0,0,0,1,0,0 }; Points.push_back(point); point = { 0,0,0,0,0,1,0 }; Points.push_back(point); point = { 0,0,0,0,0,0,1 }; Points.push_back(point); p.take("VERTICES") << Points; const Matrix<Rational> f = p.give("FACETS"); cout << "facets" << endl << f << endl; cout << "Dimension of the facets matrix are " << f.rows() << " and " << f.cols() << endl; cout << "Printing the facets for easy reading" << endl; for (int i = 0; i < f.rows(); i++) { cout << " Facet " << i << ": "; Rational rhs = f(i, 0); for (int j = 1; j < f.cols(); j++) { Rational coef = f(i, j); if (coef.is_zero() == false) { cout << " + (" << coef << " " << CoordinateLabels[j] << ") "; } } cout << " >= - (" << rhs << ")" << endl; } const Matrix<Rational> affine_hull = p.give("AFFINE_HULL"); cout << "affine hull" << endl << affine_hull << endl; cout << "Dimension of the affine hull matrix are " << affine_hull.rows() << " and " << affine_hull.cols() << endl; cout << "Printing the affine hull for easy reading" << endl; for (int i = 0; i < affine_hull.rows(); i++) { printf("AffineHull %d: ", i); Rational rhs = affine_hull(i, 0); for (int j = 1; j < affine_hull.cols(); j++) { Rational coef = affine_hull(i, j); if (coef.is_zero() == false) { cout << " + (" << coef << " " << CoordinateLabels[j] << ") "; } } cout << " = - (" << rhs << ")" << endl; } } catch (const std::exception& ex) { std::cerr << "ERROR: " << ex.what() << endl; return 1; } return 0; }
The code can also be seen on godbolt at : https://godbolt.org/z/Ko7zq4z64 https://godbolt.org/z/Ko7zq4z64
The output of the above program is:
polymake: used package ppl The Parma Polyhedra Library ([[wiki:external_software#PPL]]): A C++ library for convex polyhedra and other numerical abstractions. http://www.cs.unipr.it/ppl/ http://www.cs.unipr.it/ppl/
facets -1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 -1 0 1 0 1 0 0 -1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 0 0 1 0 0 0 0 0 0 1 -1 0 0 0 1 0 1 -1 0 0 0 0 1 1 1 0 0 0 0 0 0
Dimension of the facets matrix are 13 and 7 Printing the facets for easy reading Facet 0: + (1 x3) + (1 x5) >= - (-1) Facet 1: + (1 x3) >= - (0) Facet 2: + (1 x2) >= - (0) Facet 3: + (1 x2) + (1 x4) >= - (-1) Facet 4: + (1 x3) + (1 x4) >= - (-1) Facet 5: + (1 x4) >= - (0) Facet 6: + (1 x5) >= - (0) Facet 7: + (1 x1) >= - (0) Facet 8: + (1 x1) + (1 x6) >= - (-1) Facet 9: + (1 x6) >= - (0) Facet 10: + (1 x4) + (1 x6) >= - (-1) Facet 11: + (1 x5) + (1 x6) >= - (-1) Facet 12: >= - (1) affine hull
Dimension of the affine hull matrix are 0 and 7 Printing the affine hull for easy reading I have two queries:
(1) Is there a simple example that shows how the equivalent of the above functionality can be obtained in PPL via C/C+ code? I have looked at the PPL user manual, but I have to admit that it is quite forbidding in its size and details and it is not fully clear where in the document complete C/C++ examples are. I admit that this is possibly my lack of delving too deep into the manual.
I also notice that Polymake has solved this problem by calling PPL behind the scenes.
(2) Can the PPL code I write on Linux/WSL be used on a Windows Machine as well? I ask this because this is not a possibility in Polymake. Indeed, I was guided towards PPL as a result of my query on the Polymake forum. Polymake code cannot run on a Windows machine. I was wondering if PPL has this capability as suggested there. Please see that discussion at:
https://forum.polymake.org/viewtopic.php?f=8&p=3919 https://forum.polymake.org/viewtopic.php?f=8&p=3919
Thanks. Tryer
PPL-devel mailing list PPL-devel@cs.unipr.it https://www.cs.unipr.it/mailman/listinfo/ppl-devel

Hi Roberto,
Thanks. Based on looking at the c++ code of ppl_lcdd, I have indeed been able to figure out the way to do the V to H convex hull computation.
However, I have some difficulty understanding the following:
On Tue, Mar 8, 2022 at 2:05 AM Roberto Bagnara bagnara@cs.unipr.it wrote:
Regarding your other question, the PPL can be compiled for Windows using MinGW.
I have looked at the installation instructions at:
https://www.bugseng.com/parma-polyhedra-library/ppl-portability https://www.bugseng.com/ppl-requirements https://www.bugseng.com/ppl-download
I have installed MinGW on my Windows computer. Are you saying that I should *install* PPL using MinGW? On a linux machine, after downloading the bzip2 tar archive, I was indeed able to run ./configure, make and make install just fine. On a windows machine, I do not know how to *install* the library so that the system is able to "see" the ppl.hh file, for instance. In other words, what are the equivalent steps to take on the windows machine to ./configure, make and make install?
Install and README.configure links on the ppl-download page do not seem to point at any specific page. They currently point to the same page.
Or, is it that I should just store the contents of the folder obtained after extracting the zip file on https://www.bugseng.com/ppl-download on any location of my choice on the windows machine. Then, should I just inform my IDE on Windows (Visual Studio 2019) to find the header files in this folder? For e.g., the header file, ppl.hh is located in the src/ subfolder. Of course, then, as you suggest, I will change the settings in my IDE to use the MinGW toolchain instead of the MSVC toolchain.
Thank you. Tryer.

Hello Tryer.
What I meant is that you could cross-compile the PPL under Linux for Windows. We do this routinely. I redid it just now, so as to be sure:
$ mkdir gmpbuild gmpinstall pplbuild pplinstall $ cd /home/roberto/gmpbuild $ /home/roberto/gmp-6.2.1/configure --host=x86_64-w64-mingw32 --prefix=/home/roberto/gmpinstall --enable-fat --enable-cxx --disable-shared --enable-static $ make $ make install $ cd /home/roberto/pplbuild $ /home/roberto/ppl/configure --host=x86_64-w64-mingw32 --prefix=/home/roberto/pplinstall --with-cxxflags=-std=c++11 --with-gmp=/home/roberto/gmpinstall --enable-optimization --disable-debugging --disable-documentation --enable-interfaces="c cxx" --enable-ppl_lcdd --disable-ppl_lpsol --disable-ppl_pips --enable-instantiations=Polyhedron --disable-shared --enable-static --disable-assertions $ make $ make install $ ls -R /home/roberto/pplinstall/ /home/roberto/pplinstall/: bin include lib share
/home/roberto/pplinstall/bin: ppl-config.exe ppl_lcdd.exe
/home/roberto/pplinstall/include: ppl_c.h ppl.hh
/home/roberto/pplinstall/lib: libppl.a libppl_c.a libppl_c.la libppl.la
/home/roberto/pplinstall/share: aclocal doc man
/home/roberto/pplinstall/share/aclocal: ppl_c.m4 ppl.m4
/home/roberto/pplinstall/share/doc: ppl
/home/roberto/pplinstall/share/doc/ppl: BUGS COPYING fdl.txt NEWS README.configure TODO ChangeLog CREDITS gpl.txt README README.doc
/home/roberto/pplinstall/share/man: man1 man3
/home/roberto/pplinstall/share/man/man1: ppl-config.1 ppl_lcdd.1
/home/roberto/pplinstall/share/man/man3: libppl.3 libppl_c.3
Note:
0) If you are on a Debian-like Linux distro, you need to install the g++-mingw-w64 package and possibly others. 1) I am enabling static libraries and disabling shared libraries because of the subject of this thread (I usually do the opposite); 2) Your reference to Visual Studio 2019 confuses me: I do not think there is binary compatibility between MSVC and MinGW. I think you should compiler and link everything with MinGW.
Again: do not use any bzip2 old distribution of PPL: use the Git version, devel branch. Kind regards,
Roberto
On 08/03/22 20:28, anoninus wrote:
Hi Roberto,
Thanks. Based on looking at the c++ code of ppl_lcdd, I have indeed been able to figure out the way to do the V to H convex hull computation.
However, I have some difficulty understanding the following:
On Tue, Mar 8, 2022 at 2:05 AM Roberto Bagnara <bagnara@cs.unipr.it mailto:bagnara@cs.unipr.it> wrote:
Regarding your other question, the PPL can be compiled for Windows using MinGW.
I have looked at the installation instructions at:
https://www.bugseng.com/parma-polyhedra-library/ppl-portability https://www.bugseng.com/parma-polyhedra-library/ppl-portability https://www.bugseng.com/ppl-requirements https://www.bugseng.com/ppl-requirements https://www.bugseng.com/ppl-download https://www.bugseng.com/ppl-download
I have installed MinGW on my Windows computer. Are you saying that I should *install* PPL using MinGW? On a linux machine, after downloading the bzip2 tar archive, I was indeed able to run ./configure, make and make install just fine. On a windows machine, I do not know how to *install* the library so that the system is able to "see" the ppl.hh file, for instance. In other words, what are the equivalent steps to take on the windows machine to ./configure, make and make install?
Install and README.configure links on the ppl-download page do not seem to point at any specific page. They currently point to the same page.
Or, is it that I should just store the contents of the folder obtained after extracting the zip file on https://www.bugseng.com/ppl-download https://www.bugseng.com/ppl-download on any location of my choice on the windows machine. Then, should I just inform my IDE on Windows (Visual Studio 2019) to find the header files in this folder? For e.g., the header file, ppl.hh is located in the src/ subfolder. Of course, then, as you suggest, I will change the settings in my IDE to use the MinGW toolchain instead of the MSVC toolchain.
Thank you. Tryer.

Hi Roberto,
Thank you for the detailed instructions. I have been able to slowly reach the following step:
/home/roberto/ppl/configure --host=x86_64-w64-mingw32 --prefix=/home/roberto/pplinstall --with-cxxflags=-std=c++11 --with-gmp=/home/roberto/gmpinstall --enable-optimization --disable-debugging --disable-documentation --enable-interfaces="c cxx" --enable-ppl_lcdd --disable-ppl_lpsol --disable-ppl_pips --enable-instantiations=Polyhedron --disable-shared --enable-static --disable-assertions
but am stuck here. The reason for this is that the git repo that I cloned does not have a file called configure.
That is, I went to my home directory and as suggested, I issued:
git clone git://git.bugseng.com/ppl/ppl.git
This creates a /ppl/ subfolder. However, this subfolder does not have a file called configure. It has "BUGS", "ChangeLog",...,config.sub, configure.ac, COPYING,...
skipping over the configure file
Hence, when I issue the equivalent of the command above on my machine, I get:
bash: /home/Tryer/ppl/configure: No such file or directory
Could you please check whether the git branch above does indeed have the configure file?
Thanks. Tryer
On Wed, Mar 9, 2022 at 2:35 AM Roberto Bagnara bagnara@cs.unipr.it wrote:
Hello Tryer.
What I meant is that you could cross-compile the PPL under Linux for Windows. We do this routinely. I redid it just now, so as to be sure:
$ mkdir gmpbuild gmpinstall pplbuild pplinstall $ cd /home/roberto/gmpbuild $ /home/roberto/gmp-6.2.1/configure --host=x86_64-w64-mingw32 --prefix=/home/roberto/gmpinstall --enable-fat --enable-cxx --disable-shared --enable-static $ make $ make install $ cd /home/roberto/pplbuild $ /home/roberto/ppl/configure --host=x86_64-w64-mingw32 --prefix=/home/roberto/pplinstall --with-cxxflags=-std=c++11 --with-gmp=/home/roberto/gmpinstall --enable-optimization --disable-debugging --disable-documentation --enable-interfaces="c cxx" --enable-ppl_lcdd --disable-ppl_lpsol --disable-ppl_pips --enable-instantiations=Polyhedron --disable-shared --enable-static --disable-assertions $ make $ make install $ ls -R /home/roberto/pplinstall/ /home/roberto/pplinstall/: bin include lib share
/home/roberto/pplinstall/bin: ppl-config.exe ppl_lcdd.exe
/home/roberto/pplinstall/include: ppl_c.h ppl.hh
/home/roberto/pplinstall/lib: libppl.a libppl_c.a libppl_c.la libppl.la
/home/roberto/pplinstall/share: aclocal doc man
/home/roberto/pplinstall/share/aclocal: ppl_c.m4 ppl.m4
/home/roberto/pplinstall/share/doc: ppl
/home/roberto/pplinstall/share/doc/ppl: BUGS COPYING fdl.txt NEWS README.configure TODO ChangeLog CREDITS gpl.txt README README.doc
/home/roberto/pplinstall/share/man: man1 man3
/home/roberto/pplinstall/share/man/man1: ppl-config.1 ppl_lcdd.1
/home/roberto/pplinstall/share/man/man3: libppl.3 libppl_c.3
Note:
- If you are on a Debian-like Linux distro, you need to install the g++-mingw-w64 package and possibly others.
- I am enabling static libraries and disabling shared libraries because of the subject of this thread (I usually do the opposite);
- Your reference to Visual Studio 2019 confuses me: I do not think there is binary compatibility between MSVC and MinGW. I think you should compiler and link everything with MinGW.
Again: do not use any bzip2 old distribution of PPL: use the Git version, devel branch. Kind regards,
Roberto
On 08/03/22 20:28, anoninus wrote:
Hi Roberto,
Thanks. Based on looking at the c++ code of ppl_lcdd, I have indeed been
able to figure out the way to do the V to H convex hull computation.
However, I have some difficulty understanding the following:
On Tue, Mar 8, 2022 at 2:05 AM Roberto Bagnara <bagnara@cs.unipr.it
mailto:bagnara@cs.unipr.it> wrote:
Regarding your other question, the PPL can be compiled for Windows
using
MinGW.
I have looked at the installation instructions at:
https://www.bugseng.com/parma-polyhedra-library/ppl-portability <
https://www.bugseng.com/parma-polyhedra-library/ppl-portability%3E
https://www.bugseng.com/ppl-requirements%3E
https://www.bugseng.com/ppl-download%3E
I have installed MinGW on my Windows computer. Are you saying that I
should *install* PPL using MinGW? On a linux machine, after downloading the bzip2 tar archive, I was indeed able to run ./configure, make and make install just fine. On a windows machine, I do not know how to *install* the library so that the system is able to "see" the ppl.hh file, for instance. In other words, what are the equivalent steps to take on the windows machine to ./configure, make and make install?
Install and README.configure links on the ppl-download page do not seem
to point at any specific page. They currently point to the same page.
Or, is it that I should just store the contents of the folder obtained
after extracting the zip file on
https://www.bugseng.com/ppl-download%3E on any location of my choice on the windows machine.
Then, should I just inform my IDE on Windows (Visual Studio 2019) to
find the header files in this folder? For e.g., the header file, ppl.hh is located in the src/ subfolder. Of course, then, as you suggest, I will change the settings in my IDE to use the MinGW toolchain instead of the MSVC toolchain.
Thank you. Tryer.

Hello Tryer.
You need to help yourself more: in the repository there is a README file at the top level, which points to README.configure, which contains a section
10. Using the Git Sources
Kind regards,
Roberto
On 3/9/22 15:20, anoninus wrote:
Hi Roberto,
Thank you for the detailed instructions. I have been able to slowly reach the following step:
/home/roberto/ppl/configure --host=x86_64-w64-mingw32 --prefix=/home/roberto/pplinstall --with-cxxflags=-std=c++11 --with-gmp=/home/roberto/gmpinstall --enable-optimization --disable-debugging --disable-documentation --enable-interfaces="c cxx" --enable-ppl_lcdd --disable-ppl_lpsol --disable-ppl_pips --enable-instantiations=Polyhedron --disable-shared --enable-static --disable-assertions
but am stuck here. The reason for this is that the git repo that I cloned does not have a file called configure.
That is, I went to my home directory and as suggested, I issued:
git clone git://git.bugseng.com/ppl/ppl.git http://git.bugseng.com/ppl/ppl.git
This creates a /ppl/ subfolder. However, this subfolder does not have a file called configure. It has "BUGS", "ChangeLog",...,config.sub, configure.ac http://configure.ac, COPYING,...
skipping over the configure file
Hence, when I issue the equivalent of the command above on my machine, I get:
bash: /home/Tryer/ppl/configure: No such file or directory
Could you please check whether the git branch above does indeed have the configure file?
Thanks. Tryer
On Wed, Mar 9, 2022 at 2:35 AM Roberto Bagnara <bagnara@cs.unipr.it mailto:bagnara@cs.unipr.it> wrote:
Hello Tryer. What I meant is that you could cross-compile the PPL under Linux for Windows. We do this routinely. I redid it just now, so as to be sure: $ mkdir gmpbuild gmpinstall pplbuild pplinstall $ cd /home/roberto/gmpbuild $ /home/roberto/gmp-6.2.1/configure --host=x86_64-w64-mingw32 --prefix=/home/roberto/gmpinstall --enable-fat --enable-cxx --disable-shared --enable-static $ make $ make install $ cd /home/roberto/pplbuild $ /home/roberto/ppl/configure --host=x86_64-w64-mingw32 --prefix=/home/roberto/pplinstall --with-cxxflags=-std=c++11 --with-gmp=/home/roberto/gmpinstall --enable-optimization --disable-debugging --disable-documentation --enable-interfaces="c cxx" --enable-ppl_lcdd --disable-ppl_lpsol --disable-ppl_pips --enable-instantiations=Polyhedron --disable-shared --enable-static --disable-assertions $ make $ make install $ ls -R /home/roberto/pplinstall/ /home/roberto/pplinstall/: bin include lib share /home/roberto/pplinstall/bin: ppl-config.exe ppl_lcdd.exe /home/roberto/pplinstall/include: ppl_c.h ppl.hh /home/roberto/pplinstall/lib: libppl.a libppl_c.a libppl_c.la <http://libppl_c.la> libppl.la <http://libppl.la> /home/roberto/pplinstall/share: aclocal doc man /home/roberto/pplinstall/share/aclocal: ppl_c.m4 ppl.m4 /home/roberto/pplinstall/share/doc: ppl /home/roberto/pplinstall/share/doc/ppl: BUGS COPYING fdl.txt NEWS README.configure TODO ChangeLog CREDITS gpl.txt README README.doc /home/roberto/pplinstall/share/man: man1 man3 /home/roberto/pplinstall/share/man/man1: ppl-config.1 ppl_lcdd.1 /home/roberto/pplinstall/share/man/man3: libppl.3 libppl_c.3 Note: 0) If you are on a Debian-like Linux distro, you need to install the g++-mingw-w64 package and possibly others. 1) I am enabling static libraries and disabling shared libraries because of the subject of this thread (I usually do the opposite); 2) Your reference to Visual Studio 2019 confuses me: I do not think there is binary compatibility between MSVC and MinGW. I think you should compiler and link everything with MinGW. Again: do not use any bzip2 old distribution of PPL: use the Git version, devel branch. Kind regards, Roberto On 08/03/22 20:28, anoninus wrote: > Hi Roberto, > > Thanks. Based on looking at the c++ code of ppl_lcdd, I have indeed been able to figure out the way to do the V to H convex hull computation. > > However, I have some difficulty understanding the following: > > On Tue, Mar 8, 2022 at 2:05 AM Roberto Bagnara <bagnara@cs.unipr.it <mailto:bagnara@cs.unipr.it> <mailto:bagnara@cs.unipr.it <mailto:bagnara@cs.unipr.it>>> wrote: > > Regarding your other question, the PPL can be compiled for Windows using > MinGW. > > > I have looked at the installation instructions at: > > https://www.bugseng.com/parma-polyhedra-library/ppl-portability <https://www.bugseng.com/parma-polyhedra-library/ppl-portability> <https://www.bugseng.com/parma-polyhedra-library/ppl-portability <https://www.bugseng.com/parma-polyhedra-library/ppl-portability>> > https://www.bugseng.com/ppl-requirements <https://www.bugseng.com/ppl-requirements> <https://www.bugseng.com/ppl-requirements <https://www.bugseng.com/ppl-requirements>> > https://www.bugseng.com/ppl-download <https://www.bugseng.com/ppl-download> <https://www.bugseng.com/ppl-download <https://www.bugseng.com/ppl-download>> > > I have installed MinGW on my Windows computer. Are you saying that I should *install* PPL using MinGW? On a linux machine, after downloading the bzip2 tar archive, I was indeed able to run ./configure, make and make install just fine. On a windows machine, I do not know how to *install* the library so that the system is able to "see" the ppl.hh file, for instance. In other words, what are the equivalent steps to take on the windows machine to ./configure, make and make install? > > Install and README.configure links on the ppl-download page do not seem to point at any specific page. They currently point to the same page. > > Or, is it that I should just store the contents of the folder obtained after extracting the zip file on > https://www.bugseng.com/ppl-download <https://www.bugseng.com/ppl-download> <https://www.bugseng.com/ppl-download <https://www.bugseng.com/ppl-download>> on any location of my choice on the windows machine. > Then, should I just inform my IDE on Windows (Visual Studio 2019) to find the header files in this folder? For e.g., the header file, ppl.hh is located in the src/ subfolder. Of course, then, as you suggest, I will change the settings in my IDE to use the MinGW toolchain instead of the MSVC toolchain. > > Thank you. > Tryer. > >

Hi Roberto,
Your suggestions in this thread worked and I was indeed able to confirm on a windows machine that my pure PPL code worked just fine. Unfortunately, for us (and no fault of PPL), the rest of our code which uses CPLEX and MinGW is just impossibly difficult to configure correctly in Visual Studio IDE. In any case, we have put that on the back burner for now.
On WSL (on this same windows machine), I installed through the procedure specified in README.configure which is:
$ tar jxf ppl-x.y.tar.bz2 (after downloading the .bz2 file from bugseng website) $ ./configure $ make $ su Password: <root password> $ make install
My PPL C/C++ code (available at https://godbolt.org/z/qq8oxqb9W) worked perfectly there. (If it would help other users of PPL, they can freely use the code suitably modified for their purposes. It provides a clean C++ example of performing V to H conversion via PPL) My makefile performs the following compiling/linking commands:
g++ -m64 -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DVSCODE -c -g -DIL_STD -D_LINDEBUG -I. -std=c++14 -MMD -MP -MF "build/Debug/GNU-Linux/_ext/511e4115/Main.o.d" -o build/Debug/GNU-Linux/_ext/511e4115/Main.o ../src/Main.cpp mkdir -p dist/Debug/GNU-Linux g++ -m64 -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DVSCODE -o dist/Debug/GNU-Linux/linux build/Debug/GNU-Linux/_ext/511e4115/Main.o -lm -lpthread -ldl -lppl -lgmp
The above workflow works perfectly fine and I am able to obtain the facetial representation of the vertices. So far, so good.
Now, however, I recall you mentioning earlier in the thread that the above method of installation is NOT recommended. You had suggested to use the git development branch instead. So, I removed libppl files from /usr/local/lib and tried to redo it along your suggested recommendation. That is:
I navigated to home. git clone git://git.bugseng.com/ppl/ppl.git Navigate to ppl subfolder. run "autoreconf" ./configure --with-cxxflags=-std=c++11 --enable-optimization --disable-debugging --disable-documentation --enable-interfaces="c cxx" --enable-ppl_lcdd --disable-ppl_lpsol --disable-ppl_pips --enable-instantiations=Polyhedron --disable-shared --enable-static --disable-assertions Run "make" Run "sudo make install"
With this done, I tried to compile the same code. Now, I get a series of undefined references during linking stage:
g++ -m64 -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DVSCODE -o dist/Debug/GNU-Linux/linux build/Debug/GNU-Linux/_ext/511e4115/Main.o -lm -lpthread -ldl -lppl -lgmp /usr/bin/ld: /usr/local/lib/libppl.a(Constraint.o): in function `Parma_Polyhedra_Library::IO_Operators::operator<<(std::ostream&, Parma_Polyhedra_Library::Constraint const&)': Constraint.cc:(.text+0x1597): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Constraint.cc:(.text+0x1641): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Constraint.cc:(.text+0x1793): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Generator.o): in function `Parma_Polyhedra_Library::Generator::fancy_print(std::ostream&) const': Generator.cc:(.text+0x166f): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Generator.cc:(.text+0x16eb): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Linear_Expression.o):Linear_Expression.cc:(.text._ZNK23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_dumpERSo[_ZNK23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_dumpERSo]+0x8f): more undefined references to `operator<<(std::ostream&, __mpz_struct const*)' follow /usr/bin/ld: /usr/local/lib/libppl.a(Linear_Expression.o): in function `Parma_Polyhedra_Library::Linear_Expression_Impl<Parma_Polyhedra_Library::Sparse_Row>::ascii_load(std::istream&)': Linear_Expression.cc:(.text._ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_10Sparse_RowEE10ascii_loadERSi[_ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_10Sparse_RowEE10ascii_loadERSi]+0x196): undefined reference to `operator>>(std::istream&, __mpz_struct*)' /usr/bin/ld: /usr/local/lib/libppl.a(Linear_Expression.o): in function `Parma_Polyhedra_Library::Linear_Expression_Impl<Parma_Polyhedra_Library::Dense_Row>::ascii_load(std::istream&)': Linear_Expression.cc:(.text._ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_loadERSi[_ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_loadERSi]+0x12d): undefined reference to `operator>>(std::istream&, __mpz_struct*)' /usr/bin/ld: /usr/local/lib/libppl.a(CO_Tree.o): in function `Parma_Polyhedra_Library::CO_Tree::dump_subtree(Parma_Polyhedra_Library::CO_Tree::tree_iterator)': CO_Tree.cc:(.text+0x98c): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Sparse_Row.o): in function `Parma_Polyhedra_Library::Sparse_Row::ascii_dump(std::ostream&) const': Sparse_Row.cc:(.text+0x3a48): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Sparse_Row.o): in function `Parma_Polyhedra_Library::Sparse_Row::ascii_load(std::istream&)': Sparse_Row.cc:(.text+0x63b9): undefined reference to `operator>>(std::istream&, __mpz_struct*)' /usr/bin/ld: /usr/local/lib/libppl.a(Dense_Row.o): in function `Parma_Polyhedra_Library::Dense_Row::ascii_dump(std::ostream&) const': Dense_Row.cc:(.text+0xe43): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Dense_Row.o): in function `Parma_Polyhedra_Library::Dense_Row::ascii_load(std::istream&)': Dense_Row.cc:(.text+0x105f): undefined reference to `operator>>(std::istream&, __mpz_struct*)' /usr/bin/ld: /usr/local/lib/libppl.a(Congruence.o): in function `Parma_Polyhedra_Library::Congruence::ascii_dump(std::ostream&) const': Congruence.cc:(.text+0x346): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Congruence.o): in function `Parma_Polyhedra_Library::Congruence::ascii_load(std::istream&)': Congruence.cc:(.text+0x483): undefined reference to `operator>>(std::istream&, __mpz_struct*)' /usr/bin/ld: /usr/local/lib/libppl.a(Congruence.o): in function `Parma_Polyhedra_Library::IO_Operators::operator<<(std::ostream&, Parma_Polyhedra_Library::Congruence const&)': Congruence.cc:(.text+0x131f): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Congruence.cc:(.text+0x1368): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Congruence.cc:(.text+0x13b9): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Congruence.cc:(.text+0x1451): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Grid_Generator.o): in function `Parma_Polyhedra_Library::Grid_Generator::fancy_print(std::ostream&) const': Grid_Generator.cc:(.text+0x137f): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Grid_Generator.o):Grid_Generator.cc:(.text+0x141e): more undefined references to `operator<<(std::ostream&, __mpz_struct const*)' follow collect2: error: ld returned 1 exit status
Is there a way these undefined references can be resolved? In this method, I did not get any error in the ./configure, make or sudo make install step. If needed, I can share the log of these commands.
Thanks again for your patient help. Tryer
On Thu, Mar 10, 2022 at 1:02 AM Roberto Bagnara bagnara@cs.unipr.it wrote:
Hello Tryer.
You need to help yourself more: in the repository there is a README file at the top level, which points to README.configure, which contains a section
- Using the Git Sources
Kind regards,
Roberto

Hi Tryer.
The command line I see just before the errors looks strange:
g++ -m64 -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DVSCODE -o dist/Debug/GNU-Linux/linux build/Debug/GNU-Linux/_ext/511e4115/Main.o -lm -lpthread -ldl -lppl -lgmp
I would expect to see -lgmpxx there, and in fact the undefined symbols listed in the errors you report all concerns things that are defined in the C++ interface of GMP.
A possible explanation is that your configure line
./configure --with-cxxflags=-std=c++11 --enable-optimization --disable-debugging --disable-documentation --enable-interfaces="c cxx" --enable-ppl_lcdd --disable-ppl_lpsol --disable-ppl_pips --enable-instantiations=Polyhedron --disable-shared --enable-static --disable-assertions
seems to miss a -with-gmp=PATH option.
See README.configure for more details. Kind regards,
Roberto
Prof. Roberto Bagnara Applied Formal Methods Laboratory Department of Mathematical, Physical and Computer Sciences University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:bagnara@cs.unipr.it
On 3/12/22 05:24, anoninus wrote:
Hi Roberto,
Your suggestions in this thread worked and I was indeed able to confirm on a windows machine that my pure PPL code worked just fine. Unfortunately, for us (and no fault of PPL), the rest of our code which uses CPLEX and MinGW is just impossibly difficult to configure correctly in Visual Studio IDE. In any case, we have put that on the back burner for now.
On WSL (on this same windows machine), I installed through the procedure specified in README.configure which is:
$ tar jxf ppl-x.y.tar.bz2 (after downloading the .bz2 file from bugseng website) $ ./configure $ make $ su Password: <root password> $ make install
My PPL C/C++ code (available at https://godbolt.org/z/qq8oxqb9W https://godbolt.org/z/qq8oxqb9W) worked perfectly there. (If it would help other users of PPL, they can freely use the code suitably modified for their purposes. It provides a clean C++ example of performing V to H conversion via PPL) My makefile performs the following compiling/linking commands:
g++ -m64 -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DVSCODE -c -g -DIL_STD -D_LINDEBUG -I. -std=c++14 -MMD -MP -MF "build/Debug/GNU-Linux/_ext/511e4115/Main.o.d" -o build/Debug/GNU-Linux/_ext/511e4115/Main.o ../src/Main.cpp mkdir -p dist/Debug/GNU-Linux g++ -m64 -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DVSCODE -o dist/Debug/GNU-Linux/linux build/Debug/GNU-Linux/_ext/511e4115/Main.o -lm -lpthread -ldl -lppl -lgmp
The above workflow works perfectly fine and I am able to obtain the facetial representation of the vertices. So far, so good.
Now, however, I recall you mentioning earlier in the thread that the above method of installation is NOT recommended. You had suggested to use the git development branch instead. So, I removed libppl files from /usr/local/lib and tried to redo it along your suggested recommendation. That is:
I navigated to home. git clone git://git.bugseng.com/ppl/ppl.git http://git.bugseng.com/ppl/ppl.git Navigate to ppl subfolder. run "autoreconf" ./configure --with-cxxflags=-std=c++11 --enable-optimization --disable-debugging --disable-documentation --enable-interfaces="c cxx" --enable-ppl_lcdd --disable-ppl_lpsol --disable-ppl_pips --enable-instantiations=Polyhedron --disable-shared --enable-static --disable-assertions Run "make" Run "sudo make install"
With this done, I tried to compile the same code. Now, I get a series of undefined references during linking stage:
g++ -m64 -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DVSCODE -o dist/Debug/GNU-Linux/linux build/Debug/GNU-Linux/_ext/511e4115/Main.o -lm -lpthread -ldl -lppl -lgmp /usr/bin/ld: /usr/local/lib/libppl.a(Constraint.o): in function `Parma_Polyhedra_Library::IO_Operators::operator<<(std::ostream&, Parma_Polyhedra_Library::Constraint const&)': Constraint.cc:(.text+0x1597): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Constraint.cc:(.text+0x1641): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Constraint.cc:(.text+0x1793): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Generator.o): in function `Parma_Polyhedra_Library::Generator::fancy_print(std::ostream&) const': Generator.cc:(.text+0x166f): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Generator.cc:(.text+0x16eb): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Linear_Expression.o):Linear_Expression.cc:(.text._ZNK23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_dumpERSo[_ZNK23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_dumpERSo]+0x8f): more undefined references to `operator<<(std::ostream&, __mpz_struct const*)' follow /usr/bin/ld: /usr/local/lib/libppl.a(Linear_Expression.o): in function `Parma_Polyhedra_Library::Linear_Expression_Impl<Parma_Polyhedra_Library::Sparse_Row>::ascii_load(std::istream&)': Linear_Expression.cc:(.text._ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_10Sparse_RowEE10ascii_loadERSi[_ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_10Sparse_RowEE10ascii_loadERSi]+0x196): undefined reference to `operator>>(std::istream&, __mpz_struct*)' /usr/bin/ld: /usr/local/lib/libppl.a(Linear_Expression.o): in function `Parma_Polyhedra_Library::Linear_Expression_Impl<Parma_Polyhedra_Library::Dense_Row>::ascii_load(std::istream&)': Linear_Expression.cc:(.text._ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_loadERSi[_ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_loadERSi]+0x12d): undefined reference to `operator>>(std::istream&, __mpz_struct*)' /usr/bin/ld: /usr/local/lib/libppl.a(CO_Tree.o): in function `Parma_Polyhedra_Library::CO_Tree::dump_subtree(Parma_Polyhedra_Library::CO_Tree::tree_iterator)': CO_Tree.cc:(.text+0x98c): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Sparse_Row.o): in function `Parma_Polyhedra_Library::Sparse_Row::ascii_dump(std::ostream&) const': Sparse_Row.cc:(.text+0x3a48): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Sparse_Row.o): in function `Parma_Polyhedra_Library::Sparse_Row::ascii_load(std::istream&)': Sparse_Row.cc:(.text+0x63b9): undefined reference to `operator>>(std::istream&, __mpz_struct*)' /usr/bin/ld: /usr/local/lib/libppl.a(Dense_Row.o): in function `Parma_Polyhedra_Library::Dense_Row::ascii_dump(std::ostream&) const': Dense_Row.cc:(.text+0xe43): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Dense_Row.o): in function `Parma_Polyhedra_Library::Dense_Row::ascii_load(std::istream&)': Dense_Row.cc:(.text+0x105f): undefined reference to `operator>>(std::istream&, __mpz_struct*)' /usr/bin/ld: /usr/local/lib/libppl.a(Congruence.o): in function `Parma_Polyhedra_Library::Congruence::ascii_dump(std::ostream&) const': Congruence.cc:(.text+0x346): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Congruence.o): in function `Parma_Polyhedra_Library::Congruence::ascii_load(std::istream&)': Congruence.cc:(.text+0x483): undefined reference to `operator>>(std::istream&, __mpz_struct*)' /usr/bin/ld: /usr/local/lib/libppl.a(Congruence.o): in function `Parma_Polyhedra_Library::IO_Operators::operator<<(std::ostream&, Parma_Polyhedra_Library::Congruence const&)': Congruence.cc:(.text+0x131f): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Congruence.cc:(.text+0x1368): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Congruence.cc:(.text+0x13b9): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: Congruence.cc:(.text+0x1451): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Grid_Generator.o): in function `Parma_Polyhedra_Library::Grid_Generator::fancy_print(std::ostream&) const': Grid_Generator.cc:(.text+0x137f): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)' /usr/bin/ld: /usr/local/lib/libppl.a(Grid_Generator.o):Grid_Generator.cc:(.text+0x141e): more undefined references to `operator<<(std::ostream&, __mpz_struct const*)' follow collect2: error: ld returned 1 exit status
Is there a way these undefined references can be resolved? In this method, I did not get any error in the ./configure, make or sudo make install step. If needed, I can share the log of these commands.
Thanks again for your patient help. Tryer
On Thu, Mar 10, 2022 at 1:02 AM Roberto Bagnara <bagnara@cs.unipr.it mailto:bagnara@cs.unipr.it> wrote:
Hello Tryer. You need to help yourself more: in the repository there is a README file at the top level, which points to README.configure, which contains a section 10. Using the Git Sources Kind regards, Roberto

Thanks Roberto for your help. That worked. I seem to finally be well installed.
On Sat, Mar 12, 2022 at 11:47 AM Roberto Bagnara bagnara@cs.unipr.it wrote:

Could I please request you to add my email to a daily digest?
I have tried it multiple times from different machines and I keep getting the error:
PPL-devel Subscription results The hidden token didn't match. Did your IP change?
On Sat, Mar 12, 2022 at 2:04 PM anoninus wundermonk@gmail.com wrote:
Thanks Roberto for your help. That worked. I seem to finally be well installed.
On Sat, Mar 12, 2022 at 11:47 AM Roberto Bagnara bagnara@cs.unipr.it wrote:

Hello,
It has been suggested to clone the library from the git repository and checkout the `devel` branch.
For e.g.,
https://www.cs.unipr.it/pipermail/ppl-devel/2021-February/019283.html https://www.cs.unipr.it/pipermail/ppl-devel/2022-March/019307.html https://www.cs.unipr.it/pipermail/ppl-devel/2021-October/019295.html
I have cloned the repository by doing:
$ git clone git://git.bugseng.com/ppl/ppl.git $ cd ppl ppl$ git branch -r :~/ppl$ git branch -r origin/COW origin/HEAD -> origin/master origin/MPI origin/alt_lgo origin/alt_nnc origin/altnum origin/bounded_arithmetic origin/compliance origin/deprecated_0_11_removal origin/floating_point origin/formatted_output origin/generalized_streams origin/grids origin/interfaces origin/lazy origin/master origin/octagons origin/pip origin/polynomials origin/polyops origin/positive origin/ppl-0_10-branch origin/ppl-0_11-branch origin/ppl-0_12-branch origin/ppl-0_3-branch origin/ppl-0_4-branch origin/ppl-0_5-branch origin/ppl-0_6-branch origin/ppl-0_7-branch origin/ppl-0_8-branch origin/ppl-0_9-branch origin/ppl-1_0-branch origin/ppl-1_1-branch origin/ppl-1_2-branch origin/products origin/serial origin/simplex origin/space_dim origin/sparse_matrices origin/strict origin/termination
That is, there does not seem to be a 'devel' branch anywhere.
As suggested in the 3rd link above the error is produced: https://www.cs.unipr.it/pipermail/ppl-devel/2021-October/019295.html
:~/ppl$ git checkout devel error: pathspec 'devel' did not match any file(s) known to git
I have also gone through README.configure, but that also does not specify the command that will checkout the devel branch.
Thanks. Tryer

Please try again and report back.
On 3/13/22 09:52, anoninus wrote:
Hello,
It has been suggested to clone the library from the git repository and checkout the `devel` branch.
For e.g.,
https://www.cs.unipr.it/pipermail/ppl-devel/2021-February/019283.html https://www.cs.unipr.it/pipermail/ppl-devel/2021-February/019283.html https://www.cs.unipr.it/pipermail/ppl-devel/2022-March/019307.html https://www.cs.unipr.it/pipermail/ppl-devel/2022-March/019307.html https://www.cs.unipr.it/pipermail/ppl-devel/2021-October/019295.html https://www.cs.unipr.it/pipermail/ppl-devel/2021-October/019295.html
I have cloned the repository by doing:
$ git clone git://git.bugseng.com/ppl/ppl.git http://git.bugseng.com/ppl/ppl.git $ cd ppl ppl$ git branch -r :~/ppl$ git branch -r origin/COW origin/HEAD -> origin/master origin/MPI origin/alt_lgo origin/alt_nnc origin/altnum origin/bounded_arithmetic origin/compliance origin/deprecated_0_11_removal origin/floating_point origin/formatted_output origin/generalized_streams origin/grids origin/interfaces origin/lazy origin/master origin/octagons origin/pip origin/polynomials origin/polyops origin/positive origin/ppl-0_10-branch origin/ppl-0_11-branch origin/ppl-0_12-branch origin/ppl-0_3-branch origin/ppl-0_4-branch origin/ppl-0_5-branch origin/ppl-0_6-branch origin/ppl-0_7-branch origin/ppl-0_8-branch origin/ppl-0_9-branch origin/ppl-1_0-branch origin/ppl-1_1-branch origin/ppl-1_2-branch origin/products origin/serial origin/simplex origin/space_dim origin/sparse_matrices origin/strict origin/termination
That is, there does not seem to be a 'devel' branch anywhere.
As suggested in the 3rd link above the error is produced: https://www.cs.unipr.it/pipermail/ppl-devel/2021-October/019295.html https://www.cs.unipr.it/pipermail/ppl-devel/2021-October/019295.html
:~/ppl$ git checkout devel error: pathspec 'devel' did not match any file(s) known to git
I have also gone through README.configure, but that also does not specify the command that will checkout the devel branch.
Thanks. Tryer
PPL-devel mailing list PPL-devel@cs.unipr.it https://www.cs.unipr.it/mailman/listinfo/ppl-devel

It seems to be working fine now.
Thanks.
On Sun, Mar 13, 2022 at 2:22 PM anoninus wundermonk@gmail.com wrote:
Hello,
It has been suggested to clone the library from the git repository and checkout the `devel` branch.
For e.g.,
https://www.cs.unipr.it/pipermail/ppl-devel/2021-February/019283.html https://www.cs.unipr.it/pipermail/ppl-devel/2022-March/019307.html https://www.cs.unipr.it/pipermail/ppl-devel/2021-October/019295.html
I have cloned the repository by doing:
$ git clone git://git.bugseng.com/ppl/ppl.git $ cd ppl ppl$ git branch -r :~/ppl$ git branch -r origin/COW origin/HEAD -> origin/master origin/MPI origin/alt_lgo origin/alt_nnc origin/altnum origin/bounded_arithmetic origin/compliance origin/deprecated_0_11_removal origin/floating_point origin/formatted_output origin/generalized_streams origin/grids origin/interfaces origin/lazy origin/master origin/octagons origin/pip origin/polynomials origin/polyops origin/positive origin/ppl-0_10-branch origin/ppl-0_11-branch origin/ppl-0_12-branch origin/ppl-0_3-branch origin/ppl-0_4-branch origin/ppl-0_5-branch origin/ppl-0_6-branch origin/ppl-0_7-branch origin/ppl-0_8-branch origin/ppl-0_9-branch origin/ppl-1_0-branch origin/ppl-1_1-branch origin/ppl-1_2-branch origin/products origin/serial origin/simplex origin/space_dim origin/sparse_matrices origin/strict origin/termination
That is, there does not seem to be a 'devel' branch anywhere.
As suggested in the 3rd link above the error is produced: https://www.cs.unipr.it/pipermail/ppl-devel/2021-October/019295.html
:~/ppl$ git checkout devel error: pathspec 'devel' did not match any file(s) known to git
I have also gone through README.configure, but that also does not specify the command that will checkout the devel branch.
Thanks. Tryer
participants (2)
-
anoninus
-
Roberto Bagnara