Mark
039fffb339
better detect syntax errors in lexer.rs ( #1771 )
2023-06-27 16:39:20 -06:00
Markus Triska
ceb276b249
use copy_term_nat/2
2023-06-27 22:37:23 +02:00
Mark
16f281e3d1
enable unification of streams to alias atoms ( #1823 )
2023-06-27 12:23:40 -06:00
Mark
b593fffc7d
support module resolution in current_predicate/1 ( #1817 )
2023-06-27 11:08:29 -06:00
Mark
ce890799bc
fix builtin_predicate ( #1819 )
2023-06-27 10:41:15 -06:00
Mark
aa65287c3b
remove tabling attributes in each module's attribute_goals//1 ( #1825 )
2023-06-27 10:31:10 -06:00
Mark
a6522d6317
properly account for partial string offsets in '$skip_max_list' ( #1827 )
2023-06-26 16:36:04 -06:00
Mark
0b45d42912
mark chunk boundary at beginning of disjunct in disjuncts.rs ( #1843 )
2023-06-24 17:18:00 -06:00
Mark
d9829a3606
fix string incompleteness ( #1828 )
2023-06-24 14:12:08 -06:00
Mark
9f209dadd9
fix branch subsumption bug ( #1840 , #1841 )
2023-06-24 10:59:29 -06:00
Markus Triska
9bc3757a9e
another case of "read" --> "get", for an only internally used predicate
2023-06-24 11:48:28 +02:00
Markus Triska
18d0a74f23
MODIFIED: read_line_to_chars/3 is now called get_line_to_chars/3
...
This is for consistency with other I/O predicates, where "read" always
indicates Prolog terms. Please adjust your programs accordingly.
2023-06-24 11:47:32 +02:00
Mark
7a188744da
correct code_walker.rs in light of compilation improvements
2023-06-23 16:53:18 -06:00
Mark
7f45ac3f7a
Merge branch 'compiling_disj'
2023-06-23 15:45:04 -06:00
Mark
612861e010
correct reversions after rebase
2023-06-23 14:32:37 -06:00
Mark
fcae0d9fcf
polish perm free list management
2023-06-23 14:11:31 -06:00
Mark
92853a6a12
free local cut variables after cut
2023-06-23 14:11:31 -06:00
Mark
4ad113a6f8
mark is/2 allocated permanent variables as safe, add CompareNumber terms to ClauseType::is_inlined
2023-06-23 14:11:31 -06:00
Mark
d7f5675727
improve call/N implementation ( #1829 )
2023-06-23 14:11:31 -06:00
Mark
4d982d22c1
set_local_value does not make values safe ( #1812 )
2023-06-23 14:11:31 -06:00
Mark
5ed1802f0f
read set_value args from temp regs of put_unsafe_value ( #1812 )
2023-06-23 14:11:31 -06:00
Markus Triska
2716381e7b
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-06-23 14:11:31 -06:00
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