From cfc13a0d619bb29bf40fee7f0335428181bf2aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADtor=20Santos=20Costa?= Date: Thu, 10 Nov 2011 12:27:36 +0000 Subject: [PATCH] improve term expansion: avoid duplicated calls and handle throws gracefully. --- pl/boot.yap | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pl/boot.yap b/pl/boot.yap index bb350bf8e..81d411ded 100644 --- a/pl/boot.yap +++ b/pl/boot.yap @@ -279,7 +279,7 @@ true :- true. '$execute_commands'([],_,_,_,_) :- !. '$execute_commands'([C|Cs],VL,Pos,Con,Source) :- !, ( - '$execute_command'(C,VL,Pos,Con,Source), + '$system_catch'('$execute_command'(C,VL,Pos,Con,C),prolog,Error,user:'$LoopError'(Error, Con)), fail ; '$execute_commands'(Cs,VL,Pos,Con,Source) @@ -287,8 +287,6 @@ true :- true. '$execute_commands'(C,VL,Pos,Con,Source) :- '$execute_command'(C,VL,Pos,Con,Source). - - % % % @@ -1111,11 +1109,12 @@ bootstrap(F) :- expand_term(Term,Expanded) :- - ( '$current_module'(Mod), \+ '$undefined'(term_expansion(_,_), Mod), + '$current_module'(Mod), + ( \+ '$undefined'(term_expansion(_,_), Mod), '$notrace'(Mod:term_expansion(Term,Expanded)) ; \+ '$undefined'(term_expansion(_,_), system), '$notrace'(system:term_expansion(Term,Expanded)) - ; \+ '$undefined'(term_expansion(_,_), user), + ; Mod \= user, \+ '$undefined'(term_expansion(_,_), user), '$notrace'(user:term_expansion(Term,Expanded)) ; '$expand_term_grammar'(Term,Expanded)