fix abolish/1

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@182 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc 2001-11-16 20:27:06 +00:00
parent c85d9ee978
commit b2934a5aeb
5 changed files with 17 additions and 7 deletions

View File

@ -2134,7 +2134,7 @@ InitCdMgr(void)
InitCPred("$optimizer_on", 0, p_optimizer_on, SafePredFlag|SyncPredFlag); InitCPred("$optimizer_on", 0, p_optimizer_on, SafePredFlag|SyncPredFlag);
InitCPred("$clean_up_dead_clauses", 0, p_clean_up_dead_clauses, SyncPredFlag); InitCPred("$clean_up_dead_clauses", 0, p_clean_up_dead_clauses, SyncPredFlag);
InitCPred("$optimizer_off", 0, p_optimizer_off, SafePredFlag|SyncPredFlag); InitCPred("$optimizer_off", 0, p_optimizer_off, SafePredFlag|SyncPredFlag);
InitCPred("$kill_dynamic", 1, p_kill_dynamic, SafePredFlag|SyncPredFlag); InitCPred("$kill_dynamic", 2, p_kill_dynamic, SafePredFlag|SyncPredFlag);
InitCPred("$in_this_file_before", 3, p_in_this_f_before, SafePredFlag); InitCPred("$in_this_file_before", 3, p_in_this_f_before, SafePredFlag);
InitCPred("$first_clause_in_file", 3, p_first_cl_in_f, SafePredFlag); InitCPred("$first_clause_in_file", 3, p_first_cl_in_f, SafePredFlag);
InitCPred("$mk_cl_not_first", 2, p_mk_cl_not_first, SafePredFlag); InitCPred("$mk_cl_not_first", 2, p_mk_cl_not_first, SafePredFlag);

View File

@ -130,10 +130,10 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args)
extern int gc_calls; extern int gc_calls;
vsc_count++; vsc_count++;
/* if (vsc_count < 24) return; */ /* if (vsc_count <178000) return; */
/* if (vsc_count > 500000) exit(0); */ /* if (vsc_count > 500000) exit(0); */
/* if (gc_calls < 1) return;*/ /* if (gc_calls < 1) return;*/
YP_fprintf(YP_stderr,"%lu (%d)", vsc_count, CurrentModule); YP_fprintf(YP_stderr,"%lu ", vsc_count);
/* check_trail_consistency(); */ /* check_trail_consistency(); */
if (pred == NULL) { if (pred == NULL) {
return; return;

View File

@ -153,13 +153,20 @@
GONext(); \ GONext(); \
} }
#ifdef DEPTH_LIMIT
#define allocate_environment(PTR) \
PTR[E_CP] = (CELL) CPREG; \
PTR[E_E] = (CELL) ENV; \
PTR[E_DEPTH] = (CELL)DEPTH;\
PTR[E_B] = (CELL) B; \
ENV = PTR
#else
#define allocate_environment(PTR) \ #define allocate_environment(PTR) \
PTR[E_CP] = (CELL) CPREG; \ PTR[E_CP] = (CELL) CPREG; \
PTR[E_E] = (CELL) ENV; \ PTR[E_E] = (CELL) ENV; \
PTR[E_B] = (CELL) B; \ PTR[E_B] = (CELL) B; \
ENV = PTR ENV = PTR
#endif
/* ------------------------------ ** /* ------------------------------ **

View File

@ -16,6 +16,8 @@
<h2>Yap-4.3.20:</h2> <h2>Yap-4.3.20:</h2>
<ul> <ul>
<li>FIXED: abolish/1.</li>
<li>NEW: try to make module system really compatible.</li>
<li>CLEANUP: don't use state of Pred.</li> <li>CLEANUP: don't use state of Pred.</li>
<li>SPEEDUP: improve predicate access by linking predicates to <li>SPEEDUP: improve predicate access by linking predicates to
functors.</li> functors.</li>

View File

@ -359,14 +359,15 @@ abolish(N,A) :-
( '$recorded'('$predicate_defs','$predicate_defs'(N,A,_),R) -> erase(R) ), ( '$recorded'('$predicate_defs','$predicate_defs'(N,A,_),R) -> erase(R) ),
fail. fail.
'$abolish'(N,A,M) :- functor(T,N,A), '$abolish'(N,A,M) :- functor(T,N,A),
( '$is_dynamic'(T) -> '$abolishd'(T,M) ; ( '$is_dynamic'(T, M) -> '$abolishd'(T,M) ;
/* else */ '$abolishs'(T,M) ). /* else */ '$abolishs'(T,M) ).
abolish(X) :- abolish(X) :-
'$access_yap_flags'(8, 2), !, '$access_yap_flags'(8, 2), !,
'$current_module'(M), '$current_module'(M),
'$new_abolish'(X,M). '$new_abolish'(X,M).
abolish(X,M) :- abolish(X) :-
'$current_module'(M),
'$old_abolish'(X,M). '$old_abolish'(X,M).
'$new_abolish'(V,M) :- var(V,N), !, '$new_abolish'(V,M) :- var(V,N), !,