Improved ISO Standard Compliance
Arithmetic:
ceil: returns integer (former float)
floor: returns integer (former float)
ceiling is implemented (equivalent to ceil)
** is implemented (equivalent to pow)
details at
Manual/Reference/Predicates/arithm_eval/is
Compiler:
minervac accepts the option "-dynamic"
This compiles all predicates of the file as dynamic predicates.
This possibly decreases performance of the generated code,
except if the compiled file mainly contains facts, then
performance may even increase.
A file that was compiled with -dynamic can be unloaded
with unload/1.
unload(+Package)
details at
Manual/Reference/Predicates/clause_creat_destruct/unload
Loaded files that are candidates for unloading with unload/1
can be determined with
loadad(?Package)
loaded(?Package,-PredicateList)
details at
Manual/Reference/Predicates/clause_creat_destruct/loaded/
Directives:
The compiler now recognizes the directives
:- initialization(Goal). % equivalent to :- init(Goal).
:- ensure_loaded(File). % equivalent to :- init(load(File).
% load/1 loads a file at most one time.
:- import(Package). % shall replace ":- package(Package)."
details at
Manual/Reference/Directives/
Parser:
In accordance to the standard,
the character code of "'" can be denoted by 0''' (former only 0'\')
Predicates:
current_predicate/1 is now implemented.
In violation of the standard, the predicate does not
allow variables in in the argument.
abolish/1 now conforms to the standard, i.e.
calling a predicate after doing abolish/1 on it will
raise a undefined_predicate exception.
retract_all/1 replaces the former function of abolish/1,
i.e. all clauses are deleted but the predicate ist still
defined as dynamic. A call will return fail, not an exception.