Mark
749dedf477
read from machine stack in stackful pre-order iterator ( #1812 )
2023-06-23 14:11:31 -06:00
notoria
911c49c43f
Compute correctly the domain of the remainder
2023-06-23 14:11:31 -06:00
notoria
770a682d8b
Don't add variable
...
?- Z #= 0, Z #= X mod Y.
Z = 0, clpz:(_A*Y#=X), clpz:(Y in inf.. -1\/1..sup) % Unexpected.
The expected result:
Z = 0, clpz:(X mod Y#=0), clpz:(Y in inf.. -1\/1..sup).
2023-06-23 14:11:31 -06:00
notoria
73ca37ecca
Remove and move comments
2023-06-23 14:11:31 -06:00
Mark
e0f49e8f43
optionally read from machine stack in stackful pre-order iterator ( #1812 )
2023-06-23 14:11:31 -06:00
Mark
dae34b6009
affirm integers as rational/1 ( #1810 )
2023-06-23 14:11:31 -06:00
Markus Triska
97bd778745
FIXED: correctly reset counter in reset_gensym/2 ( #1807 )
...
Many thanks to @infradig for detecting this issue and suggesting this
correction!
2023-06-23 14:11:31 -06:00
Markus Triska
43df2e2649
shorten gensym/2
2023-06-23 14:11:31 -06:00
Markus Triska
c2f2623471
extend logic to all control and whitespace characters
...
This addresses #1802 .
2023-06-23 14:11:31 -06:00
Mark
8e4465315f
use same logic to print Chars and Atoms ( #1804 )
2023-06-23 14:11:31 -06:00
Markus Triska
86beb222ae
rely on first instantiated argument indexing in the definitions of foldl/N
...
This allows shorter and more natural definitions.
2023-06-23 14:11:31 -06:00
Markus Triska
5e124ccf44
ENHANCED: allow Roman numerals in strings
...
Example:
?- X = "ↁ".
X = "ↁ".
This addresses #1790 .
2023-06-23 14:11:31 -06:00
Markus Triska
47d4e6d2f9
FIXED: consistent read/write of further control characters, and non-breaking space
...
Example:
?- X = '\xa0\'.
X = '\xa0\'.
This addresses #1768 .
2023-06-23 14:11:31 -06:00
Mark
33f65210ee
make tests compatible
2023-06-23 14:11:31 -06:00
Mark
9ea6cb4cab
backtrack on emission of unsafe register instructions on internal branches
2023-06-23 14:11:31 -06:00
Mark
0e583d620a
implement new disjunction compilation
2023-06-23 14:11:31 -06:00
Mark Thom
b205abe949
remove BuildIf, BuildNot, BuildThen TermIterState variants
2023-06-23 14:11:31 -06:00
Mark Thom
cb59c3003a
correct chunk type labeling
2023-06-23 14:11:30 -06:00
Mark Thom
942095baa7
remove GetLevelAndUnify and replace it with GetCutPoint
2023-06-23 14:11:30 -06:00
Mark Thom
097849385e
add QueryTerm::ChunkTypeBoundary
2023-06-23 14:11:30 -06:00
Mark Thom
c4783062ff
delete ChunkedTerm, chunked iteration
2023-06-23 14:11:30 -06:00
Mark Thom
063cf0c608
new TermIterState variants
2023-06-23 14:11:30 -06:00
Mark Thom
a66d666bed
variable classification al a carte
2023-06-23 14:11:22 -06:00
Mark Thom
170818759d
add more variable probing, chunk type labeling
2023-06-23 14:11:07 -06:00
Mark Thom
e41d1b319b
adapt code generation
2023-06-23 14:11:04 -06:00
Mark Thom
b9c9de5222
add classifications and occurrence counting
2023-06-23 13:54:46 -06:00
Mark Thom
d565f5901b
milestone marker for surgery
2023-06-23 13:54:04 -06:00
Mark Thom
46317c3a39
begin adapting the techniques of "Compiling Large Disjunctions"
2023-06-23 13:52:24 -06:00
Mark
c5a3ec3ba8
fix current_predicate/1 ( #1761 )
2023-04-24 23:23:27 -06:00
Adrián Arroyo Calle
b162c40007
Fix to_upper/to_lower when string is instantiated
2023-04-23 23:01:29 +02:00
Markus Triska
2a1b8f37ec
remove residual goal for ground BDD
...
Example:
?- sat(X).
X = 1.
2023-04-23 09:23:00 +02:00
Mark
7d2e59ab64
discard CodeIndex literals from unfolded control operators in preprocessor ( #1791 )
2023-04-22 18:38:50 -06:00
Mark
f35298a227
add and document inlined_instructions/2 to/in diag.pl ( #1791 )
2023-04-22 18:38:49 -06:00
Markus Triska
8b7281fad0
ADDED: dif_si/2
...
Source: https://stackoverflow.com/questions/20223390/prolog-a-person-is-a-sibling-of-himself
In Scryer Prolog, this is actually not needed, since Scryer Prolog provides
dif/2 in library(dif). However, it is still useful to provide dif_si/2 for two reasons:
1) to more easily port code from systems where only dif_si/2 is available
2) to provide correct disequality in other systems that adopt this library
2023-04-23 00:37:14 +02:00
Adrián Arroyo Calle
4b882c465c
library(charsio): add to_upper and to_lower
2023-04-18 18:58:09 +02:00
Markus Triska
5763a4b9df
FIXED: propagation for ground tuples
...
Example:
?- tuples_in([[A,A]],[[0,1],[2,0]]).
false.
See https://github.com/triska/clpz/issues/22 .
2023-04-13 23:39:45 +02:00
Markus Triska
5dce7d9075
FIXED: enforce equality also for ground elements in tuples
...
Example:
?- tuples_in([[A,B]], [[1,2],[3,4]]),
tuples_in([[A,B]], [[3,2]]).
false.
See https://github.com/SWI-Prolog/swipl-devel/issues/1160 .
2023-04-11 22:33:19 +02:00
Markus Triska
f08f539768
do not create attributed variables for ground tuples
2023-04-11 21:26:18 +02:00
Markus Triska
be45672e22
actually disable and reenable the queue
2023-04-11 21:26:18 +02:00
Markus Triska
94efb9ffe3
remove no longer needed clpz_relation attributes
2023-04-11 21:26:18 +02:00
Markus Triska
fd1e902492
do not leave an attribute when (re-)enabling a queue
2023-04-11 21:14:18 +02:00
Markus Triska
fe27605497
FIXED: number_chars(N, "0' "), addressing #1580 .
...
There may be a more elegant way to solve this.
2023-04-02 10:04:52 +02:00
Markus Triska
8ab1155fc5
ENHANCED: use call_residue_vars/2 to show all pending constraints
...
Example:
?- freeze(_, false).
freeze:freeze(_A,false).
This was originally added in 04ba9bc11a ,
then reverted, and is now restored.
2023-03-30 23:49:33 +02:00
Mark Thom
adc77985d7
broaden the definition of alpha_char! ( #1749 , #1515 , #1591 )
2023-03-26 11:10:46 -06:00
Mark Thom
4ee6a7bfb8
add '$unattributed_var' builtin ( #1758 )
2023-03-18 23:08:38 -06:00
Markus Triska
01285f12c3
remove no longer needed queue attributes after propagation
2023-03-15 21:17:06 +01:00
Markus Triska
cd586aab8c
show remaining queue/2 attributes as residual goals
...
This lets us verify that all attributes are correctly removed earlier.
2023-03-15 19:56:02 +01:00
Mark Thom
4da646252b
Revert "correct call_residue_vars/3 using new copy_term_3 ( #1239 )"
...
This reverts commit 9b35a316c9 .
2023-03-14 21:34:49 -06:00
Mark Thom
cc8bb38abc
Revert "use new call_residue_vars/2 in toplevel.pl ( #847 )"
...
This reverts commit 04ba9bc11a .
2023-03-14 21:34:48 -06:00
Mark Thom
04ba9bc11a
use new call_residue_vars/2 in toplevel.pl ( #847 )
2023-03-12 17:56:54 -06:00