Update of /cvsroot/xsb/XSB/syslib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26921 Modified Files: assert.H assert.P assert.xwam basics.xwam consult.xwam curr_sym.xwam dbclause.H dbclause.P dbclause.xwam dcg.xwam debugger.xwam domain.xwam error_handler.xwam eval.xwam file_io.xwam file_op.xwam gensym.xwam hilogsym.xwam machine.H machine.P machine.xwam setof.xwam shell.xwam standard.xwam string.xwam tables.xwam thread.H thread.P thread.xwam unix.xwam x_interp.H x_interp.P x_interp.xwam Log Message: Changes for garbage collection of dynamic code. At a broad level, upon retract, retractall, abolish, or gc of dynamic clauses 1) a check is made to determine whether it is safe to reclaim the space of the clause(s). If so, the space is reclaimed immediately, if not the clause(s) are marked for deletion, and a frame for them put onto a list for later gc. Safety is ensured when: a) The predicate is private OR there is a single active thread AND b) a check of the CP stack determines that it is safe to reclaim spaces for the predicate, AND c) if the predicate is tabled, there is no incomplete table for that predicate. 2) gc is invoked upon the top-level interpreter, in gen_retractall(), and can be invoked manually. I'm open to other suggestions on when to invoke it. 3) I've tested it a fair amount (see the updates in retract tests, and please update the tests if you're a developer), but given private and shared predicates, various indexing mechanisms, and tabled dynamic predicates, there could be some interactions that I didn't account for. 4) I'll be making a few more changes over the next week, particularly for gc-ing in the MT environment and in making non-"abolish" retractalls more efficient. 5) I have not changed the semantics of assert/retract. There are a lot of arguments in favor of going to an ISO-style semantics, but I wanted to get this gc in. 6) retract_nr/1 and reclaim_space/1 are now obsolete, although I've left the code around for compatability. Index: assert.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/assert.H,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- assert.H 8 Aug 2005 17:10:21 -0000 1.23 +++ assert.H 17 Apr 2006 20:51:30 -0000 1.24 @@ -39,8 +39,8 @@ :- import default_assert_size/1 from config. -:- import db_retract/3, db_retractall/2, db_abolish/1, db_clause/4, - db_retract_nr/3, db_reclaim_space/2 +:- import db_retract/4, db_retractall/3, db_abolish/1, db_clause/4, + db_retract_nr/4, db_reclaim_space/2 from dbclause. :- import instantiation_error/3 , permission_error/4, @@ -50,8 +50,8 @@ retract_index/1, retract_table/1, mpa_to_skel/2 from file_op. :- import psc_ep/2, psc_type/2, psc_set_type/2, psc_arity/2, conpsc/2, assert_code_to_buff/1, assert_buff_to_clref/6, - psc_set_ep/2, unload_seg/1, db_build_prref/3, db_get_prref/2, - code_call/3, db_retract0/2 + psc_set_ep/2, unload_seg/1, db_build_prref/3, db_get_prref/2, + code_call/3, db_retract0/3 from machine. :- import parsort/4 from machine. :- import db_get_last_clause/4 from machine. @@ -68,3 +68,5 @@ :- import xsb_sys_mutex_lock/1, xsb_sys_mutex_unlock/1 from thread. :- import call_xsb_hook/3, xsb_assert_hook/1, xsb_retract_hook/1 from xsb_hook. + + :- import obsolete/2 from obsolete. Index: assert.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/assert.P,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- assert.P 17 Dec 2005 02:47:33 -0000 1.34 +++ assert.P 17 Apr 2006 20:51:30 -0000 1.35 @@ -348,16 +348,18 @@ db_build_prref(PSC, _Tabled, Prref). /*======================================================================*/ -/* get_dynamic_pred_ep(+PHead,+CallingRef,-PredEP): */ +/* get_dynamic_pred_ep(+PHead,+CallingRef,-PredEP,-PSC): */ /* returns the PredEP for the predicate that is the main functor */ /* symbol of PHead. CallingRef is used in the error message */ /* thrown if PHead is a compiled predicate. The predicate fails */ /* if PHead is undefined, and succeeds returning the PredEP if */ /* PHead is a dynamic predicate. */ +/* */ +/* TLS: changed to return PSC, also */ /* */ /*======================================================================*/ -get_dynamic_pred_ep(Head,CallingPred,PredEP) :- +get_dynamic_pred_ep(Head,CallingPred,PredEP,PSC) :- conpsc(Head, PSC), psc_type(PSC,Type), (Type =:= T_PRED /* is compiled */ @@ -397,9 +399,9 @@ do_multifile_retract(Head, Body) :- '_$multifile_retract'(Head, _, New_Head), check_retract(New_Head, multifile_retract/1), - (get_dynamic_pred_ep(New_Head,'retract/1',PredEP) + (get_dynamic_pred_ep(New_Head,'retract/1',PredEP,PSC) -> true - ; db_retract(New_Head, Body, PredEP) + ; db_retract(New_Head, Body, PredEP, PSC) ). @@ -409,8 +411,8 @@ ; Head = Rule, Body = true ), check_retract(Head, retract/1), - get_dynamic_pred_ep(Head,'retract/1',PredEP), - db_retract(Head, Body, PredEP). + get_dynamic_pred_ep(Head,'retract/1',PredEP,PSC), + db_retract(Head, Body, PredEP,PSC). retractall(Fact) :- call_xsb_hook(xsb_retract_hook(_),[Fact,true],all), @@ -427,23 +429,25 @@ retractall0(Fact) :- check_retract(Fact, retractall/1), - (get_dynamic_pred_ep(Fact,'retractall/1',PredEP) - -> db_retractall(Fact, PredEP) + (get_dynamic_pred_ep(Fact,'retractall/1',PredEP,PSC) + -> db_retractall(Fact, PredEP,PSC) ; true ). retract_nr(Rule) :- + obsolete(retract_nr/1, retract/1), (Rule = (Head :- Body) -> true ; Head = Rule, Body = true ), check_retract(Head, retract_nr/1), - get_dynamic_pred_ep(Head,'retract_nr/1',PredEP), - db_retract_nr(Head, Body, PredEP). + get_dynamic_pred_ep(Head,'retract_nr/1',PredEP,PSC), + db_retract_nr(Head, Body, PredEP,PSC). reclaim_space(Fact) :- + obsolete(reclaim_space/1, gc_dynamic/0), check_retract(Fact, reclaim_space/1), - (get_dynamic_pred_ep(Fact,'reclaim_space/1',PredEP) + (get_dynamic_pred_ep(Fact,'reclaim_space/1',PredEP,_PSC) -> db_reclaim_space(Fact, PredEP) ; true ). @@ -462,10 +466,10 @@ -> true ; instantiation_error(retract_last_fact/1,1,skeleton) ), - get_dynamic_pred_ep(Skel,'retract_last_fact/1',PredEP), + get_dynamic_pred_ep(Skel,'retract_last_fact/1',PredEP,PSC), db_get_last_clause(PredEP,Clref,_Type,EntryPoint), do_dyn_code_call(EntryPoint,Skel), - db_retract0(Clref,0). + db_retract0(Clref,0,PSC). do_dyn_code_call(EntryPt,Skel) :- code_call(EntryPt,Skel,1). % 1 => dynamic pred, and last call in clause. @@ -579,7 +583,7 @@ clause0(Head, Body) :- - get_dynamic_pred_ep(Head,'clause0/2',PredEP), + get_dynamic_pred_ep(Head,'clause0/2',PredEP,_PSC), db_clause(Head,Body,PredEP,_Clref). Index: assert.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/assert.xwam,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 Binary files /tmp/cvsoeq67T and /tmp/cvsLm5Jq5 differ Index: basics.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/basics.xwam,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 Binary files /tmp/cvsiyNkn5 and /tmp/cvsyl9seh differ Index: consult.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/consult.xwam,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 Binary files /tmp/cvsbpJQp7 and /tmp/cvszPhfmj differ Index: curr_sym.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/curr_sym.xwam,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 Binary files /tmp/cvsyVmNv9 and /tmp/cvs0Iuuxl differ Index: dbclause.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/dbclause.H,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- dbclause.H 29 Sep 2005 15:53:04 -0000 1.16 +++ dbclause.H 17 Apr 2006 20:51:30 -0000 1.17 @@ -23,16 +23,16 @@ */ -:- export db_retract/3, db_retract_nr/3, db_reclaim_space/2. -:- export db_clause/4, db_retractall/2, db_abolish/1, '_$clause_int'/1. +:- export db_retract/4, db_retract_nr/4, db_reclaim_space/2. +:- export db_clause/4, db_retractall/3, db_abolish/1, '_$clause_int'/1. :- import abort/1, atom/1, call_c/1, repeat/0, is_most_general_term/1 from standard. :- import set_inthandler/2, '_$load_undef'/1 from loader. :- import log_ith/3 from basics. :- import stat_set_flag/2, code_call/3, conname/2, - gen_retract_all/1, - db_get_clause/11, db_retract0/2, db_remove_prref/1, db_reclaim0/2, + gen_retract_all/2, + db_get_clause/11, db_retract0/3, db_remove_prref/2, db_reclaim0/2, globalvar/1, term_set_arg/4, psc_ep/2, trie_assert_hdr_info/3 from machine. Index: dbclause.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/dbclause.P,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- dbclause.P 29 Sep 2005 15:53:04 -0000 1.28 +++ dbclause.P 17 Apr 2006 20:51:30 -0000 1.29 @@ -1,4 +1,4 @@ -/* File: dbclause.P +/* File: db_clause.P ** Author(s): David S. Warren, Kostis Sagonas ** Contact: xsb...@cs... ** @@ -23,7 +23,7 @@ */ -:- compiler_options([xpp_on]). +:- compiler_options([xpp_on,sysmod,optimize]). #include "builtin.h" #include "sig_xsb.h" #include "flag_defs_xsb.h" @@ -39,34 +39,33 @@ /************************************************************************/ -% db_retract(+Head,+Body,+PredEP) deletes clauses and reclaims space +% db_retract(+Head,+Body,+PredEP,+PSC) deletes clauses and reclaims space -db_retract(Head,Body,PredEP) :- +db_retract(Head,Body,PredEP,PSC) :- goal_cut_trans_a(Body,Tbody,_), db_get_clauses(PredEP,0,Head,0,Clref,Typ,EntryP), chk_if_trie_assert(Clref,Result,TrieNodeAddr), (Result == trie -> call_trie_retract(Head,Body,Clref,TrieNodeAddr) ; db_clause_match(Head,Tbody,EntryP), - db_do_retract(Typ,Clref,0) + db_do_retract(Typ,Clref,0,PSC) ). - -%% Don''t reclaim space -db_retract_nr(Head,Body,PredEP) :- +%% Don't reclaim space +db_retract_nr(Head,Body,PredEP,PSC) :- goal_cut_trans_a(Body,Tbody,_), db_get_clauses(PredEP,0,Head,0,Clref,Typ,EntryP), chk_if_trie_assert(Clref,Result,TrieNodeAddr), (Result == trie -> call_trie_retract_nr(Head,Body,TrieNodeAddr) ; db_clause_match(Head,Tbody,EntryP), - db_do_retract(Typ,Clref,1) % 1 -> Don''t reclaim space! ***** + db_do_retract(Typ,Clref,1,PSC) % 1 -> Don''t reclaim space! ***** ). -db_do_retract(1,_Clref,_) :- !, fail. -db_do_retract(2,_Clref,_) :- !, abort('Cannot erase compiled code'). -db_do_retract(_Typ,Clref,DontReclaim) :- - db_retract0(Clref,DontReclaim). +db_do_retract(1,_Clref,_,_PSC) :- !, fail. +db_do_retract(2,_Clref,_,_PSC) :- !, abort('Cannot erase compiled code'). +db_do_retract(_Typ,Clref,DontReclaim,PSC) :- + db_retract0(Clref,DontReclaim,PSC). % transform a goal to turn cuts (!) into '_$cutto's. Differs from % goal_cut_trans in that variables are not wrapped with call/1, @@ -91,14 +90,15 @@ hack_consult([X|Y],(consult(X),Z)) :- !,hack_consult(Y,Z). -% db_retractall(+Call,+PredEP) deletes all clauses matching a pattern +% db_retractall(+Call,+PredEP,+PSC) deletes all clauses matching a pattern +/* TLS: passing down PSC now to check for shared/private */ -db_retractall(Call,PredEP) :- - ( is_most_general_term(Call) -> db_retract_abol(PredEP) - ; db_retract(Call,_,PredEP) +db_retractall(Call,PredEP,Psc) :- + ( is_most_general_term(Call) -> db_retract_abol(PredEP,Psc) + ; db_retract(Call,_,PredEP,Psc) ), fail. -db_retractall(_,_). +db_retractall(_,_,_). /* This predicate works as follows. It starts with a pointer from a PSC record, and finds the PrRef. If the predicate is tabled (via a @@ -111,16 +111,20 @@ then jumps. */ %%:- import writeln/1 from standard. -db_retract_abol(PredEP1) :- - gen_retract_all(PredEP1). +db_retract_abol(PredEP1,PSC) :- + gen_retract_all(PredEP1,PSC). /* db_abolish(+Psc) deletes all clauses of a predicate and abolishes -its prref structures */ +its prref structures. */ + +/* db_remove_prref now peforms analog of gen_retractall AND removes + prref. However, their semantics are somewhat different + w.r.t. tables and threads. See doc in biassert.c for details. */ db_abolish(Psc) :- psc_ep(Psc, PredEP), - db_retract_abol(PredEP), - db_remove_prref(Psc). +% db_retract_abol(PredEP,Psc). + db_remove_prref(PredEP,Psc). % db_clause(+Head,?Body,+PredEP,-Clref) retrieves a clause. Index: dbclause.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/dbclause.xwam,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 Binary files /tmp/cvsP1zZ9h and /tmp/cvsLFcEru differ Index: dcg.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/dcg.xwam,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 Binary files /tmp/cvspLtyRh and /tmp/cvst7YLeu differ Index: debugger.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/debugger.xwam,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 Binary files /tmp/cvsQ6KN3j and /tmp/cvs29Eiww differ Index: domain.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/domain.xwam,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 Binary files /tmp/cvsS35u3l and /tmp/cvs7anYAy differ Index: error_handler.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/error_handler.xwam,v retrieving revision 1.47 retrieving revision 1.48 diff -u -r1.47 -r1.48 Binary files /tmp/cvsKYy6do and /tmp/cvs5Fw7QA differ Index: eval.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/eval.xwam,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 Binary files /tmp/cvsqxgTzs and /tmp/cvsIsaniF differ Index: file_io.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/file_io.xwam,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 Binary files /tmp/cvsC0yHlt and /tmp/cvsGHc8bG differ Index: file_op.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/file_op.xwam,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 Binary files /tmp/cvs6LbIqo and /tmp/cvsN0hUmB differ Index: gensym.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/gensym.xwam,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 Binary files /tmp/cvsZbX1Cr and /tmp/cvs1WtjHE differ Index: hilogsym.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/hilogsym.xwam,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 Binary files /tmp/cvsZ72ATt and /tmp/cvsvSng3G differ Index: machine.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/machine.H,v retrieving revision 1.74 retrieving revision 1.75 diff -u -r1.74 -r1.75 --- machine.H 31 Jan 2006 00:24:16 -0000 1.74 +++ machine.H 17 Apr 2006 20:51:30 -0000 1.75 @@ -120,12 +120,12 @@ formatted_io/5, file_read_canonical/3, db_get_last_clause/4, - gen_retract_all/1, + gen_retract_all/2, db_get_clause/11, - db_retract0/2, + db_retract0/3, db_build_prref/3, db_get_prref/2, - db_remove_prref/1, + db_remove_prref/2, db_reclaim0/2, oracle_query/7, odbc_exec_query/6, Index: machine.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/machine.P,v retrieving revision 1.82 retrieving revision 1.83 diff -u -r1.82 -r1.83 --- machine.P 31 Jan 2006 00:24:16 -0000 1.82 +++ machine.P 17 Apr 2006 20:51:30 -0000 1.83 @@ -209,16 +209,16 @@ assert_buff_to_clref(Head, NAri, Prref, AZ, RInd, HashTabSize). file_read_canonical(_File,_Var,_Ret) :- '_$builtin'(FILE_READ_CANONICAL). -gen_retract_all(_Buff) :- '_$builtin'(GEN_RETRACT_ALL). +gen_retract_all(_Buff,_PSC) :- '_$builtin'(GEN_RETRACT_ALL). db_get_last_clause(_PrRef,_Clause,_Type,_Entry) :- '_$builtin'(DB_GET_LAST_CLAUSE). -db_retract0(_Clause,_DontReclaim) :- '_$builtin'(DB_RETRACT0). +db_retract0(_Clause,_DontReclaim,_PSC) :- '_$builtin'(DB_RETRACT0). db_get_clause(_CC0,_CIL,_CI,_PrRef,_Head,_Failed,_Clause,_Type,_Entry,_NCIL,_NCI) :- '_$builtin'(DB_GET_CLAUSE). db_build_prref(_PSC,_Tabled,_PrRef) :- '_$builtin'(DB_BUILD_PRREF). db_get_prref(_PSC,_PrRef) :- '_$builtin'(DB_GET_PRREF). -db_remove_prref(_Prref) :- '_$builtin'(DB_REMOVE_PRREF). +db_remove_prref(_Prref,_PSC) :- '_$builtin'(DB_REMOVE_PRREF). db_reclaim0(_Clause,_Type) :- '_$builtin'(DB_RECLAIM0). formatted_io(_OPnumber, _FileOrString,_Format,_ArgTerm,_RetCode) :- Index: machine.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/machine.xwam,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 Binary files /tmp/cvsMj2O2A and /tmp/cvsLj3GuO differ Index: setof.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/setof.xwam,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 Binary files /tmp/cvshkKgcD and /tmp/cvs5dHyJQ differ Index: shell.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/shell.xwam,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 Binary files /tmp/cvsUVYjYC and /tmp/cvs8ZIZAQ differ Index: standard.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/standard.xwam,v retrieving revision 1.74 retrieving revision 1.75 diff -u -r1.74 -r1.75 Binary files /tmp/cvsCB47uI and /tmp/cvsE8xsgW differ Index: string.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/string.xwam,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 Binary files /tmp/cvseYltJK and /tmp/cvsYOakAY differ Index: tables.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/tables.xwam,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 Binary files /tmp/cvsCaxGhN and /tmp/cvsysuDe1 differ Index: thread.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/thread.H,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- thread.H 9 Feb 2006 17:28:57 -0000 1.9 +++ thread.H 17 Apr 2006 20:51:31 -0000 1.10 @@ -22,7 +22,8 @@ ** */ -:- export xsb_thread_cancel/1, +:- export abolish_private_tables/0,abolish_shared_tables/0, + xsb_thread_cancel/1, xsb_thread_create/2,xsb_thread_create/3, xsb_thread_detach/1, xsb_thread_exit/1, Index: thread.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/thread.P,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- thread.P 9 Feb 2006 17:28:57 -0000 1.9 +++ thread.P 17 Apr 2006 20:51:31 -0000 1.10 @@ -126,6 +126,12 @@ xsb_thread_yield:- thread_request( XSB_THREAD_YIELD, _,_,_, _, _, _, _). +abolish_private_tables:- + thread_request( ABOLISH_PRIVATE_TABLES, _,_,_, _, _, _, _). + +abolish_shared_tables:- + thread_request( ABOLISH_SHARED_TABLES, _,_,_, _, _, _, _). + /* ================================================================== */ /* System provided mutexes for users */ @@ -259,5 +265,5 @@ xsb_thread_join( ThreadId, ExitCode, ErrorVal ) :- thread_request( XSB_THREAD_JOIN, ThreadId, ExitCode, _, _,_,_,_ ). -xsb_thread_create( Goal ) :- xsb_thread_create( Goal, _, _ ). +%xsb_thread_create( Goal ) :- xsb_thread_create( Goal, _, _ ). Index: thread.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/thread.xwam,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 Binary files /tmp/cvsQrR4vW and /tmp/cvsknzqWa differ Index: unix.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/unix.xwam,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 Binary files /tmp/cvspuBqu4 and /tmp/cvsJbbr9i differ Index: x_interp.H =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/x_interp.H,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- x_interp.H 6 Feb 2006 20:09:08 -0000 1.39 +++ x_interp.H 17 Apr 2006 20:51:31 -0000 1.40 @@ -36,7 +36,8 @@ %% These are explicitly imported because they are used early on, %% before XSB is fully bootstrapped. :- import abort/0, call/1, call_c/1, call_expose/1, catch/3, goal_cut_trans/3, - atom_codes/2, seeing/1, telling/1, see/1, tell/1, seen/0, told/0 + atom_codes/2, seeing/1, telling/1, see/1, tell/1, seen/0, told/0, + gc_tables/1,gc_dynamic/1 from standard. :- import '$$exception_ball'/2 from standard. :- import close_open_tables/0, conname/2, Index: x_interp.P =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/x_interp.P,v retrieving revision 1.52 retrieving revision 1.53 diff -u -r1.52 -r1.53 --- x_interp.P 6 Feb 2006 20:09:08 -0000 1.52 +++ x_interp.P 17 Apr 2006 20:51:31 -0000 1.53 @@ -101,6 +101,7 @@ %% the handler when it starts up, which will cause a lot of grief x_interp_repeat, trimcore, + gc_tables(_),gc_dynamic(_), stat_set_flag(HIDE_STATE, 1), %% hide call interceptions. stat_set_flag(INVOKE_NUM, 0), conset('_$break_level', 0), Index: x_interp.xwam =================================================================== RCS file: /cvsroot/xsb/XSB/syslib/x_interp.xwam,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 Binary files /tmp/cvsFw7lLa and /tmp/cvsKe6TLp differ |