]>
Repositorios git - scryer-prolog.git/log
Mark [Wed, 1 Nov 2023 05:58:59 +0000 (23:58 -0600)]
correct (\+)/1 (#2141)
Mark [Sun, 29 Oct 2023 00:17:43 +0000 (18:17 -0600)]
remove non-conforming hyperbolic and log10 evaluable functors
Mark [Sun, 29 Oct 2023 00:13:42 +0000 (18:13 -0600)]
fix signed modulus bug (#2134)
Mark Thom [Sat, 28 Oct 2023 20:48:10 +0000 (14:48 -0600)]
Merge pull request #2140 from aarroyoc/rename-to-upper
Rename `to_upper` to `upper` and `to_lower` to `lower`
Adrián Arroyo Calle [Sat, 28 Oct 2023 17:16:07 +0000 (19:16 +0200)]
Rename `to_upper` to `upper` and `to_lower` to `lower`
Mark Thom [Thu, 26 Oct 2023 20:07:18 +0000 (14:07 -0600)]
Merge pull request #2137 from infogulch/master
CI: compile wasm separately; default 22.04; matrix
infogulch [Thu, 26 Oct 2023 04:29:07 +0000 (23:29 -0500)]
CI: compile wasm separately; default 22.04; matrix
Mark [Wed, 25 Oct 2023 18:26:01 +0000 (12:26 -0600)]
qualify dif/2 call in reinforce_goal (#2135)
Mark [Tue, 24 Oct 2023 21:35:37 +0000 (15:35 -0600)]
correct char_type/2 (#2132)
Mark [Tue, 24 Oct 2023 21:15:29 +0000 (15:15 -0600)]
remove unnecessary macros inclusion in mock_wam.rs
Mark [Tue, 24 Oct 2023 20:20:26 +0000 (14:20 -0600)]
correct modulus bug (#2118, #2119)
Mark [Tue, 24 Oct 2023 20:10:11 +0000 (14:10 -0600)]
remove list remnants from stack iteration in printer when cyclic (#2131)
Mark [Tue, 24 Oct 2023 18:23:05 +0000 (12:23 -0600)]
fix cycle detection in lists by looking backward analogously to the same process for structures (#2130)
Mark [Mon, 23 Oct 2023 19:28:44 +0000 (13:28 -0600)]
correct LIS backward bug in cycle_detection.rs
Mark [Mon, 23 Oct 2023 18:03:25 +0000 (12:03 -0600)]
add STOP_AT_CYCLES const parameter for CycleDetectingIter
Mark [Sun, 22 Oct 2023 03:37:27 +0000 (21:37 -0600)]
use Deutsch-Schorr-Waite to implement acyclic_term/1 (#2128)
Mark [Wed, 18 Oct 2023 17:58:04 +0000 (11:58 -0600)]
use topo_sort to correct acyclic_term (#2124, #2125)
Mark [Mon, 16 Oct 2023 20:20:40 +0000 (14:20 -0600)]
fix cyclicity detection through variables (#2122, #2123)
Mark [Sun, 15 Oct 2023 21:14:38 +0000 (15:14 -0600)]
more eagerly check for cyclicity of variables in cycle detecting stackless iterator (#2121)
Mark [Sun, 15 Oct 2023 19:07:41 +0000 (13:07 -0600)]
add backward looking cyclicity check for variables in cycle detecting stackless iterator (#2111, #2117)
Mark [Sun, 15 Oct 2023 07:28:42 +0000 (01:28 -0600)]
correct is_cyclic again for non-variable ref cells (#2116)
Mark [Sun, 15 Oct 2023 06:58:15 +0000 (00:58 -0600)]
improve cycle detection in detect_list_cycles (#2111)
Mark [Sun, 15 Oct 2023 05:56:46 +0000 (23:56 -0600)]
simplify stackless iterator is_cyclic (#2111)
Mark [Sat, 14 Oct 2023 22:37:18 +0000 (16:37 -0600)]
correct more acyclic_term/1 issues (#2111, #2114), add acyclic_term tests
Mark [Sat, 14 Oct 2023 20:03:47 +0000 (14:03 -0600)]
correct cyclic variable check in cycle detecting stackless iterator (#2111, #2113)
Mark [Sat, 14 Oct 2023 19:00:58 +0000 (13:00 -0600)]
fix bugs & incompleteness of cycle-detecting stackless iterator (#2111)
notoria [Sat, 14 Oct 2023 14:15:03 +0000 (16:15 +0200)]
Reify (^)/2
Like (/)/2, (^)/2 can fail in cases such as 0 #==> X #= 2^(-1), where success is expected.
notoria [Sat, 14 Oct 2023 14:13:52 +0000 (16:13 +0200)]
Trigger propagator for popcount/1
notoria [Sat, 14 Oct 2023 14:11:59 +0000 (16:11 +0200)]
Trigger propagator for sign/1
notoria [Sat, 14 Oct 2023 14:10:31 +0000 (16:10 +0200)]
Trigger propagator for (xor)/2
Mark [Sat, 14 Oct 2023 18:05:57 +0000 (12:05 -0600)]
add bounds checks for stackless iterator (#2110)
Mark [Fri, 13 Oct 2023 05:16:35 +0000 (23:16 -0600)]
detect all cycles in roughly linear time and constant space (#2102)
Mark [Thu, 12 Oct 2023 17:22:57 +0000 (11:22 -0600)]
fix bugs in marker algorithm iterator
Mark [Fri, 13 Oct 2023 20:33:36 +0000 (14:33 -0600)]
correct (mod)/2 (#2103, #2107)
Mark Thom [Fri, 13 Oct 2023 01:10:54 +0000 (19:10 -0600)]
Merge pull request #2105 from triska/morphing_propagators
ENHANCED: Omit unnecessary residual constraints in disentailed reified (//)/2
Markus Triska [Thu, 12 Oct 2023 21:01:37 +0000 (23:01 +0200)]
shift morphing to the more general p/2 case
Markus Triska [Thu, 12 Oct 2023 19:04:22 +0000 (21:04 +0200)]
ENHANCED: Omit unnecessary residual constraints in disentailed reified (//)/2
Example:
?- #\ 0#=(Y// -1)/0.
%@ clpz:(Y in inf..sup).
This addresses #2104.
Mark [Wed, 11 Oct 2023 18:41:45 +0000 (12:41 -0600)]
fix control construct bugs, iter indentation (#947)
Mark [Wed, 11 Oct 2023 16:11:50 +0000 (10:11 -0600)]
Merge branch 'master' of ssh://github.com/mthom/scryer-prolog
Mark [Tue, 10 Oct 2023 22:02:38 +0000 (16:02 -0600)]
follow marked variables to end in eager_stackful_iter (#2100, #2101)
Mark [Tue, 10 Oct 2023 22:02:38 +0000 (16:02 -0600)]
follow marked variables to end in eager_stackful_iter (#2100, #2101)
Mark Thom [Tue, 10 Oct 2023 20:57:00 +0000 (14:57 -0600)]
Merge pull request #2098 from triska/morphing_propagators
Queue morphed propagators to give them a chance for propagation
Markus Triska [Tue, 10 Oct 2023 17:54:12 +0000 (19:54 +0200)]
use round brackets around operators to form valid Prolog terms
Markus Triska [Tue, 10 Oct 2023 17:53:26 +0000 (19:53 +0200)]
update comment to reflect the used propagators
Markus Triska [Tue, 10 Oct 2023 17:49:48 +0000 (19:49 +0200)]
remove definition and calls of do_queue/0, which has become a NOP
Markus Triska [Tue, 10 Oct 2023 17:42:42 +0000 (19:42 +0200)]
ENHANCED: Queue morphed propagators to give them a chance for propagation.
This addresses #2096:
?- B in -2..0, 0#<==>0#=0/(B*B),labeling([],[B]).
B = 0.
?- A#<==>A#=A/A^2,A=0.
A = 0.
Mark [Tue, 10 Oct 2023 17:13:42 +0000 (11:13 -0600)]
report pre-marked values from eager stackful iterator (#2097)
Mark Thom [Mon, 9 Oct 2023 21:06:09 +0000 (15:06 -0600)]
Merge pull request #2094 from triska/unary_minus
ENHANCED: use (+)/2 to express unary minus
Markus Triska [Mon, 9 Oct 2023 21:13:09 +0000 (23:13 +0200)]
Z --> Y
Mark Thom [Mon, 9 Oct 2023 21:05:59 +0000 (15:05 -0600)]
Merge pull request #2092 from triska/morphing_pexp
attach the propagator to Y
Markus Triska [Mon, 9 Oct 2023 20:59:51 +0000 (22:59 +0200)]
ENHANCED: use (+)/2 to express unary minus
This makes answers a bit shorter and more readable.
Example:
?- X #= -Y.
clpz:(X+Y#=0).
This addresses #2058.
Markus Triska [Mon, 9 Oct 2023 19:55:11 +0000 (21:55 +0200)]
attach the propagator to Y
Mark Thom [Mon, 9 Oct 2023 19:43:25 +0000 (13:43 -0600)]
Merge pull request #2091 from triska/morphing_pexp
ENHANCED: Omit projection of morphed (^)/2 in disentailed constraints.
Markus Triska [Mon, 9 Oct 2023 19:31:44 +0000 (21:31 +0200)]
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).
Mark Thom [Mon, 9 Oct 2023 19:20:44 +0000 (13:20 -0600)]
Merge pull request #2090 from triska/morphing_propagators
FIXED: Queue triggered propagators to be processed after pexp/3 finishes
Markus Triska [Mon, 9 Oct 2023 18:42:28 +0000 (20:42 +0200)]
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.
Mark [Mon, 9 Oct 2023 17:38:01 +0000 (11:38 -0600)]
do not push stack variables to the heap in term_variables (#2087)
Mark Thom [Sun, 8 Oct 2023 18:45:45 +0000 (12:45 -0600)]
Merge pull request #2088 from triska/morphing_propagators
ENHANCED: Remove no longer needed morphed propagators.
Markus Triska [Sun, 8 Oct 2023 16:41:02 +0000 (18:41 +0200)]
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).
Mark Thom [Sun, 8 Oct 2023 18:01:26 +0000 (12:01 -0600)]
Merge pull request #2085 from triska/reification_same_queue
Use the same queue for variables in reified constraints
Markus Triska [Sun, 8 Oct 2023 10:07:17 +0000 (12:07 +0200)]
remove no longer needed goal projection for pdiv
Markus Triska [Sun, 8 Oct 2023 09:53:06 +0000 (11:53 +0200)]
ENHANCED: avoid pending residual constraints in disentailed reified (div)/2
This addresses #2083:
?- #\0#=0//0 div 2.
true.
Markus Triska [Sun, 8 Oct 2023 09:28:52 +0000 (11:28 +0200)]
replace list//1 by seq//1 from library(dcgs)
Markus Triska [Sun, 8 Oct 2023 07:43:59 +0000 (09:43 +0200)]
instead of prdiv, use ptimes directly
Markus Triska [Sun, 8 Oct 2023 07:43:10 +0000 (09:43 +0200)]
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.
Markus Triska [Sun, 8 Oct 2023 07:26:22 +0000 (09:26 +0200)]
adapt query to Scryer Prolog
Mark [Sun, 8 Oct 2023 00:48:49 +0000 (18:48 -0600)]
mark both components of a PStrLoc (#2082)
Mark Thom [Fri, 6 Oct 2023 21:31:13 +0000 (15:31 -0600)]
Merge pull request #2080 from triska/reified_slash
Corrections to reified (/)/2
Markus Triska [Fri, 6 Oct 2023 20:58:56 +0000 (22:58 +0200)]
reorder and realign entries to form a contiguous group starting with d(D)
Markus Triska [Fri, 6 Oct 2023 20:55:46 +0000 (22:55 +0200)]
FIXED: reification of (/)/2 for undefined subexpressions
This addresses #2078 and #2079.
Mark [Fri, 6 Oct 2023 02:21:28 +0000 (20:21 -0600)]
replace eager_stackful_iter's mark stack with a second unmark phase
Mark [Wed, 4 Oct 2023 21:12:25 +0000 (15:12 -0600)]
use eager_stackful_preorder_iter in variable_set, add term_variables/1 tests
Mark [Wed, 4 Oct 2023 19:22:21 +0000 (13:22 -0600)]
rewrite ground_test, add tests for ground/1 (#2075)
Mark [Wed, 4 Oct 2023 17:57:09 +0000 (11:57 -0600)]
Revert "consider Str, PStrLoc in ElideLists of StackfulHeapIterator (#2075)"
This reverts commit
1e60eeef3450cdb6817f8f626fb32be6018d83c2 .
Mark [Wed, 4 Oct 2023 06:26:44 +0000 (00:26 -0600)]
consider Str, PStrLoc in ElideLists of StackfulHeapIterator (#2075)
Mark Thom [Wed, 4 Oct 2023 03:24:19 +0000 (21:24 -0600)]
Merge pull request #2076 from infogulch/master
Pin logtalk to version before scryer support was removed
infogulch [Wed, 4 Oct 2023 01:51:50 +0000 (20:51 -0500)]
Pin logtalk to version before scryer support was removed
Mark [Tue, 3 Oct 2023 21:31:01 +0000 (15:31 -0600)]
check for free variables in locations removed from iterator stack in ground_test (#2075)
Mark [Tue, 3 Oct 2023 18:04:10 +0000 (12:04 -0600)]
correct cycle detection in ground/1 (#2073)
Mark Thom [Tue, 3 Oct 2023 17:54:04 +0000 (11:54 -0600)]
Merge pull request #2074 from triska/expansion_simpler
Revert "FIXED: corrections to expansion_simpler/2"
Markus Triska [Tue, 3 Oct 2023 17:15:17 +0000 (19:15 +0200)]
Revert "FIXED: corrections to expansion_simpler/2"
This reverts commit
f3b848537aef601b13bd525df09ee74f5bbeeae9 .
The root cause of this problem is a mistake in ground/1. See #2073.
Mark Thom [Mon, 2 Oct 2023 22:06:35 +0000 (16:06 -0600)]
Merge pull request #2072 from aarroyoc/fix-urldecode
Improved version of url_decode
Mark Thom [Mon, 2 Oct 2023 22:06:10 +0000 (16:06 -0600)]
Merge pull request #2070 from triska/expansion_simpler
FIXED: corrections to expansion_simpler/2
Adrián Arroyo Calle [Mon, 2 Oct 2023 21:49:09 +0000 (23:49 +0200)]
Improved version of url_decode
Markus Triska [Mon, 2 Oct 2023 21:17:06 +0000 (23:17 +0200)]
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
ca5a5b4392bfbed8cfdbb3b2e7dbaa42ea193007 for a previous issue in
this logic.
Mark [Mon, 2 Oct 2023 00:55:31 +0000 (18:55 -0600)]
add registers to inlined instruction functors
Mark [Sun, 1 Oct 2023 23:11:26 +0000 (17:11 -0600)]
consider an '$aux' a relation of the unexpanded goal's variables in compile_inline_or_expanded_goal (#2062)
Mark [Sun, 1 Oct 2023 04:22:01 +0000 (22:22 -0600)]
throw instantiation_error from error/2 if Error_term uninstantiated (#2060)
Mark [Sun, 1 Oct 2023 04:20:50 +0000 (22:20 -0600)]
get rid of inference_limit_exceeded(B) as an error term (#2023)
Mark Thom [Sun, 1 Oct 2023 00:41:50 +0000 (18:41 -0600)]
Merge pull request #2066 from bakaq/dif_tests
Add tests for #2056
bakaq [Sun, 1 Oct 2023 00:33:42 +0000 (21:33 -0300)]
Add tests for #2056
Mark [Sat, 30 Sep 2023 23:15:20 +0000 (17:15 -0600)]
correct depth calculation for lists that are their own car (#1876)
Mark [Sat, 30 Sep 2023 22:47:13 +0000 (16:47 -0600)]
substitute names for cyclic variables permitted by max_depth > 0 in check_for_seen using a loop (#2057)
Mark [Sat, 30 Sep 2023 22:00:15 +0000 (16:00 -0600)]
implement ListElisionPolicy to restore previous printer behavior
Mark [Sat, 30 Sep 2023 21:24:30 +0000 (15:24 -0600)]
correct skipping of not fully visited lists in stackful heap iterator (#2056, #2063, #2065)
Mark [Sat, 30 Sep 2023 17:44:20 +0000 (11:44 -0600)]
correct max_depth marking for lists
Mark [Fri, 29 Sep 2023 17:48:05 +0000 (11:48 -0600)]
further max_depth improvements
Mark [Fri, 29 Sep 2023 07:00:14 +0000 (01:00 -0600)]
improve max_depth write option (#1876, #2053)
Mark [Thu, 28 Sep 2023 21:25:57 +0000 (15:25 -0600)]
do not deref AttrVar binding in redo_attr_var_binding (#2059)
Mark [Thu, 28 Sep 2023 00:58:45 +0000 (18:58 -0600)]
revert throwing domain errors for unexpected forms of read-options (#2015)