From: Mark Thom Date: Sat, 2 May 2020 02:38:44 +0000 (-0300) Subject: remove now unnecessary dependencies, correct ordering of ! in (;)/3 X-Git-Tag: v0.8.123~73 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=9dabce819aac96ad4383793f2d91beed90184d5f;p=scryer-prolog.git remove now unnecessary dependencies, correct ordering of ! in (;)/3 --- diff --git a/src/main.rs b/src/main.rs index ff24d88c..fc38f3f0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,7 +13,6 @@ extern crate prolog_parser; #[macro_use] extern crate ref_thread_local; -use git_version::git_version; use nix::sys::signal; mod prolog; @@ -22,7 +21,6 @@ use crate::prolog::machine::*; use crate::prolog::machine::streams::*; use crate::prolog::read::*; -use std::env; use std::sync::atomic::Ordering; extern fn handle_sigint(signal: libc::c_int) { diff --git a/src/prolog/lib/builtins.pl b/src/prolog/lib/builtins.pl index cb676b9b..0cebab9b 100644 --- a/src/prolog/lib/builtins.pl +++ b/src/prolog/lib/builtins.pl @@ -217,8 +217,8 @@ comma_errors(G1, G2, B) :- '$call_with_default_policy'(','(G1, G2, B)). semicolon_compound_selector(->(G2, G3), G4, B) :- ( call(G2) -> call(G3) - ; '$set_cp'(B), - call(G4) + ; '$set_cp'(B), + call(G4) ). semicolon_compound_selector(','(G2, G3), G4, B) :- ( ','(G2, G3, B) @@ -233,9 +233,13 @@ semicolon_compound_selector(';'(G2, G3), G4, B) :- :- non_counted_backtracking (;)/3. ;(G1, G4, B) :- - compound(G1), - semicolon_compound_selector(G1, G4, B), - !. + ( ( G1 = (_ -> _) + ; G1 = (_ , _) + ; G1 = (_ ; _) + ) -> + !, + semicolon_compound_selector(G1, G4, B) + ). ;(G1, G2, B) :- G1 == !, !, '$set_cp'(B), call(G2). ;(G1, G2, B) :- @@ -1144,4 +1148,3 @@ parse_stream_options_(eof_action(Action), eof_action-Action) :- ). parse_stream_options_(E, _) :- throw(error(domain_error(stream_option, E), _)). % 8.11.5.3i) - diff --git a/src/prolog/toplevel.pl b/src/prolog/toplevel.pl index ad095c19..c78463b2 100644 --- a/src/prolog/toplevel.pl +++ b/src/prolog/toplevel.pl @@ -11,8 +11,8 @@ '$repl'([_|Args0]) :- \+ argv(_), ( append(Args1, ["--"|Args2], Args0) -> - asserta(argv(Args2)), - Args = Args1 + asserta(argv(Args2)), + Args = Args1 ; asserta(argv([])), Args = Args0 ), @@ -152,10 +152,10 @@ submit_query_and_print_results(Term0, VarList) :- needs_bracketing(Value, Op) :- catch((functor(Value, F, _), - current_op(EqPrec, EqSpec, Op), - current_op(FPrec, _, F)), - _, - false), + current_op(EqPrec, EqSpec, Op), + current_op(FPrec, _, F)), + _, + false), ( EqPrec < FPrec -> true ; '$quoted_token'(F) -> true ; atom_length(F, 1), graphic_token_char(F) -> true