13.34.3 Bugs Fixed
- The predicates
bagof/3
and setof/3
sometimes enumerated
solutions inconsistently. For instance, identical calls to
setof/3
could produce solutions in different orders. This
behavior has been corrected to ensure consistent ordering.
- The
format
control for writing numbers using a specified base,
~r
/~R
, could corrupt memory for number bases smaller
than 8.
- Arithmetic comparisons between two identical non-numbers would
sometimes succeed instead of throwing an error.
- A term could be read incorrectly if ‘|’ had been declared as an operator.
- The cleanup phase of
call_cleanup/2
could become very slow.
- In rare circumstances with JIT enabled, foreign calls could crash SICStus.
- Interpreted arithmetic with huge integers could cause infinite loops.
- Float overflow errors could crash SICStus.
- The PrologBeans .NET library was affected by the “locale” of the
client machine. One symptom was that floating point values caused an
error when passed from the Prolog side server to the C#/.NET side
client for some users that did not use English language settings.
The Java client was not affected by this bug.
- CLPFD:
- -
geost/[2,3,4]
could give wrong answers.
- -
table/[2,3]
could crash SICStus on infinite domains.
- MiniZinc:
- - The FlatZinc parser did not parse the empty set (
{}
)
correctly, could corrupt memory or loop on syntax errors, and could
cause a GC hazard.
- - Variable declarations could be parsed incorrectly.
- - All FlatZinc/MiniZinc file I/O is now using UTF-8.
- The Emacs support code has been updated for compatibility with Emacs 29.1 and later.
Send feedback on this subject.