Mark Thom
b149805b9e
Merge pull request #2091 from triska/morphing_pexp
...
ENHANCED: Omit projection of morphed (^)/2 in disentailed constraints.
2023-10-09 13:43:25 -06:00
Markus Triska
99348ec309
ENHANCED: Omit projection of morphed (^)/2 in disentailed constraints.
...
Example:
?- B #<==> (0^Y/0) #= Z.
B = 0, clpz:(Y in 0..sup), clpz:(Z in inf..sup).
2023-10-09 21:33:04 +02:00
Mark Thom
c6976c0f92
Merge pull request #2090 from triska/morphing_propagators
...
FIXED: Queue triggered propagators to be processed after pexp/3 finishes
2023-10-09 13:20:44 -06:00
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
Mark
4b9cf0952e
do not push stack variables to the heap in term_variables ( #2087 )
2023-10-09 11:38:17 -06:00
Mark Thom
6d37684e9c
Merge pull request #2088 from triska/morphing_propagators
...
ENHANCED: Remove no longer needed morphed propagators.
2023-10-08 12:45:45 -06:00
Markus Triska
743412de33
ENHANCED: Remove no longer needed morphed propagators.
...
This addresses all remaining cases from #2083 , excepting (//)/2:
?- #\ 1#=(X*X)/0.
clpz:(X in inf..sup).
?- #\ 1#=(X+X)/0.
clpz:(X in inf..sup).
Still remaining:
?- #\ 0#=(Y// -1)/0.
clpz:(-1*Y#=_A).
2023-10-08 20:15:56 +02:00
Mark Thom
11c1ee4481
Merge pull request #2085 from triska/reification_same_queue
...
Use the same queue for variables in reified constraints
2023-10-08 12:01:26 -06:00
Markus Triska
f34703a279
remove no longer needed goal projection for pdiv
2023-10-08 12:07:17 +02:00
Markus Triska
5cce8ddd7d
ENHANCED: avoid pending residual constraints in disentailed reified (div)/2
...
This addresses #2083 :
?- #\0#=0//0 div 2.
true.
2023-10-08 11:53:06 +02:00
Markus Triska
ff63eacf2c
replace list//1 by seq//1 from library(dcgs)
2023-10-08 11:28:52 +02:00
Markus Triska
8121dce2a4
instead of prdiv, use ptimes directly
2023-10-08 09:46:41 +02:00
Markus Triska
4d910f6bfe
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 .
2023-10-08 09:45:20 +02:00
Markus Triska
51c00fce57
adapt query to Scryer Prolog
2023-10-08 09:26:22 +02:00
Mark
1ab14ea519
mark both components of a PStrLoc ( #2082 )
2023-10-07 18:48:49 -06:00
Mark Thom
c5c7c1913a
Merge pull request #2080 from triska/reified_slash
...
Corrections to reified (/)/2
2023-10-06 15:31:13 -06:00
Markus Triska
3fc969b38b
reorder and realign entries to form a contiguous group starting with d(D)
2023-10-06 22:58:56 +02:00
Markus Triska
7ed38d6c6c
FIXED: reification of (/)/2 for undefined subexpressions
...
This addresses #2078 and #2079 .
2023-10-06 22:55:46 +02:00
Mark
fa68fa211c
replace eager_stackful_iter's mark stack with a second unmark phase
2023-10-05 20:21:28 -06:00
Mark
0ad4427f83
use eager_stackful_preorder_iter in variable_set, add term_variables/1 tests
2023-10-04 15:12:25 -06:00
Mark
1bfdea7527
rewrite ground_test, add tests for ground/1 ( #2075 )
2023-10-04 14:17:03 -06:00
Mark
6c36d067d7
Revert "consider Str, PStrLoc in ElideLists of StackfulHeapIterator ( #2075 )"
...
This reverts commit 1e60eeef34 .
2023-10-04 11:57:09 -06:00
Mark
1e60eeef34
consider Str, PStrLoc in ElideLists of StackfulHeapIterator ( #2075 )
2023-10-04 00:27:01 -06:00
Mark Thom
005570c90a
Merge pull request #2076 from infogulch/master
...
Pin logtalk to version before scryer support was removed
2023-10-03 21:24:19 -06:00
infogulch
c070fbec62
Pin logtalk to version before scryer support was removed
2023-10-03 21:14:45 -05:00
Mark
f9d44c93fd
check for free variables in locations removed from iterator stack in ground_test ( #2075 )
2023-10-03 15:31:01 -06:00
Mark
fd14869ddc
correct cycle detection in ground/1 ( #2073 )
2023-10-03 12:07:36 -06:00
Mark Thom
07d7d3b13b
Merge pull request #2074 from triska/expansion_simpler
...
Revert "FIXED: corrections to expansion_simpler/2"
2023-10-03 11:54:04 -06:00
Markus Triska
7c10683e46
Revert "FIXED: corrections to expansion_simpler/2"
...
This reverts commit f3b848537a .
The root cause of this problem is a mistake in ground/1. See #2073 .
2023-10-03 19:16:04 +02:00
Mark Thom
3ffea2d987
Merge pull request #2072 from aarroyoc/fix-urldecode
...
Improved version of url_decode
2023-10-02 16:06:35 -06:00
Mark Thom
770665a7b8
Merge pull request #2070 from triska/expansion_simpler
...
FIXED: corrections to expansion_simpler/2
2023-10-02 16:06:10 -06:00
Adrián Arroyo Calle
93ff049e54
Improved version of url_decode
2023-10-02 23:49:09 +02:00
Markus Triska
f3b848537a
FIXED: corrections to expansion_simpler/2
...
Example:
?- X = 0, Y = 0, Z #= X-1 + Y-1.
X = 0, Y = 0, Z = -2.
This addresses #2064 .
See ca5a5b4392 for a previous issue in
this logic.
2023-10-02 23:17:06 +02:00
Mark
27b971cbfa
add registers to inlined instruction functors
2023-10-01 23:50:07 -06:00
Mark
a1ceeb697a
consider an '$aux' a relation of the unexpanded goal's variables in compile_inline_or_expanded_goal ( #2062 )
2023-10-01 23:49:55 -06:00
Mark
4a8aa0acbd
throw instantiation_error from error/2 if Error_term uninstantiated ( #2060 )
2023-09-30 22:35:46 -06:00
Mark
6fa00b5b55
get rid of inference_limit_exceeded(B) as an error term ( #2023 )
2023-09-30 22:35:46 -06:00
Mark Thom
c2218faf47
Merge pull request #2066 from bakaq/dif_tests
...
Add tests for #2056
2023-09-30 18:41:50 -06:00
bakaq
21c61b6e3a
Add tests for #2056
2023-09-30 21:33:42 -03:00
Mark
b065e1cd53
correct depth calculation for lists that are their own car ( #1876 )
2023-09-30 17:15:20 -06:00
Mark
7d6ce119f5
substitute names for cyclic variables permitted by max_depth > 0 in check_for_seen using a loop ( #2057 )
2023-09-30 16:47:13 -06:00
Mark
62c23166fa
implement ListElisionPolicy to restore previous printer behavior
2023-09-30 16:00:15 -06:00
Mark
25afc11168
correct skipping of not fully visited lists in stackful heap iterator ( #2056 , #2063 , #2065 )
2023-09-30 15:24:30 -06:00
Mark
9e713406d3
correct max_depth marking for lists
2023-09-30 11:44:20 -06:00
Mark
f33f641f11
further max_depth improvements
2023-09-29 12:07:12 -06:00
Mark
ca2ddfeed0
improve max_depth write option ( #1876 , #2053 )
2023-09-29 01:00:14 -06:00
Mark
11cd42379b
do not deref AttrVar binding in redo_attr_var_binding ( #2059 )
2023-09-28 15:25:57 -06:00
Mark
40d3345cd5
revert throwing domain errors for unexpected forms of read-options ( #2015 )
2023-09-27 18:58:45 -06:00
Mark
035e214ef5
check for ChildCloseList in print_struct on [] ( #2039 )
2023-09-27 18:16:23 -06:00
Mark
f630a8cc1a
fix add_predicate_declaration bug not correctly identifying lists of predicate indicators ( #2049 , #2050 , #2051 , #2052 )
2023-09-27 17:55:15 -06:00