Skip to Content
Contribute

Contributing to the Parma Polyhedra Library

There are several ways you can contribute to the success of the PPL: please, at least be kind; to be even kinder to us, you could contribute your personal time and/or your CPU time. All contributions will be greatly appreciated and properly recognized in an appropriate way. []{#be-kind}

Be Kind

Doing what is considered The Right Thing (TM) in the various communities we belong to (scientific community: give credit, cite; free software community: release code; human community: provide feedback, be grateful) is what we ask of you.

By Citing Wherever Appropriate

If you use the PPL in a research project that gives rise to some kind of publication, please do acknowledge the PPL and cite one or more appropriate papers. If you are unsure about what to cite, you can consult our little PPL papers road map.

By Distributing Your Software

Most of the things we know about software development are largely due to the chances we have had in obtaining, playing with and modifying good quality software written by others. Moreover, most of the tools routinely used in producing the PPL have been made available by the free software community, to which we belong. By distributing the PPL as free software and by taking the occasion, during the development work, of contributing to the improvement of the entire tool chain, we are able to give something back to this community.

Now about you. We hope you find the PPL useful in some way and, if you write an application using it, we wish to encourage you to release it. Do not be shy: it will never be polished enough. Do not be modest: even if you think that your application will not interest many people, we are interested in it. We routinely use (and need more) applications based on the PPL for the purposes of regression testing and performance monitoring. To summarize: if you don’t care about free software or its community, it doesn’t matter; if you don’t have a potential user community, it doesn’t matter; if you don’t have a nice packaging or documentation, it doesn’t matter; by releasing your code anyway, you will do a personal favor to the people who provided the PPL.

By Providing Feedback or Just Saying Hello

Feedback is always useful, whether it positive or negative. Whatever you are doing with the PPL, we are glad to know about it. If you are disappointed or satisfied or you have suggestions about the library or its documentation or this web site, just let us know. Even if you think you have nothing particularly useful to say, just knowing that you have been doing something with the PPL will give us extra motivation to continue our work. []{#contribute-time}

Contribute Time

Time is our biggest problem: if you can spare some time, then you have something important to contribute to the project.

By Giving a Little

With Beta Testing

We need beta testers. Not only are we short of time, but also have an inadequate number of computing platforms for testing work. So we would be grateful if you could can give us a hand by downloading, compiling, running the test suite of the library, and letting us know the result; if went OK or, if not, what went wrong. You can do this sporadically (just go to the download page and follow the instructions) or in a more systematic way: get in touch with us and let us know that you are willing to be involved and in what way. For instance, just before new releases, we are particularly in need for help: with your permission we could send you a message, say, one month before each release with instructions on how to obtain the prereleases and how to test them.

By Mirroring

Even though we often make copies of the PPL Git central repository, we do not have a formal, reliable backup strategy to protect us from hardware failures and other causes of data loss. If you have the possibility of mirroring the repository, please use the anonymous rsync access facility and let us know how we can retrieve the mirror images in case disaster strikes.

By Giving More

With Ports to Other Platforms

If you would like to see the PPL ported to other platforms, you are welcome to work with us toward this objective. The work should be facilitated by the fact that we have always tried to be strictly compliant to all the applicable standards.

With Test Programs

Writing small programs that test the PPL facilities is one of the best ways to learn how to use the library. If you plan to do this exercise, then send us your test programs: we need them for regression testing. If you want advice on how to write your test programs so that their utility can be maximized please contact us; we will be very happy to help.

By Giving Even More

With Projects and Theses

English The PPL and applications one can write using it provide excellent material for projects and theses. Please, do not be mistaken: not all projects or theses that can be built around the PPL require a deep knowledge of the mathematics that justifies its inner mechanisms, and several of them do not require any knowledge of the inner machinery.

Italiano La PPL e le applicazioni che con essa si possono realizzare forniscono spunti eccellenti per tesi e progetti. Non ci si inganni: non tutti i progetti o le tesi che si possono costruire attorno alla PPL richiedono una conoscenza profonda della matematica che giustifica i suoi algoritmi. Al contrario, molti progetti o tesi possono prescindere completamente dai dettagli implementativi.

Italiano Se sei uno studente all’Università di Parma e pensi che una tesi, un progetto o un tirocinio interno potrebbero interessarti, mettiti in contatto con Roberto Bagnara o Enea Zaffanella.

English If you are a student or teacher anywhere in the world and are interested about a project (for you or for some of your students) on/with/around the PPL, then get in touch with us and we will try to help as much as we can. []{#contribute-cpu-cycles}

By Contributing CPU Cycles

The Tinderbox system is based on build machines: these are machines that repeatedly fetch the code in some Git branch and try to compile it and to run the non-regression test suite. The frequency with which this task is executed varies: on our own machines it may be continuous near release dates, but this does not have to be the case; it can be controlled by means of a cron job. Sensible frequencies are in the range from once per day to once per week and, of course, these jobs can be run overnight so as to minimize impact on other activities. If you have a machine with spare time and you would like to help, please get in touch with us: we will send you the scripts and all the instructions you need to make it act as a build machine.

Last updated on