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
98b0ab3409
improve call/N implementation ( #1829 )
2023-06-10 17:32:18 -06:00
Mark
3c344b176b
set_local_value does not make values safe ( #1812 )
2023-06-06 00:58:44 -06:00
Mark
6093c2858d
read set_value args from temp regs of put_unsafe_value ( #1812 )
2023-05-29 20:49:54 -06:00
Markus Triska
5154314786
FIXED: correct dereferencing in atom_codes/2 and number_codes/2.
...
This addresses #1818 .
Test case:
run :-
length(Ls, L),
portray_clause(L),
maplist(=(X), Ls),
X = Y,
Y = 12,
atom_codes(_, Ls),
false.
2023-05-29 11:43:56 +02:00
Mark
b656700294
read from machine stack in stackful pre-order iterator ( #1812 )
2023-05-28 12:59:01 -06:00
notoria
495df8846a
Compute correctly the domain of the remainder
2023-05-27 13:47:14 +02:00
notoria
05d48cdcc3
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-05-27 13:41:04 +02:00
notoria
dc02be4944
Remove and move comments
2023-05-27 13:08:25 +02:00
Mark
462097d956
optionally read from machine stack in stackful pre-order iterator ( #1812 )
2023-05-26 15:19:07 -06:00
Mark
0e374c2e96
affirm integers as rational/1 ( #1810 )
2023-05-24 13:58:43 -06:00
Markus Triska
021c01dfd0
FIXED: correctly reset counter in reset_gensym/2 ( #1807 )
...
Many thanks to @infradig for detecting this issue and suggesting this
correction!
2023-05-16 22:42:57 +02:00
Markus Triska
30f222b837
shorten gensym/2
2023-05-16 22:41:20 +02:00
Markus Triska
49addc7b04
extend logic to all control and whitespace characters
...
This addresses #1802 .
2023-05-14 09:25:08 +02:00
Mark
2f9996f9ac
use same logic to print Chars and Atoms ( #1804 )
2023-05-10 00:04:35 -06:00
Mark Thom
c1218fc986
Merge pull request #1801 from triska/foldl
...
rely on first instantiated argument indexing in the definitions of foldl/N
2023-05-04 21:25:16 -06:00
Mark Thom
57ef706eb0
Merge pull request #1799 from triska/roman_numerals
...
ENHANCED: allow Roman numerals in strings
2023-05-04 21:25:03 -06:00
Markus Triska
4e60cc46a2
rely on first instantiated argument indexing in the definitions of foldl/N
...
This allows shorter and more natural definitions.
2023-05-04 00:50:27 +02:00
Markus Triska
d8edf7bfff
FIXED: consistent read/write of further control characters, and non-breaking space
...
Example:
?- X = '\xa0\'.
X = '\xa0\'.
This addresses #1768 .
2023-05-03 23:29:22 +02:00
Markus Triska
e951db662d
ENHANCED: allow Roman numerals in strings
...
Example:
?- X = "ↁ".
X = "ↁ".
This addresses #1790 .
2023-05-03 22:02:47 +02: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