PPL Bugs
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.
— Brian W. Kernighan
The PPL developers encourage you to report any bugs you find using the bug tracking system . Here “bug” should be interpreted in its broadest sense: outright software errors, misfeatures, bad interfaces, missing or unclear documentation… whatever is a subject for possible improvement.
As far as software bugs are concerned, the best reports are those that are reproducible. When possible, including (or pointing us to) code that exhibits the reported misbehavior is the best thing you can do to help us fix the library. Of course, this is not always possible and we will welcome any kind of bug report. Anyway, you may be interested to read How to Report Bugs Effectively , by Simon Tatham.
Known Bugs in PPL 0.11.2
There are no known bugs in PPL 0.11.2. We will list here all the bugs we will find. There is also an archive of all known bugs affecting various releases of the PPL.
Known Bugs in PPL 0.11
Here is the list of all the known bugs in PPL 0.11 (even though it is likely that there are other bugs in it). All these bugs have been fixed in PPL 0.11.2.
February 10, 2011
: Fixed a bug in the input method for checked integers whereby, under
specific conditions, the input stream state bits were not updated.
The bug was only affecting builds using checked integer
coefficients. Relevant commit is
d0f6bd0
.
February 5, 2011
: Fixed a bug in the OCaml interface, which was affecting functions
ppl_Pointset_Powerset_<INSTANCE>_get_disjunct
. Relevant commit
is
c23ded5
.
February 5, 2011
: Corrected a couple of resource (re-)allocation problems that, under
specific conditions, could affect the correctness of Grid
constructor Grid::Grid(const Box<Interval>& box)
and
NNC_Polyhedron method Polyhedron::generalized_affine_image()
.
Relevant commits are
a01fecf
and
bf1edca
.
February 4, 2011
: Corrected a problem in the simplification of PIP_Problem
solution
trees whereby, under specific conditions, the node merging process
produced decision nodes that did not satisfy their class invariant.
Relevant commit is
caaa126
.
October 19, 2010
: Fixed a precision bug in method
Octagonal_Shape<T>::affine_image()
whereby in the case of an
invertible affine transformation implementing a variable sign
symmetry (and optional translation), the computed result was correct
but unnecessarily imprecise. Relevant commit is
5c95fc0
.
October 16, 2010
: Fixed a bug whereby the argument of all the methods
unconstrain(Variable var)
was not checked correctly for space
dimension compatibility. Relevant commit is
ff5b079
.
September 16, 2010
: Corrected an efficiency bug in the C language interface function
ppl_Linear_Expression_add_to_coefficient()
. Relevant commit is
ba9f6c9
.
September 7, 2010
: Fixed a bug affecting constructor
Interval::Interval(const char* s)
whereby a wrong interval would
be constructed if the string argument denotes a number that can only
be represented as an infinity. Relevant commit is
3e2fe28
.
August 29, 2010
: Fixed a bug affecting the input routine of ppl_lpsol
, whereby the
inhomogeneous term of the objective function was disregarded. The
bug could only affect the optimized value of the objective function,
while having no effect onthe problem’s optimization state. Relevant
commit is
c82a273
.
August 13, 2010
: Fixed a bug affecting methods
Box::CC76_widening_assign(const T&, Iterator, Iterator)
and
Interval::CC76_widening_assign(const From&, Iterator, Iterator)
whereby a lower bound would not be computed correctly when the two
iterators specify an empty list of stop points. Relevant commit is
535657b
.