Update of /cvsroot/xsb/XSB/cmplib In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv1272 Modified Files: auxlry.H auxlry.P auxlry.xwam compile.H compile.P compile.xwam parse.H parse.P parse.xwam Log Message: Fixes to make errors more ISO_compliant and standardized. Index: auxlry.H =================================================================== RCS file: /cvsroot/xsb/XSB/cmplib/auxlry.H,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- auxlry.H 31 Mar 2008 13:37:04 -0000 1.17 +++ auxlry.H 27 Apr 2008 15:29:10 -0000 1.18 @@ -30,6 +30,7 @@ freeze/1, melt/2, writetop/2, set_global_compiler_options/1, check_file_compiler_options/1, numbervars_cmplib/3. +:- export current_xsb_compiler_option/1. :- import current_compiled_module/1 from compile. :- import load_dyn_module/1 from consult. Index: auxlry.P =================================================================== RCS file: /cvsroot/xsb/XSB/cmplib/auxlry.P,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- auxlry.P 28 Mar 2008 14:59:37 -0000 1.25 +++ auxlry.P 27 Apr 2008 15:29:10 -0000 1.26 @@ -121,6 +121,10 @@ unsuitable_for_file_options(ti_dump). +% redefining for export +current_xsb_compiler_option(Option):- + current_option(Option). + /* Old PSB genes */ current_option(sysmod). current_option(optimize). Index: auxlry.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/cmplib/auxlry.xwam,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 Binary files /tmp/cvs3Q4L2q and /tmp/cvsLqnY9i differ Index: compile.H =================================================================== RCS file: /cvsroot/xsb/XSB/cmplib/compile.H,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- compile.H 28 Mar 2008 14:59:40 -0000 1.19 +++ compile.H 27 Apr 2008 15:29:10 -0000 1.20 @@ -63,7 +63,7 @@ :- import write_asmheader/4, write_asm_instructions/2 from writeasm. :- import throw/1, cputime/1, open/3, close/1 from standard. :- import force_peephole_loaded/0, compile_peephole_opt/2 from peephole. -:- import message/1, warning/1, time_message/2, setoptions/1, option/1 + :- import message/1, warning/1, time_message/2, setoptions/1, option/1 from auxlry. :- import prepare/0, gennum/1, conget/2, conset/2 from gensym. :- import sys_unlink/2 from shell. Index: compile.P =================================================================== RCS file: /cvsroot/xsb/XSB/cmplib/compile.P,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- compile.P 28 Mar 2008 14:59:40 -0000 1.31 +++ compile.P 27 Apr 2008 15:29:10 -0000 1.32 @@ -42,15 +42,20 @@ :- dynamic(current_compiled_module(_)). compile(Modname,Basename,Extensions,Options,ExportList):- - stat_flag(CURRENT_INPUT, Str), + stat_flag(CURRENT_INPUT, IStr), + stat_flag(CURRENT_OUTPUT, OStr), catch(compile_internal(Modname,Basename,Extensions,Options,ExportList),E, - (handle_compile_error(Basename,Str),throw(E))). + (handle_compile_error(Basename,IStr,OStr),throw(E))). -% perhaps reset compiler erors to 0 in handler. -handle_compile_error(Basename,Str):- +:- import tell/1 from standard. +% Close current stream (i.e. the file we were compiling) if it is not +% equal to whatever the current stream was before we started compiling. +handle_compile_error(Basename,IStr,OStr):- + stat_flag(CURRENT_INPUT, CurStr), + (IStr \== CurStr -> close(CurStr) ; true), str_cat(Basename,XSB_OBJ_EXTENSION_ATOM,OFile), sys_unlink(OFile,_), - see(Str). + see(IStr),tell(OStr). compile_internal(Modname, Basename, Extension,Options, ExportList) :- file_names(Basename, Extension,PFile, HFile, OFile, AFile, DFile, Index: compile.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/cmplib/compile.xwam,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 Binary files /tmp/cvskagU5t and /tmp/cvscLlcim differ Index: parse.H =================================================================== RCS file: /cvsroot/xsb/XSB/cmplib/parse.H,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- parse.H 16 Feb 2008 21:49:59 -0000 1.34 +++ parse.H 27 Apr 2008 15:29:10 -0000 1.35 @@ -51,7 +51,7 @@ from standard. :- import retract/1, retractall/1, assert/1, (dynamic)/1 from assert. :- import '_$index'/3, mpa_to_skel/2 from file_op. -:- import misc_error/1 from error_handler. + :- import existence_error/4,misc_error/1, syntax_error/1 from error_handler. :- import spawn_process/5, process_control/2 from shell. :- import xsb_configuration/2 from xsb_configuration. Index: parse.P =================================================================== RCS file: /cvsroot/xsb/XSB/cmplib/parse.P,v retrieving revision 1.81 retrieving revision 1.82 diff -u -r1.81 -r1.82 --- parse.P 16 Feb 2008 21:49:59 -0000 1.81 +++ parse.P 27 Apr 2008 15:29:10 -0000 1.82 @@ -63,7 +63,8 @@ ; Module0 = Module0 % init (lamp variable) ), parse1(Modname,PFile,Module0) - ; error(('Cannot find the file ', PFile)), fail, Module0=Module0 + ; existence_error('file/module',PFile,compile/1,1) +% ; error(('Cannot find the file ', PFile)), fail, Module0=Module0 ), conset(needs_restart, 0), % clean up this var retractall('_$multifile_retract'(_, Modname, _)), @@ -241,23 +242,25 @@ ) ). parse_clauses(M, _) :- % Under normal conditions this clause is unreachable! - error(('Clauses of ', M, ' cannot be parsed.')). + syntax_error(('Clauses of ', M, ' cannot be parsed.')). +:- import file_read/3 from xsb_read. my_read(Term, Vars) :- - stat_flag(CURRENT_INPUT, File), file_read_fapoe(File, Term, Vars). +% stat_flag(CURRENT_INPUT, File), file_read_fapoe(File, Term, Vars). + stat_flag(CURRENT_INPUT, File), file_read(File, Term, Vars). check_compilable_clause(Cl) :- var(Cl), !, - error(('Clause cannot be compiled: ',Cl)), + syntax_error(('Clause expected, variable encountered: ',Cl)), fail. check_compilable_clause(:-(D)) :- var(D), !, - error(('Clause cannot be compiled: ',:-(D))), + syntax_error(('Directive is uninstantiated: ',:-(D))), fail. check_compilable_clause(:-(H,B)) :- var(H), !, - error(('Clause cannot be compiled: ',:-(H,B))), + syntax_error(('Clause with variable head encountered: ',:-(H,B))), fail. check_compilable_clause(:-(H,B)) :- embedded_number(B), !, - error(('Clause cannot be compiled: ',:-(H,B))), + syntax_error(('Literal expected in clause body, number encountered: ',:-(H,B))), fail. check_compilable_clause([]) :- !. check_compilable_clause([Cl|Cls]) :- !, Index: parse.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/cmplib/parse.xwam,v retrieving revision 1.69 retrieving revision 1.70 diff -u -r1.69 -r1.70 Binary files /tmp/cvs4x7o4u and /tmp/cvsG1Jimn differ |