Node:Changes introduced in version 3.7, Next:Changes introduced in version 3.7.1, Previous:Changes introduced in 3#6, Up:Revision history
library(chr)
: A new library module providing Constraint Handling
Rules; see
http://www.pst.informatik.uni-muenchen.de/~fruehwir/chr-solver.html
library(jasper)
.
garbage_collect_atoms/0
, and
controlled by the agc_margin
Prolog flag. New statistics
options: atoms
, atom_garbage_collection
.
New interface functions: SP_register_atom()
, SP_unregister_atom()
.
call_cleanup/2
, which
replaces undo/1
.
source_info
Prolog
flag.
zip
and built-in predicates zip/0
, 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/2
can 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.
read_term/3
option: layout(-Layout)
.
New hook predicate: user:term_expansion/4
.
random:randset/3
returns 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/3
and
clpfd:serialized_precedence_resource/4
are 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
.
-B
command-line option is gone in the start-up script, and
some new options have appeared.
-base
to override the executable used by
the start-script.
reinitialise/0
does not load any initialization files given in
-i
or -l
command line flags.
-S
to spmkrs
and spmkds
to
link the SICStus Runtime Kernel (and development extensions for
spmkds
) statically into the executable.
[File1,File2,...]
was broken.
require/1
did not find all directories.
clp[qr]:dump/3
, clp[qr]:expand/0
,
clp[qr]:noexpand/0
.
arrays:arefa/3
, arrays:arefl/3
, heaps:min_of_heap/5
are now steadfast.
library(clpfd)
predicates now check the type of their arguments.
Bugs fixed in relation/3
, serialized/2
, all_distinct/1
.
frozen/2
could crash on an argument of the wrong type.
SP_get_list_n_chars()
does not require a proper list.
load_files(Files, [compilation_mode(assert_all)])
.
load_files(Files, [if(changed)])
, a
non-module-file is not considered to have been previously
loaded if it was loaded into a different module.
if/3
goals in grammar rules.
system:mktemp/2
sometimes returned filenames with
backslashes in them.