Nicolas Luck
06f198bc57
Test show problem with nonexistent predicate
2024-02-01 14:14:50 +01:00
Nicolas Luck
6586657658
fmt
2024-02-01 13:53:21 +01:00
Nicolas Luck
a0e598b97e
clippy
2024-02-01 13:51:37 +01:00
Nicolas Luck
8a6ea29c45
Fix all orderings in integration assertions
2024-02-01 13:43:51 +01:00
Nicolas Luck
e1b0ba466b
Remove test with long program literals, not needed
2024-02-01 13:00:49 +01:00
Nicolas Luck
f35d6287ab
More ordering adjustments
2024-02-01 12:59:10 +01:00
Mark
53028a9c2a
fix style errors
2024-01-31 17:32:32 -07:00
Mark
33fc2ed10c
index stub choice point correctly
2024-01-31 17:30:13 -07:00
Nicolas Luck
bc02fb3754
Extract failing assertion as single test case
2024-01-31 15:03:28 +01:00
Nicolas Luck
48b2379fe5
Adjust some first result orderings in integration assertions
2024-01-30 12:54:12 +01:00
Mark
7de693eb23
check for True or False Query Resolution unconditionally
2024-01-29 15:06:56 -07:00
Nicolas Luck
7bb9c00356
fmt
2024-01-29 18:44:20 +01:00
Nicolas Luck
9aacfff35d
Add more test cases to differentiate usage of discontiguous
2024-01-29 16:49:03 +01:00
Nicolas Luck
2e728c7051
Minimal reproduction of faulty behaviour seen in integration tests
2024-01-29 15:26:06 +01:00
Nicolas Luck
7e973a6da6
Merge branch 'master' into library-use-case
2024-01-26 17:21:47 +01:00
Nicolas Luck
cb014095ad
Add expected results to integration test
...
Results are logs of what we get with old toplevel-based version of lib_machine. These are also congruent with what our tests logged out based on SWI.
2024-01-26 17:18:57 +01:00
Mark
6fe8f64835
scan registers of instructions leading to verify_attributes interrupt to find the number of registers to save ( #2307 )
2024-01-25 23:59:54 -07:00
Markus Triska
3505cc3ba0
update answers using latest toplevel output
2024-01-25 21:33:27 +01:00
Markus Triska
05ba5f4358
rely on recently improved argument indexing for determinism
...
This is possible as of 4fd37335f5 .
2024-01-25 21:31:08 +01:00
Mark
bc616ca7d8
move call_residue_vars/2 from atts.pl to iso_ext.pl
2024-01-25 12:40:24 -07:00
Mark
99131131af
don't mark temp variables as safe through argument_to_value ( #2307 )
2024-01-25 12:34:21 -07:00
Markus Triska
a6ccf95076
improve error context
...
Source: https://github.com/mthom/scryer-prolog/issues/2304#issuecomment-1906434756
2024-01-23 21:43:34 +01:00
Markus Triska
665f319a0e
no longer use (->)//2, since it is implementation defined
...
This addresses #2304 .
2024-01-23 21:42:36 +01:00
Markus Triska
81dba11ab1
use newly available false//0
2024-01-21 22:53:22 +01:00
Markus Triska
388fa5baa9
no longer use (->)//2, since it is implementation dependent
2024-01-21 22:50:36 +01:00
Markus Triska
fe3241c07c
remove checks that are now no longer needed due to representation errors
2024-01-21 10:28:19 +01:00
Markus Triska
0559ddca2a
ENHANCED: Throw representation errors for DCG bodies that use unsupported constructs.
...
This addresses #2285 .
2024-01-21 10:28:19 +01:00
Markus Triska
98a046500f
MODIFIED: (->)/2 in DCGs is now only supported in the context of if-then-else.
...
That is, ( If -> Then ; Else ) is still supported, but ( If -> Then ) not.
2024-01-21 10:28:19 +01:00
Mark Thom
58cd0d1669
Merge pull request #2301 from aarroyoc/docs-copy-term-3
...
Move copy_term/3 to library(iso_ext)
2024-01-19 10:18:59 -07:00
Adrián Arroyo Calle
99c85459a7
Move copy_term/3 to library(iso_ext)
2024-01-19 17:33:45 +01:00
Adrián Arroyo Calle
958bf51648
Throw error in call_residue_vars/2
2024-01-19 16:58:26 +01:00
Mark
e3aa85e2a2
add better no op detection in char_reader.rs ( #2297 )
2024-01-16 21:50:53 -07:00
Mark
29ced36a79
add #2293 tests, advance continuable HeapPStrIters away from unpacked compounds ( #2293 )
2024-01-14 15:07:33 -07:00
Mark
f9a5c2d341
fix additional tests, make better use of existing code ( #2293 )
2024-01-13 12:01:54 -07:00
Mark
dde03718e1
fix additional tests ( #2293 )
2024-01-12 22:01:01 -07:00
Mark
60d34bea70
add missing CStr branch to unify_partial_string ( #2293 )
2024-01-12 13:58:46 -07:00
Mark Thom
6fb3b61441
Merge pull request #2276 from triska/hophrase
...
ADDED: Support for higher-order non-terminals phrase//[2,3]
2024-01-11 11:56:10 -07:00
Mark Thom
11ca168175
Merge pull request #2281 from bakaq/miri
...
Initial Miri support
2024-01-10 12:13:14 -07:00
bakaq
f02c0eacd8
Make "cargo miri test" actually run
2024-01-09 04:38:53 -03:00
Mark
72a566d2f8
fix cargo fmt --check
2024-01-08 18:12:31 -07:00
Mark Thom
b56ae28c45
Merge pull request #2280 from notoria/clpz
...
Special case for `(^)/2`
2024-01-08 17:39:18 -07:00
Mark
cd89d71e0c
check for PStr in eager stackful preorder iterator before adding tail of PStrOffset ( #2272 )
2024-01-08 17:36:41 -07:00
notoria
902cd5c3ea
Special case for (^)/2
...
The only solutions for `Z #= X^Z` are `X = Z, X in -1\/1`. Also helps
avoid big numbers.
2024-01-08 21:50:02 +01:00
Mark Thom
f9eadc8e6a
Merge pull request #2278 from notoria/clpz
...
Small fixes for `CLP(ℤ)`
2024-01-07 18:59:38 -07:00
notoria
1f3de74cbd
Fix bound computation in (^)/2
...
?- A in 0..1, B in-1..0, A^2 #= B.
false. % unexpected.
?- A^2 #= B, A in 0..1, B in-1..0.
A = 0, B = 0.
2024-01-07 20:19:40 +01:00
notoria
770ead9c05
Remove min/2 and max/2 when possible
...
?- A #= min(A,B).
clpz:(B#>=A), clpz:(A#=min(A,B)). % unexpected.
?- A #= min(A,0).
clpz:(A in inf..0), clpz:(A#=min(A,0)). % unexpected.
2024-01-07 20:15:28 +01:00
notoria
fe371ff1d1
Fix min/2 and max/2
...
?- X in 0..1, Y in 2..4, Z #= max(X,Y).
clpz:(X in 0..1), clpz:(Z#=max(X,Y)), clpz:(Z in 2..4), clpz:(Z#>=Y), clpz:(Y in 2..4). % unexpected.
?- X in 0..1, Y in 2..4, Z #= max(Y,X).
Y = Z, clpz:(X in 0..1), clpz:(Y in 2..4).
2024-01-07 20:14:32 +01:00
Markus Triska
2f783f0aef
Correct arithmetic inequalities accidentally broken in f5d9a67f36.
...
Example:
?- X #>= Y.
%@ clpz:(X#>=Y).
2024-01-07 09:33:54 +01:00
Mark Thom
92b85d4ba6
Merge pull request #2264 from Skgland/fix-os-argv-1
...
Fix os:argv/1 in case the raw args contain multiple `--`
2024-01-06 15:52:53 -07:00
Markus Triska
e702fe5c68
ADDED: Support for higher-order non-terminals phrase//[2,3]
...
These non-terminals take a grammar rule body and additional arguments
as arguments. These arguments are appended to the first argument.
A key motivation for the introduction of these non-terminals is found
in the discussion and sample code provided by @bakaq in:
https://github.com/mthom/scryer-prolog/discussions/2260
In this way, portable higher-order DCG programming is possible while
keeping the logical grammar rule expansion implementation dependent.
Example:
?- phrase(phrase('.', a, []), Cs).
Cs = "a".
2024-01-06 14:02:13 +01:00