The following options are currently supported:
true
(default false
), indicate that this
load is a
demand load. This implies that, depending on the setting of the
Prolog flag verbose_autoload,
the load action is printed at level informational
or silent
.
See also print_message/2
and current_prolog_flag/2.false
(default true
), do not check the
first character to be #
and skip the first
line when found.true
, run the filenames through expand_file_name/2
and load the returned files. Default is false
, except for consult/1
which is intended for interactive use. Flexible location of files is
defined by file_search_path/2.stream(Stream)
option. Default is source
,
loading Prolog source text. If qlf
, load QLF data (see qcompile/1).true
loads the file unconditionally, changed
loads the file if it was not loaded before or has been modified since it
was loaded the last time, not_loaded
loads the file if it
was not loaded before, and exists
is as changed
,
but the call
load_files/2
silently if the file does not exist.all
. Import is passed from the second
argument of use_module/2.
Traditionally it is a list of predicate indicators to import. As part of
the SWI-Prolog/YAP integration, we also support Pred as Name
to import a predicate under another name. Finally, Import can
be the term except(Exceptions)
, where Exceptions
is a list of predicate indicators that specify predicates that are not
imported or Pred as Name terms to denote renamed
predicates. See also reexport/2
and
use_module/2.bugName/Arity
as NewName is currently implemented using a link clause.
This harms efficiency and does not allow for querying the relation
through predicate_property/2.
If Import equals all
, all operators are
imported as well. Otherwise, operators are not imported.
Operators can be imported selectively by adding terms op(Pri,Assoc,Name)
to the
Import list. If such a term is encountered, all exported
operators that unify with this term are imported. Typically, this
construct will be used with all arguments unbound to import all
operators or with only Name bound to import a particular
operator.
stream(Input)
option, for example after extracting the
time from an HTTP server or database.:- module(Name, ...)
directive. This
currently serves two purposes: (1) allow loading two module files that
specify the same module into the same process and force and (2): force
loading source code in a specific module, even if the code provides its
own module name. Experimental.true
, raise an error if the file is not a module file.
Used by
use_module/[1,2]..qlf
file instead of the loading directive.If this option is not present, it uses the value of the Prolog flag qcompile as default.
false
(default), which prints an error and refuses to load the file, or
true
, which uses unload_file/1
on the old file and then proceeds loading the new file. Finally, there
is ask
, which starts interaction with the user. ask
is only provided if the stream user_input
is associated
with a terminal.true
re-export the imported predicate. Used by reexport/1
and reexport/2.false
, do not register the load location and options.
This option is used by make/0
and load_hotfixes/1 to avoid polluting the load-context database. See source_file_property/2.true
. Using false
while the
Prolog flag is set to true
raises a permission error.true
. The system and user initialization files (see -f
and
-F) are loading with scope_settings(false)
.true
, load the file without printing a message. The
specified value is the default for all files loaded as a result of
loading the specified files. This option writes the Prolog flag
verbose_load
with the negation of Bool.
This option is added to allow compiling from non-file locations such
as databases, the web, the user (see consult/1)
or other servers. It can be combined with format(qlf)
to
load QLF data from a stream.
The load_files/2
predicate can be hooked to load other data or data from objects other
than files. See prolog_load_file/2
for a description and
library(http/http_load)
for an example. All hooks for load_files/2
are documented in section
B.10.