Saves the state of the current execution in object format to File. A goal, Goal, to be called upon execution/restoring of the saved state, may be specified.
file_spec, must be ground
A file specification, ‘.sav’ extension optional.
callable, must be nonvar
A goal, defaults to
save_program/[1,2] creates a binary representation of all
predicates in all modules existing in the system. However, it does
not save the user’s pre-linked code. It also saves such states of the
system as operator definitions, Prolog flags, debugging and advice
state, initializations, and dependencies on foreign resources.
The resulting file can be restored using
Any unbound variables in Goal with attributes or blocked goals
attached to them will be replaced by plain, brand new variables. This
is analogous to the way attributed variables are handled in terms that
are written, copied, asserted, gathered as solutions to
findall/3 and friends, or raised as exceptions. To retain the
attributes, you can use
copy_term/3 (see ref-lte-cpt).
File or Goal is not bound.
File is not a valid file specification, or Goal is not a callable.
File is not writable.
| ?- save_program(state, format('Restored!\n',)). % /home/matsc/sicstus4/Bips/state.sav created in 0 msec yes | ?- restore(state). % restoring /home/matsc/sicstus4/Bips/state.sav... % /home/matsc/sicstus4/Bips/state.sav restored in 10 msec 16 bytes Restored! yes