]> Repositorios git - scryer-prolog.git/commitdiff
make return_from_clause macro respect verify_attributes
authorMark Thom <[email protected]>
Mon, 15 Apr 2019 05:15:59 +0000 (23:15 -0600)
committerMark Thom <[email protected]>
Mon, 15 Apr 2019 05:15:59 +0000 (23:15 -0600)
Cargo.toml
src/prolog/lib/builtins.pl
src/prolog/macros.rs

index 4e2f40298f8f6382f65fd8e2d76dd882e27d2e27..754d19cc9c652bd39d32f02d738c23940de4a8f3 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "scryer-prolog"
-version = "0.8.53"
+version = "0.8.54"
 authors = ["Mark Thom <[email protected]>"]
 repository = "https://github.com/mthom/scryer-prolog"
 description = "A modern Prolog implementation written mostly in Rust."
index 8036284e525609ab221460e12e7f820f1521caf2..b678b3679fa494062b83c7dfb48a38a95493eb64 100644 (file)
@@ -76,8 +76,8 @@ Module : Predicate :-
 
 current_prolog_flag(Flag, false) :- Flag == bounded, !.
 current_prolog_flag(bounded, false).
-current_prolog_flag(Flag, down) :- Flag == integer_rounding_function, !.
-current_prolog_flag(integer_rounding_function, down).
+current_prolog_flag(Flag, toward_zero) :- Flag == integer_rounding_function, !.
+current_prolog_flag(integer_rounding_function, toward_zero).
 current_prolog_flag(Flag, Value) :- Flag == double_quotes, !, '$get_double_quotes'(Value).
 current_prolog_flag(double_quotes, Value) :- '$get_double_quotes'(Value).
 current_prolog_flag(Flag, _) :- Flag == max_integer, !, '$fail'.
index 3ce06c8920754f8227e61a97a7528a3b5f97d2b4..9620fa8a7f11ec0f232398de99add9b3d81350a6 100644 (file)
@@ -178,6 +178,10 @@ macro_rules! try_eval_session {
 }
 macro_rules! return_from_clause {
     ($lco:expr, $machine_st:expr) => {{
+        if let CodePtr::VerifyAttrInterrupt(_) = $machine_st.p {
+            return Ok(());
+        }
+        
         if $lco {
             $machine_st.p = CodePtr::Local($machine_st.cp.clone());
         } else {