From 5ffdd2d91ab9e5c4e3acb5accc02f54461b6f85e Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 5 Jul 2023 14:50:38 -0600 Subject: [PATCH] shrink scope of control_entry_point catch, add CutPoint tag to printer --- src/heap_print.rs | 2 +- src/lib/builtins.pl | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/heap_print.rs b/src/heap_print.rs index 10a211a1..7e628949 100644 --- a/src/heap_print.rs +++ b/src/heap_print.rs @@ -1532,7 +1532,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { }); } } - (HeapCellValueTag::Fixnum, n) => { + (HeapCellValueTag::Fixnum | HeapCellValueTag::CutPoint, n) => { self.print_number(max_depth, NumberFocus::Unfocused(Number::Fixnum(n)), &op); } (HeapCellValueTag::F64, f) => { diff --git a/src/lib/builtins.pl b/src/lib/builtins.pl index 4794c603..db5282f7 100644 --- a/src/lib/builtins.pl +++ b/src/lib/builtins.pl @@ -301,19 +301,12 @@ set_cp(B) :- '$set_cp'(B). control_entry_point(G) :- functor(G, Name, Arity), - catch(builtins:control_entry_point_(G), - dispatch_prep_error, - builtins:throw(error(type_error(callable, G), Name/Arity))). - - -:- non_counted_backtracking control_entry_point_/1. - -control_entry_point_(G) :- '$get_cp'(B), - dispatch_prep(G,B,Conts), + catch('$call'(builtins:dispatch_prep(G,B,Conts)), + dispatch_prep_error, + '$call'(builtins:throw(error(type_error(callable, G), Name/Arity)))), dispatch_call_list(Conts). - :- non_counted_backtracking cont_list_to_goal/2. cont_list_goal([Cont], Cont) :- !. @@ -771,7 +764,7 @@ catch(G,C,R,Bb) :- end_block(Bb, NBb) :- '$clean_up_block'(NBb), '$reset_block'(Bb). -end_block(Bb, NBb) :- +end_block(_Bb, NBb) :- '$reset_block'(NBb), '$fail'. -- 2.54.0