13.20.2 Bugs Fixed
Compiler bug, surfaced for example for
r(b) :- Y = b, t(X,Y)..
Error handling bug in floating point overflows caused (a) spurious
memory resource errors, (b) different interpreted and compiled behavior.
SP_printf() stopped working if the output exceeded 2048 bytes.
Unintended limitation, max 100 million interpreted clauses in memory, lifted.
predicate_property/2 with nonvar second argument would lose solutions.
add_breakpoint/2 warns if an undefined predicate is specified; it used to
silently accept any well-formed predicate identifier.
length/2: used to loop if first argument cyclic or second
argument very large. Conformance with proposed future ISO standard.
when/2 could cause stack overflow.
Declarations are silently ignored if they would have no effect.
[File|Files] now uses the calling module context for the second
Files) argument, as documented.
ensure_loaded/1 would keep reloading non-module ‘.po’ files
whose name did not correspond to an existing source file.
stream_property(S,encoding(CS)) would succeed twice for
bi-directional text streams. It now succeeds at most once and the
per-direction encoding information can be obtained with the new stream
call_cleanup/2: memory management could cause the cleanup action to be delayed.
In trace mode, the debugger would stop at spurious calls among code in
hidden modules, which was never intended.
- On Windows, the
glob/1 is now
case-normalized, just like the file name.
aggregate:term_variables/3 steadfastness bug. Note that this
is largely made obsolecent by the new built-in
library(xref) and spxref would loop on cyclic import dependencies.
library(gauge): logarithmic scale was broken.
library(gauge): On OS X, menus had invisible text.
library(process): On Windows,
process_create/3 did not
pass empty arguments correctly.
process_create/3 boolean options
did not accept the value ‘false’.
Bad use of the global constraint API could crash SICStus.
- Critical bug in bounds-consistent
Enabling FDBG could cause missing propagation.
geost/[2,3,4]: memory performance bug;
lex/1 option in greedy assignment mode
Bugs in flattening logical and arithmetical expressions.
X #= Y, with unbound X and Y, was handled by
unification. This failed to type X and Y as domain
variables, and was often bad for performance. Now, such equations are
handled by a propagator.
- Parsing floats was broken, causing spurious errors.
ozn_file/1 options misbehaved if used
without explicit ‘.fzn’ and ‘.ozn’ extensions.
- Empty arrays caused spurious existence errors.
‘+’ and ‘-’ are no longer incompatibly defined as prefix operators.
- In the build for 64-bit OS X 10.8,
library(tcltk) would crash
- The ‘codes’ command specification was incorrectly documented as ‘chars’.
pillow:fetch_url/3 would sometimes time out for some
A bug in Microsoft J# caused PrologBeans.NET to transmit some data
incorrectly from Prolog to .NET.
The splfr tool now ensures that the C compiler will find
the generated headers also when the
--namebase option specifies
Send feedback on this subject.