library(chr): A new library module providing Constraint Handling Rules; see
garbage_collect_atoms/0, and controlled by the
agc_marginProlog flag. New statistics options:
atom_garbage_collection. New interface functions:
call_cleanup/2, which replaces
zipand built-in predicates
nozip/0; new debugger commands out n, skip i, quasi-skip i, zip, backtrace n, raise exception. Modules can be declared as hidden, which disables tracing of their predicates.
save/[1,2]are gone. In most cases,
save_program/2can be used in their place, with a little rearrangement of your code. Predicates can be declared as volatile.
SP_restore()is the C equivalent of
restore/1, which now only restores the program state, leaving the Prolog execution stacks unchanged.
). New hook predicate:
random:randset/3returns a set in standard order.
db:db_canonical/[2,3]are new; can be used to check whether two TermRefs refer to the same term.
clpfd:serialized_precedence_resource/4are new; model non-overlapping tasks with precedence constraints or sequence-dependent setup times.
:Goal are translated according to the manual. Earlier versions treated arguments occurring in the `:' position of meta-predicates specially.
SP_raise_fault()and interface macro
SP_on_fault()are available for handling runtime faults that cannot be caught as exceptions.
SP_set_memalloc_hooks()is available for redefining the memory manager's bottom layer. Related to that, there is a new command-line option -m.
reinitialise/0does not load any initialization files given in -i or -l command line flags.
require/1did not find all directories.
heaps:min_of_heap/5are now steadfast.
library(clpfd)predicates now check the type of their arguments. Bugs fixed in
frozen/2could crash on an argument of the wrong type.
SP_get_list_n_chars()does not require a proper list.
, [if(changed)]), a non-module-file is not considered to have been previously loaded if it was loaded into a different module.
if/3goals in grammar rules.
system:mktemp/2sometimes returned filenames with backslashes in them.