Availability:built-in
compile_predicates(:ListOfPredicateIndicators)Compile a list of specified dynamic predicates (see dynamic/1
and
assert/1)
into normal static predicates. This call tells the Prolog environment
the definition will not change anymore and further calls to assert/1
or retract/1
on the named predicates raise a permission error. This predicate is
designed to deal with parts of the program that are generated at runtime
but do not change during the remainder of the program execution.78The
specification of this predicate is from Richard O'Keefe. The
implementation is allowed to optimise the predicate. This is not yet
implemented. In multithreaded Prolog, however, static code runs faster
as it does not require synchronisation. This is particularly true on SMP
hardware.