format/3
could crash with certain parameters to the ‘~*’
construct (and the equivalent inline form). For some format control
options, this was fixed by restricting the magnitude of the ‘~*’
parameter.
append(L1,L2,L3)
if called with L1
not a proper list.
system3
.
sin/1
and (/)/2
, which
implicitly take floating point values, a float overflow error will now
be thrown if the argument evaluates to a large integer that will not
fit in a floating point value.
In some cases this now throws an error, where earlier versions
computed a sensible result, e.g. X is 1/(1<<1024)
would
compute X = 0.0
but now throws an error (because the value of
(1<<1024)
is a large integer that does not fit in a floating
point number).
SP_get_float()
now fails if the argument term is a large
integer that does not fit in a C double. It used to return an
infinity value.
+float
, or code that use
the library(structs)
floating point types, will now give an
error if the argument is a large integer that does not fit in the
destination type.
SP_put_float(-0.0)
now creates an ordinary (unsigned) floating point zero.
SP_put_float(-inf)
, SP_put_float(+inf)
and
SP_put_float(NaN)
fail^{2}.
-float
, or code that use
the library(structs)
floating point types, will now throw an
error if the value is not finite. Negative zero will treated as an
ordinary (unsigned) floating point zero.
This means that a call to a foreign function can throw an exception when the function returns to Prolog, if it attempts to return a non-finite result.
+integer
, or code that uses
the library(structs)
integer types, will now give an error if
the argument is a large integer that does not fit in the destination
type.
spld --extended-rt
failed unless --license-file was
specified. Now it tries to find the license in the “usual” places.
timeout/1
option of various predicates and the
spfz
option -time Time together with
one-solutions search, no solution was reported at time-out, even if
some solution had been found during optimization search.
bool_channel/4
.
dif/2
and reified constraints.