absolute_file_name/2has changed slightly. It no longer looks for an existing file with a `.pl' extension if the given relative file name has no extension. The old behavior can be achieved with:
old_absolute_file_name(RelFileSpec, AbsFileName) :- Options = [ file_type(source), access(exist), file_errors(fail) ], ( absolute_file_name(RelFileSpec, AbsFileName, Options) -> true ; absolute_file_name(RelFileSpec, AbsFileName, ) ).
debugger_command_hook/2takes a different first argument.
print_message/2does not take a
stream_select/3were unsafe, and have been removed. The latter can be replaced by the following equivalent definition, which works for file descriptor streams under UNIX and, for socket streams, under Windows as well:
:- use_module(library(sockets)). stream_select(Streams, TimeOut, ReadStream) :- socket_select(, _, TimeOut, Streams, ReadStream).
prepare_foreign_resource/3. See The Foreign Resource Linker, for details on using splfr.
apply_bound/1API for branch & bound search has been replaced by predicates called
all_distinct/[1,2]require bounded domains.
cumulative/[4,5]only prune the bounds of domains, not inside them, unless the
bounds_only(false)option is given.
library(db)has been removed.
library(xref)has been replaced.
library(flinkage)is no longer supported. It is still present to help porting really old code.
jasper_call/4introduced in SICStus 3.8.5 so you should migrate your code even if you are still using SICStus 3.8.
se.sics.jasperthat operate on a SICStus object will now throw an error if called from a thread other than the one that created the SICStus object. This is similar to the behavior in early versions of 3.8.
SICStus 3.9 introduces a new thread safe Jasper API, which is not backwards compatible with the Jasper API of 3.8. However, the old API has been amended to be compatible with the thread safe API, making it possible to write Java programs that can run in both modes.
SP_signal()are now deferred until Prolog can call them safely. This makes
SP_signal()unsuitable for handling synchronous signals such as `SIGSEGV'. See Signal Handling.