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
Mark Thom
9b35a316c9
correct call_residue_vars/3 using new copy_term_3 ( #1239 )
2023-03-12 17:56:54 -06:00
Adrián Arroyo Calle
4c44859132
Fixes #1756
2023-03-12 16:47:20 +01:00
Markus Triska
56bd596af3
use actual toplevel answers
2023-03-08 23:35:11 +01:00
Markus Triska
21acb9361a
use string notation as discussed on #scryer IRC
2023-03-08 23:32:05 +01:00
Markus Triska
c3477d8476
items --> elements
...
This addresses #1740 .
2023-03-08 23:31:02 +01:00
Markus Triska
884b0ca10e
FIXED: Take all variables into account during goal projection.
...
This addresses #1751 .
2023-03-08 21:16:54 +01:00
Markus Triska
c9ecfb11d9
ENHANCED: more compact definition of dif/2
...
As outlined in #1753 .
2023-03-08 20:50:33 +01:00
Adrián Arroyo Calle
73df96244d
Fill more cases
2023-03-01 22:13:04 +01:00
Adrián Arroyo Calle
7396630627
Merge branch 'master' into ffi
2023-02-28 22:10:40 +01:00
Adrián Arroyo Calle
0ac93751d0
FFI: Documentation
2023-02-28 22:09:35 +01:00
Mark Thom
400ca21213
invoke '$default_attr_list' in project_attributes.pl ( #1748 )
2023-02-26 22:42:02 -07:00
Mark Thom
3286e78cd2
third argument of copy_term should be instantiated as a list ( #1747 )
2023-02-26 22:42:02 -07:00
Markus Triska
3dc6ed79d2
ENHANCED: must_be/2: prefer type error over instantiation error
...
This addresses #1594 .
2023-02-26 22:28:18 +01:00
Adrián Arroyo Calle
f94294dbd9
FFI: Nested structs
2023-02-26 20:48:00 +01:00
Mark Thom
04ba58067a
add, implement and use the Unifier trait
2023-02-26 12:21:22 -07:00
Adrián Arroyo Calle
92b262d599
Macroization of the code
2023-02-25 22:27:28 +01:00
Markus Triska
997161c740
rely on first instantiated argument indexing
...
This great improvement to indexing allows much more natural
definitions of virtually all meta-predicates. Many thanks to @notoria!
2023-02-25 10:17:55 +01:00
Markus Triska
669242a8ce
DOC: update residual goals
2023-02-23 00:10:36 +01:00
Markus Triska
2a04d5e799
in projection of residual goals, mark considered propagators as processed
...
This is to avoid duplicated goals with the new projection mechanism.
2023-02-23 00:05:27 +01:00