14.23.3 Bugs Fixed
- Do-loops (
do/2): documentation clarified.
- During compilation with the debugger switched on, it would spuriously stop at some
structs predicates.
- Documentation incorrectly mentioned non-ISO float syntax sign
inf and sign nan.
- Error handling of
mod/2 and friends.
- Incorrect result when using
compare/3 et al. on atoms and
functors with NUL characters in their names,
e.g. 'foo\0\bar'. NUL is now treated as smaller than
all other character codes.
- Attributed variables that have been deterministically bound were not garbage collected.
- Compiler warnings referring to variable names were ugly.
-
use_module/2 et al. with empty import list no longer generate
a message about “module ... imported into ...”.
- Efficiency bug in
SP_query() and friends.
- Decompiled code sometimes missed
var/1 and nonvar/1 tests.
- Efficiency bug affecting
call_cleanup/2, findall/3 and friends, and I/O.
- Minor issue when writing terms if
'.' or '$VAR' has been declared as operators.
-
call/1 at al. could hang, uninterruptibly, for certain cyclic goals.
-
SP_put_float() will now fail if the argument is not finite
(i.e. if the argument is +/-inf or NaN).
- Error handling of
bb_get/2, bb_put/2,
bb_delete/2, bb_update/3.
- On OS X,
sicstus would sometimes fail to set the locale, and
would fail to launch. This could prevent M-x run-prolog from
starting Prolog in Emacs.
-
library(atts): documentation and error handling.
-
ugraphs:transitive_closure/2 and wgraphs:transitive_closure/2: wrong answer for cyclic graphs.
-
lists:same_length/2, lists:same_length/3, lists:rotate_list/2 and lists:rotate_list/3
left a choicepoint behind for same cases when an argument was a partial list.
-
ugraph:random_ugraph/3 would loop if its output argument failed to unify with the resulting graph.
-
ordsets:ord_intersection/4 left a choicepoint behind.
- In the Emacs mode, some code formattng variables have been marked as
“safe local variables” so that they can be set when opening a file,
without eliciting a prompt from Emacs.
- CLPFD:
- - Finite but very large domains could crash.
- - Some propagators could access uninitialized data.
- - Wrong attribute projection of
minimum/2 and maximum/2.
Send feedback on this subject.