If the file contains no module_interface/1 or begin_module/1 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).