Markus Triska
27852eafd7
ADDED: Hash-based message authentication code (HMAC), using hmac(Key).
2024-02-22 20:53:27 +01:00
Markus Triska
8f2e9c6b94
FIXED: char_type/2 for unbound first argument.
...
Surrogate pairs form a gap in valid character codes, see:
https://github.com/mthom/scryer-prolog/issues/2326#issuecomment-1937864665
Many thanks to @Skgland for the pointer, and to @librarianmage for the
question that spawned this!
This addresses #2326 .
2024-02-11 22:19:19 +01:00
Mark
539a1aee2c
fix tests broken by singleton
2024-02-07 21:46:32 -07:00
Markus Triska
53b7d9eec9
ENHANCED: Bidirectional char_type/2, addressing #2321 .
...
Suggested by @librarianmage, many thanks!
2024-02-07 20:57:28 +01:00
Markus Triska
aa98a7e7d6
ADDED: clpz_t/2, generalizing support for use with library(reif)
...
This was suggested and contributed by @librarianmage in:
https://github.com/mthom/scryer-prolog/issues/2225#issuecomment-1890801923
Many thanks!
If anyone can find a better predicate name, please let us know any time!
2024-02-06 19:05:29 +01:00
Adrián Arroyo Calle
ec4a8745e7
Add all_mdoules test and fix library(csv)
2024-02-04 21:34:01 +01:00
Mark
673329ddb7
fix reverted tests, ensure files are loaded before goals ( #2315 )
2024-02-03 11:49:26 -07:00
Mark
de6c460a51
treat consultation of command line modules as regular goals ( #2314 )
2024-02-02 15:35:00 -07:00
Mark
75a94fd0b3
fmt
2024-02-02 11:49:02 -07:00
Mark
7573c64087
load .scryerrc before files and goals ( #1775 , #2313 )
2024-02-02 10:54:28 -07: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
Markus Triska
f2b63d1689
Prevent assertion of clauses for (-->)/2 when DCGs are enabled.
...
This addresses #1508 .
2024-01-05 19:04:53 +01:00
Mark
d51defed06
fix cargo --fmt check error
2024-01-04 13:56:57 -07:00
Mark
851ea2c45b
add missing permission error in compile_assert ( #2271 )
2024-01-04 13:53:46 -07:00
Mark
ec97ee5d41
fix acceptance of invalid syntax, update iso_conformity_tests.pl ( #2270 )
2024-01-04 13:14:58 -07:00
Skgland
78b83ca1e1
simplify os:argv/1 fix
2024-01-04 19:26:10 +01:00
Skgland
ea0130d114
use once to limit solutions instead of cut
2024-01-04 18:14:32 +01:00