From: Markus Triska Date: Sun, 8 Oct 2023 07:43:10 +0000 (+0200) Subject: FIXED: variables in reified propagators must share the same queue X-Git-Tag: remove~45^2~4 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=4d910f6bfe346ac4e0af20644a6ab6d0bb99f6fd;p=scryer-prolog.git FIXED: variables in reified propagators must share the same queue Otherwise, propagation steps may be inadvertently omitted, if propagators are scheduled in a different queue. This addresses #2084. --- diff --git a/src/lib/clpz.pl b/src/lib/clpz.pl index 18475721..7bace705 100644 --- a/src/lib/clpz.pl +++ b/src/lib/clpz.pl @@ -3625,7 +3625,8 @@ reified_goal(g(Goal), _) --> [{Goal}]. reified_goal(p(Vs, Prop), _) --> [{make_propagator(Prop, P)}], parse_init_dcg(Vs, P), - [{trigger_once(P)}], + [{variables_same_queue(Vs), + trigger_once(P)}], [( { propagator_state(P, S), S == dead } -> [] ; [p(P)])]. reified_goal(p(Prop), Ds) --> { term_variables(Prop, Vs) },