From: Luis C. <lfc...@us...> - 2003-07-22 17:22:21
|
Update of /cvsroot/xsb/XSB/syslib In directory sc8-pr-cvs1:/tmp/cvs-serv32482/syslib Modified Files: assert.H assert.P assert.xwam consult.H consult.P consult.xwam dcg.H dcg.xwam debugger.xwam standard.P standard.xwam std_xsb.H std_xsb.P std_xsb.xwam x_interp.xwam Log Message: * Fixes for new metapredicate classification of terms Index: assert.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/assert.H,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- assert.H 13 Apr 2002 05:01:59 -0000 1.13 +++ assert.H 22 Jul 2003 17:22:07 -0000 1.14 @@ -50,7 +50,7 @@ from machine. %%:- import term_psc/2 from machine. :- import '_$table'/1 from file_op. -:- import standard_symbol/3 from std_xsb. +:- import standard_symbol/3, standard_dynamic_symbol/2 from std_xsb. :- import default_assert_size/1 from config. :- import '_$multifile_retract'/3 from parse. %%:- import assert_hook/1, retract_hook/2 from usermod. Index: assert.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/assert.P,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- assert.P 26 Feb 2001 22:13:55 -0000 1.18 +++ assert.P 22 Jul 2003 17:22:07 -0000 1.19 @@ -27,8 +27,6 @@ #include "builtin.h" #include "psc_defs.h" - - /*======================================================================*/ /* Predicates to add dynamic clauses in Prolog's database: */ /* - assert(+Clause) */ @@ -203,7 +201,9 @@ ). check_assert(Head, Pred) :- % asserting a fact ( callable(Head) -> - ( functor(Head, F, A), standard_symbol(F, A, _Prop) -> + ( functor(Head, F, A), + standard_symbol(F, A, _Prop), + \+ standard_dynamic_symbol(F, A) -> abort(('Not permitted to assert to a built-in predicate: ',F/A)) ; true ) @@ -323,7 +323,7 @@ do_multifile_retract(Head, Body) :- '_$multifile_retract'(Head, _, New_Head), - check_retract(New_Head, retract/1), + check_retract(New_Head, multifile_retract/1), conpsc(New_Head, PSC), psc_type(PSC,Type), (Type =:= T_PRED /* is compiled */ @@ -344,7 +344,7 @@ psc_type(PSC,Type), (Type =:= T_PRED /* is Compiled */ -> functor(Head,F,A), - abort(['Not permitted to retract from static predicate', F/A]) + abort(['Not permitted to retract from static predicate', F/A, Rule]) ; Type =:= T_DYNA, psc_ep(PSC, Prref), /* get Prref */ db_retract(Head, Body, Prref) @@ -369,7 +369,7 @@ psc_type(PSC,Type), (Type =:= T_PRED /* is Compiled */ -> functor(Fact,F,A), - abort(['Not permitted to retract from static predicate', F/A]) + abort(['Not permitted to retract from static predicate', F/A, Fact]) ; ( Type =:= T_DYNA -> psc_ep(PSC, Prref), /* get Prref */ @@ -388,7 +388,7 @@ psc_type(PSC,Type), (Type =:= T_PRED /* is Compiled */ -> functor(Head,F,A), - abort(['Not permitted to retract from static predicate', F/A]) + abort(['Not permitted to retract from static predicate', F/A, Rule]) ; Type =:= T_DYNA, psc_ep(PSC, Prref), /* get Prref */ db_retract_nr(Head, Body, Prref) @@ -400,7 +400,7 @@ psc_type(PSC,Type), (Type =:= T_PRED /* is compiled */ -> functor(Fact,F,A), - abort(['Not permitted to retract from static predicate', F/A]) + abort(['Not permitted to retract from static predicate', F/A, Fact]) ; ( Type =:= T_DYNA -> psc_ep(PSC, Prref), /* get Prref */ @@ -430,14 +430,15 @@ ( var(Head) -> abort(('Uninstantiated argument 1 of ', Pred)) ; callable(Head) -> - ( functor(Head, F, A), standard_symbol(F, A, _Prop) -> - abort(('Not permitted to retract clauses of built-in predicate ', F/A)) - ; true + ( functor(Head, F, A), + standard_symbol(F, A, _Prop), + \+ standard_dynamic_symbol(F, A) -> + abort(('Not permitted to retract clauses of built-in predicate ', F/A, ' ', Head, ' in ', Pred)) + ; true ) ; abort(('Wrong type in argument 1 of ', Pred, ' (callable term expected)')) ). - /*======================================================================*/ /* abolish(+Pred/+Arity) or abolish(+PredSpec) */ Index: assert.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/assert.xwam,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 Binary files /tmp/cvsoSzj2G and /tmp/cvsYlCP8f differ Index: consult.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/consult.H,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- consult.H 20 Sep 2002 06:00:01 -0000 1.24 +++ consult.H 22 Jul 2003 17:22:07 -0000 1.25 @@ -71,3 +71,4 @@ :- import xsb_configuration/2 from xsb_configuration. :- import banner_control/1 from banner. +:- import (multifile)/1 from standard. Index: consult.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/consult.P,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- consult.P 20 Sep 2002 06:00:01 -0000 1.38 +++ consult.P 22 Jul 2003 17:22:07 -0000 1.39 @@ -380,7 +380,7 @@ functor(TT1, apply, A), TT1 =.. [apply|Args], TT2 =.. [P_Mod|Args], - call(multifile([apply/A, TT1, TT2])), + multifile([apply/A, TT1, TT2]), multifile_apply(ModName) ; true ). @@ -398,7 +398,7 @@ functor(TT1, P, A), TT1 =.. [P|Args], TT2 =.. [P_Mod|Args], - call(multifile([P/A, TT1, TT2])), + multifile([P/A, TT1, TT2]), multifile_query(ModName) ; true). Index: consult.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/consult.xwam,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 Binary files /tmp/cvsFAfDwM and /tmp/cvsEopCHo differ Index: dcg.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/dcg.H,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- dcg.H 13 Apr 2002 05:01:59 -0000 1.9 +++ dcg.H 22 Jul 2003 17:22:07 -0000 1.10 @@ -35,6 +35,7 @@ :- import stat_set_flag/2 from machine. :- import assert/1, retractall/1, (dynamic)/1 from assert. :- import abolish_all_tables/0 from tables. +:- import (:-)/2 from usermod. /* ----------------------- end of file dcg.H -------------------------- */ Index: dcg.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/dcg.xwam,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 Binary files /tmp/cvsD6mIFO and /tmp/cvsObdo3s differ Index: debugger.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/debugger.xwam,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 Binary files /tmp/cvswzlRMP and /tmp/cvsCabqdv differ Index: standard.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/standard.P,v retrieving revision 1.70 retrieving revision 1.71 diff -u -r1.70 -r1.71 --- standard.P 6 May 2003 21:57:37 -0000 1.70 +++ standard.P 22 Jul 2003 17:22:07 -0000 1.71 @@ -38,6 +38,7 @@ #include "psc_defs.h" #include "builtin.h" +:- import (:-)/2 from usermod. /************************/ /* INPUT and OUTPUT */ Index: standard.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/standard.xwam,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 Binary files /tmp/cvsmVn9ER and /tmp/cvsMdzGfB differ Index: std_xsb.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/std_xsb.H,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- std_xsb.H 18 Jul 2003 22:29:25 -0000 1.2 +++ std_xsb.H 22 Jul 2003 17:22:07 -0000 1.3 @@ -25,3 +25,4 @@ :- export standard_symbol/3. :- export standard_metapredicate/3. +:- export standard_dynamic_symbol/2. Index: std_xsb.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/std_xsb.P,v retrieving revision 1.66 retrieving revision 1.67 diff -u -r1.66 -r1.67 --- std_xsb.P 18 Jul 2003 22:29:25 -0000 1.66 +++ std_xsb.P 22 Jul 2003 17:22:07 -0000 1.67 @@ -180,9 +180,9 @@ standard_symbol(is_charlist, 1, machine). standard_symbol(is_absolute_filename, 1, machine). standard_symbol(keysort, 2, setof). -%% Note: DON'T make library directory a standard predicate: XSB will deny -%% assertions into it!!! - mk -%% standard_symbol(library_directory, 1, usermod). +standard_symbol(library_directory, 1, usermod). +standard_dynamic_symbol(library_directory,1). + standard_symbol(listing, 0, standard). standard_symbol(listing, 1, standard). standard_symbol(ls, 0, shell). @@ -347,5 +347,8 @@ standard_symbol((','), 2, standard). standard_symbol(('->'), 2, standard). standard_symbol(('^'), 2, setof). + +standard_symbol((:-), 2, usermod). +standard_symbol((-->), 2, usermod). /* ---------------------- end of file std_xsb.P ----------------------- */ Index: std_xsb.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/std_xsb.xwam,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 Binary files /tmp/cvsZIS8WW and /tmp/cvsaP6DBJ differ Index: x_interp.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/x_interp.xwam,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 Binary files /tmp/cvsO75h0X and /tmp/cvsQR6AJL differ |