make a better effort to avoid walking through system code.
This commit is contained in:
parent
e42083a2bb
commit
f668676e72
@ -1170,7 +1170,7 @@ throw(Ball) :-
|
||||
% just leave this around to show the debugger.
|
||||
%
|
||||
'$notrace'(M:G) :-
|
||||
'$execute0'(G, M).
|
||||
'$execute_nonstop'(G, M).
|
||||
|
||||
'$oncenotrace'(M:G) :-
|
||||
'$execute0'(G, M), !.
|
||||
'$execute_nonstop'(G, M), !.
|
||||
|
@ -465,6 +465,9 @@ debugging :-
|
||||
'$system_predicate'(G,M),
|
||||
\+ '$is_metapredicate'(G,M), !,
|
||||
'$execute'(M:G).
|
||||
'$spycall'(G, M, _, _) :-
|
||||
'$system_module'(M), !,
|
||||
'$execute'(M:G).
|
||||
'$spycall'(G, M, _, _) :-
|
||||
'$tabled_predicate'(G,M),
|
||||
!,
|
||||
|
@ -661,4 +661,3 @@ abolish_module(_).
|
||||
'$conj_has_cuts'(G3, DCP, NG3, OK).
|
||||
'$conj_has_cuts'(G,_,G, _).
|
||||
|
||||
|
||||
|
@ -35,7 +35,31 @@
|
||||
% don't creep on meta-call.
|
||||
'$do_signal'(sig_creep, [M|G]) :-
|
||||
'$creep_allowed', !,
|
||||
'$start_creep'([M|G]).
|
||||
(
|
||||
( G = '$notrace'(G0) ; G = '$oncenotrace'(G0) ; G = '$execute0'(G0) ; '$system_module'(M), G = G0 )
|
||||
->
|
||||
(
|
||||
'$execute_nonstop'(G0,M),
|
||||
'$signal_creep'
|
||||
;
|
||||
'$signal_creep',
|
||||
fail
|
||||
)
|
||||
;
|
||||
'$start_creep'([M|G])
|
||||
).
|
||||
%
|
||||
'$do_signal'(sig_creep, [M|G]) :-
|
||||
( G = '$notrace'(G0) ; G = '$oncenotrace'(G0) ; G = '$execute0'(G0) ; '$system_module'(M), G = G0 ),
|
||||
!,
|
||||
(
|
||||
'$execute_nonstop'(G0,M),
|
||||
'$signal_creep'
|
||||
;
|
||||
'$signal_creep',
|
||||
fail
|
||||
).
|
||||
%
|
||||
'$do_signal'(sig_creep, [M|G]) :-
|
||||
'$signal_creep',
|
||||
'$execute_nonstop'(G,M).
|
||||
|
Reference in New Issue
Block a user