From: Markus Triska Date: Sun, 3 Sep 2023 22:49:40 +0000 (+0200) Subject: FIXED: make occurs_check and answer_write_options flags discoverable X-Git-Tag: remove~116^2 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=aca0de06cd7f576d0d7e7da31eba569e3a1f42fa;p=scryer-prolog.git FIXED: make occurs_check and answer_write_options flags discoverable Quoting from 7.11 Flags: NOTE - A built-in predicate current_prolog_flag(Flag, Value) (8.17.2) enables a program to discover all the flags supported by a processor and their current values. --- diff --git a/src/lib/builtins.pl b/src/lib/builtins.pl index 4625cfb2..7a81b7d3 100644 --- a/src/lib/builtins.pl +++ b/src/lib/builtins.pl @@ -161,12 +161,14 @@ current_prolog_flag(Flag, OccursCheckEnabled) :- Flag == occurs_check, !, '$is_sto_enabled'(OccursCheckEnabled). +current_prolog_flag(occurs_check, OccursCheckEnabled) :- + '$is_sto_enabled'(OccursCheckEnabled). current_prolog_flag(Flag, Value) :- Flag == answer_write_options, !, - ( iso_ext:bb_get('$answer_write_options', Value) -> true - ; Value = [] - ). + answer_write_options(Value). +current_prolog_flag(answer_write_options, Value) :- + answer_write_options(Value). current_prolog_flag(Flag, _) :- atom(Flag), throw(error(domain_error(prolog_flag, Flag), current_prolog_flag/2)). % 8.17.2.3 b @@ -174,6 +176,11 @@ current_prolog_flag(Flag, _) :- nonvar(Flag), throw(error(type_error(atom, Flag), current_prolog_flag/2)). % 8.17.2.3 a +answer_write_options(Value) :- + ( iso_ext:bb_get('$answer_write_options', Value) -> true + ; Value = [] + ). + %% set_prolog_flag(Flag, Value). % % Sets the internal value of the flag. To see the list of flags supported by Scryer Prolog,