Version 3.8.7 is mainly a bugfix release. New features:
number_chars/2were not steadfast.
library(timeout): Some timeouts were ignored if they occurred during exception handling.
library(timeout): If the timer cannot be set up (using
setitimer), then a system error exception is raised. This happens on Solaris in multi-threaded applications, e.g. when using SICStus with Java.
SP_deinitialize()not working properly.
listing/[0,1]did not module prefix bodies of imported predicates correctly.
library(clpfd): some Boolean constraints were incorrectly macro-expanded; some type errors merely failed; over-zealous integer overflow detection in arithmetic.
sockets:socket_select/[5,6]will work correctly also for input buffered socket streams. You no longer need to disable buffering with
sockets:socket_buffering/4just to get
library(sockets): A signal delivered to the process will no longer cause any socket predicates to give an error (proper `EINTR' handling). A downside to this is that SICStus no longer is interruptible with ^C (`SIGINT') while blocking except in
sockets:socket_select/[5,6]. In the case of
sockets:socket_select/[5,6], signal delivery will be treated as if the
select()call had a zero timeout. Such spurious timeouts are a potential backward compatibility issue.
sockets:socket_buffering/4: A crashing bug introduced in 3.8.6. Added argument validation so that it now fails on non-socket streams and other incorrect arguments. Note that the primary reason for changing socket buffering prior to 3.8.7 is gone since
sockets:socket_select/[5,6]now work also for input buffered sockets.
system:file_property/2failed to recognize symbolic links as such.
SPTerm.consFunctor. This also affected all read-from-string type methods.
SPTerm.getNumberCharscalled an undefined native method.
library('clpqr/examples/mip')would not load properly.
spld --staticused incorrect options when specifying static linking to Sun Workshop C-compiler.