From: Terrance S. <ts...@us...> - 2007-04-28 13:28:18
|
Update of /cvsroot/xsb/XSB/syslib In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv2316 Modified Files: consult.P consult.H consult.xwam Log Message: Some errors in consult, compile, and load_dyn were being written out to STDERR or even written out as warnings. I changed them to throw appropriate error types. This makes the system a bit more self-consistent and also helps when XSB is embedded in another process. Index: consult.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/consult.P,v retrieving revision 1.64 retrieving revision 1.65 diff -u -r1.64 -r1.65 --- consult.P 9 Feb 2007 18:08:55 -0000 1.64 +++ consult.P 28 Apr 2007 13:28:04 -0000 1.65 @@ -33,7 +33,7 @@ compile(X, _) :- var(X), !, - abort('Uninstantiated argument 1 of compile/[1,2], cannot compile!'). + instantiation_error(compile/[1,2],1). compile([], _) :- !. compile([H|T], Options) :- !, \+ (\+ (compile0(H,Options))), @@ -48,13 +48,16 @@ -> compile_f(SExt, Base, Options, _, Mod, Dir) ; - file_write0(STDERR, 'Cannot compile a file with .xwam extension'), - fail + permission_error(compile,'file/module',Path,compile/[1,2]) ). +% file_write0(STDERR, 'Cannot compile a file with .xwam extension'), +% fail compile0(Path, _) :- + existence_error('file/module',Path,compile/[1,2],1). +/* file_write0(STDERR, 'Cannot find the file/module '), file_write0(STDERR, Path), file_nl(STDERR), fail. - +*/ compile_f(XSB_SRC_EXTENSION_ATOM_SANS_DOT, Base, Opts, ExList, Mod, _) :- !, compile(Mod, Base, XSB_SRC_EXTENSION_ATOM, Opts, ExList). compile_f(pl, Base, Opts, ExList, Mod, _) :- !, @@ -141,8 +144,9 @@ ) ) - ; file_write0(STDERR, 'Cannot find the file/module '), - file_write0(STDERR, Path), file_nl(STDERR), fail + ; existence_error('file/module',Path,consult/1,1) +% ; file_write0(STDERR, 'Cannot find the file/module '), +% file_write0(STDERR, Path), file_nl(STDERR), fail ). i_want_compile(SExt, Base, Obj) :- @@ -303,9 +307,11 @@ code_load(File, Init, 1), % use the changed C loader. % jf: for Windows a valid segment pointer might be negative ( Init =\= 0 % load succeeded - ; Init =:= 0, file_write0(STDERR, 'Error in loading file '), - file_write0(STDERR, File), - file_nl(STDERR), fail + ; Init =:= 0, + abort(['Error in loading file ',File]) +% file_write0(STDERR, 'Error in loading file '), +% file_write0(STDERR, File), +% file_nl(STDERR), fail ), !, ( banner_control(quietload) @@ -416,7 +422,8 @@ get_fname(Filename,SExt,Base,Mod) :- ( search_module(Filename,_Dir,Mod,SExt,Base,_Obj) -> true - ; warning('Cannot find file'(Filename)), fail + ; existence_error('file/module',Filename,load_dyn/[1,2],1) +% ; warning('Cannot find file'(Filename)), fail ). load_dyn0(SExt,Base,Mod,Dir) :- @@ -561,11 +568,12 @@ load_dync(File) :- load_dync(File,1). % assertz load_dync(File,Dirin) :- check_one_thread(load,file,load_dync/2), - (atom(File) - -> true - ; file_write0(STDERR, 'Wrong type in argument 1 of load_dync/1'), - fail - ), + check_atom(File,load_dync/[1,2],1), +% (atom(File) +% -> true +% ; file_write0(STDERR, 'Wrong type in argument 1 of load_dync/1'), +% fail +% ), load_dync_nocheck(File,Dirin). load_dync_nocheck(File,Dirin) :- Index: consult.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/consult.H,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- consult.H 9 Feb 2007 18:08:55 -0000 1.45 +++ consult.H 28 Apr 2007 13:28:04 -0000 1.46 @@ -44,7 +44,7 @@ load_dyn_file_loaded/2, load_dyn_pred_loaded/4, load_dyn_file/1. :- import check_one_thread/3, - domain_error/4, instantiation_error/2, + domain_error/4, existence_error/4,instantiation_error/2, permission_error/4, check_nonvar/3, check_atom/3 from error_handler. :- import asserta/1, (dynamic)/1, retractall/1, assert/1, retract/1, t_assert/2 from assert. Index: consult.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/consult.xwam,v retrieving revision 1.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 Binary files /tmp/cvsbPoZ0N and /tmp/cvsjFY1oj differ |