]> Repositorios git - scryer-prolog.git/commitdiff
shrink scope of control_entry_point catch, add CutPoint tag to printer
authorMark <[email protected]>
Wed, 5 Jul 2023 20:50:38 +0000 (14:50 -0600)
committerMark <[email protected]>
Wed, 5 Jul 2023 20:50:49 +0000 (14:50 -0600)
src/heap_print.rs
src/lib/builtins.pl

index 10a211a1fe177f5e8dedfdf4586fd38877a863ac..7e628949f85fd3b1305f4f096a9f7ef485d30bb1 100644 (file)
@@ -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) => {
index 4794c60353c5acc5b311cc1d6e1e1e07b9e32041..db5282f7f698992abe0cb0f24720dc2301dced43 100644 (file)
@@ -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'.