
[+File_1, ...., +File_N]

   Compile source file or load precompiled file, or list of files

Arguments
   File_i              Atom or string.

Type
   Predicate Database and Compiler

Description

   The behaviour of this construct is different according to where it is used:
   As a directive in a source file, e.g.

	:- [auxiliaries,tools].

   it behaves like an include/1 directive, i.e. it instructs the compiler (or
   any other source-processing tool) to process the given files as if they were
   part of the file containing the directive.

   When called as a query (e.g. at the interactive toplevel) or goal, it will
   compile source files or load precompiled files.  If a precompiled file
   exists (usually characterized by a .eco file suffix), then this file is
   loaded, otherwise a source file is expected and compiled using compile/1.
   See the specification of compile/1 for details.

   A particular common use at the toplevel is the special form:

	?- [user].

   which is used for interactively compiling code from the standard input.


Modes and Determinism
   [+] is det

Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

Exceptions
     4 --- File_n is not instantiated.
     5 --- File_n is instantiated, but not to an atom or string.
   171 --- File_n does not exist.

Examples
   
Success:
     [hanoi].         % compiles the file hanoi.pl

     [eclipse]: sh('cat file1').
     p:-writeln(hello).
     yes.
     [eclipse]: sh('cat file2').
     q(X) :- write(X).
     yes.
     [eclipse]: [user], p.
      p :- writeln(hi).
      user compiled 92 bytes in 0.00 seconds
     hi
     yes.
     [eclipse]: [file1, file2], p.
     /home/lp/user/file1 compiled 32 bytes in 0.02 seconds
     /home/lp/user/file2 compiled 92 bytes in 0.00 seconds
     hello
     yes.
Error:
     [F].            (Error 4).
     [file1/1].      (Error 5).
     [noexist].      (Error 171).





See Also
   compile / 1, compile / 2, fcompile : fcompile / 1
