Next: ref-lod-rpx, Previous: ref-lod-ove, Up: ref-lod [Contents][Index]
Loading a program is accomplished by one of these predicates
[]
[:File|:Files]
load_files(:Files)
load_files(:Files, +Options)
loads source or PO file(s), whichever is the more recent, according to Options.
compile(:Files)
loads source file(s) into virtual machine code.
consult(:Files)
reconsult(:Files)
loads source file(s) into interpreted representation.
ensure_loaded(:Files)
loads source or PO file(s), whichever is the more recent, unless the file has already been loaded and it has not been modified since it was loaded.
use_module(:Files)
use_module(:File,+I)
use_module(?M,:File,+I)
loads module files, see ref-mod-def for information about module files.
The following notes apply to all the Load Predicates:
user
absolute_file_name/2
. For information on file names refer
to ref-fdi.
fileerrors
flag is set to
off
.
Errors detected during compilation, such as an attempt to redefine a built-in predicate, also cause exceptions to be raised. However, these exceptions are caught by the compiler, an appropriate error message is printed, and compilation continues.
on
, but can be turned
off
if desired by setting the appropriate flags, which are:
single_var_warnings
If on
, then warnings are printed when a sentence
(see ref-syn-syn-sen) containing variables not beginning with
‘_’ occurring once only is compiled or consulted.
The Prolog flag legacy_char_classification
(see Prolog Flags) expands the set of variable names for which warnings are
printed. When legacy_char_classification
is in effect warnings
are printed also for variables that occur only once and whose name begin
with ‘_’ followed by a character that is not an uppercase Latin 1
character.
redefine_warnings
This flag can take more values; see ref-lps-flg.
If on
, then the user is asked what to do when:
discontiguous_warnings
If on
, then warnings are printed when clauses are not together in
source files, and the relevant predicate has not been declared
discontiguous
.
multifile
if its clauses
are to be spread across several different files. See the reference
page for multifile/1
.
load_files(Module:Files)
can be used to load the file into the
specified module. See ref-mod-def for information about
module files. If a file being loaded is a module file, then it is
first loaded in the normal way, the source module imports all the
public predicates of the module file except for use_module/[1,2,3]
and
load_files/[1,2]
if you specify an import list.
:-/1
or ?-/1
, then
these are executed as they are encountered.
Only the
first solution of directives is produced, and variable
bindings are not displayed. Directives that fail or raise
exceptions give rise to warning or error messages, but do not terminate
the load. However, these warning or error messages can be
intercepted by the hook user:portray_message/2
, which can
call abort/0
to terminate the load, if that is the desired
behavior.
:- [otherfile].
In this case, if otherfile
is a
relative filename, then it is resolved with respect to the directory
containing the file that is being loaded, not the current working
directory of the Prolog system.
Any legal Prolog goal may be included as a directive. There is no difference between a ‘:-/1’ and a ‘?-/1’ goal in a file being compiled.
user
, or Files is a list, and
during loading of the list user
is encountered, then procedures are to
be typed directly into Prolog from user_input
, e.g. the terminal.
A special prompt,
‘| ’, is displayed at the beginning of every new clause entered
from the terminal. Continuation lines of clauses typed at the
terminal are preceded by a prompt of five spaces. When all clauses
have been typed in, the last should be followed by end-of-file, or
the atom end_of_file
followed by a full stop.
user:term_expansion/6
and goal_expansion/5
, you can
specify any desired transformation to be done as clauses are loaded.
prolog_load_context/2
.
char_conversion/2
.