6.2.3 Volatile Declarations

A declaration

     :- volatile PredSpec, ..., PredSpec.

where each PredSpec is a predicate spec, causes the specified predicates to become volatile.

A predicate should be declared as volatile if it refers to data that cannot or should not be saved in a saved-state. In most cases a volatile predicate will be dynamic, and it will be used to keep facts about streams or memory references. When a program state is saved at run-time, the clauses of all volatile predicates will be left unsaved. The predicate definitions will be saved though, which means that the predicates will keep all properties, that is volatile and maybe dynamic or multifile, when the saved-state is restored.