Files
scryer-prolog/src/lib
Markus Triska cacc7f3193 FIXED: Queue triggered propagators to be processed after pexp/3 finishes
If reification constraints (such as reified equality) are triggered
here, then they may wish to disable this propagator and remove
attributes from auxiliary variables. If the pexp/3 propagation is
interrupted for that purpose, then the attributes will be
unintentionally reattached by the following fd_put/3 calls in this
propagator. We must ensure that this propagator completely finishes,
so we queue the triggered propagators for later processing.

geq/2 implements propagator activation outside the queue, and thus
should not be used in propagators in the way it was used here.

pexp/3 by itself may not seem particularly important. However, it can
arise by metamorphosis from Var*Var. Example:

    ?- A#<==> -1#=C*C, C in 0..1.
       A = 0, clpz:(C in 0..1).

This addresses #2089.
2023-10-09 20:42:28 +02:00
..
2023-10-02 23:49:09 +02:00
2023-01-19 21:18:40 +01:00
2023-01-29 22:36:16 +01:00
2023-09-21 14:00:37 -03:00
2023-02-28 22:09:35 +01:00
2023-01-19 21:15:25 +01:00
2023-01-22 17:45:50 +01:00
2023-01-19 21:15:25 +01:00
2023-01-19 21:15:25 +01:00
2022-10-26 23:36:07 -06:00
2023-01-19 21:15:25 +01:00
2023-01-19 21:15:25 +01:00