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.