If the file contains no module/1 or module/3 directive, procedures that occur in File are written to the module Module (overwiting if necessary); the rest of the module remains unchanged. If the file contains a module directive it works like compile/1.
If Module does not exist, compile/2 will create such a module and compile File into it.
Success:
[hanoi]. % compiles the file hanoi.pl
[eclipse]: sh('cat file1').
p.
yes.
[eclipse]: sh('cat file2').
q(X) :- write(X).
yes.
[eclipse]: [user], p.
p :- write(hi).
user compiled 92 bytes in 0.00 seconds
hi
yes.
[eclipse]: compile([file1, file2],b), p.
/home/lp/user/file1 compiled 32 bytes in 0.02 seconds
/home/lp/user/file2 compiled 92 bytes in 0.00 seconds
hi % p/0 not compiled into module eclipse
yes.
[eclipse]: module(b).
[b]: p.
yes.
[b]: q(ho).
ho.
yes.
% example showing use of relative pathnames.
[eclipse]: sh('ls -FR /home/lp/user/pl').
a.pl util/
/home/lp/user/pl/util:
b.pl c.pl
yes.
[eclipse]: sh('cat /home/lp/user/pl/a.pl').
:- compile('util/b').
p.
yes.
[eclipse]: compile('/home/lp/user/pl/a', b).
/home/lp/user/pl/util/b.pl compiled 92 bytes in 0.00 seconds
/home/lp/user/pl/a.pl compiled 28 bytes in 0.00 seconds
yes.
Error:
compile(file1,M). (Error 4).
compile(F,eclipse). (Error 4).
compile(file1, "b"). (Error 5).
compile(file1/1, b). (Error 5).
compile(file,eclipse). (Error 171).