Mark Thom
04ba58067a
add, implement and use the Unifier trait
2023-02-26 12:21:22 -07:00
Mark Thom
6e9cd072c5
catch attribute_goals errors in copy_term/3, don't discard variable module qualifiers in dcg_body/3 ( #1738 )
2023-02-21 00:50:46 -07:00
Mark Thom
92d543b8a8
change '$delete_all_attributes' to '$delete_all_attributes_from_var'
2023-02-20 01:11:52 -07:00
Mark Thom
3f445c76be
add '$delete_all_attributes', use copy_term/3 as defined in #1272
2023-02-20 01:11:51 -07:00
Mark Thom
a6e416f13d
compile '$atts' and '$project_atts' modules using loader.pl
2023-02-20 01:11:35 -07:00
Mark Thom
56783b8e4b
correct incremental compilation bugs
2023-02-12 23:41:25 -07:00
Mark Thom
326f18ea75
copy attributed variable attribute lists specially via copy_attr_var_list
2023-02-12 17:30:04 -07:00
Mark Thom
491472a8c5
retire TrailedAttrVarHeapLink TrailEntry tag
2023-02-10 22:52:27 -07:00
Mark Thom
359619e035
simplify and optimize attributed variables ( #1590 , #1634 , #1730 )
2023-02-10 21:56:42 -07:00
Mark Thom
9454d670c7
port '$get_from_list' to '$get_from_attr_list' in Rust
2023-02-06 01:23:29 -07:00
Mark Thom
2c2a9fe01e
correct shl stub_gen
2023-02-03 22:27:15 -07:00
Mark Thom
17450520ba
shift by usize instead of u32 in shl and shr ( #1718 , #1719 )
2023-02-02 20:49:39 -07:00
Mark Thom
cc38cf15a4
Merge pull request #1729 from aarroyoc/negative-shifts
...
Negative shifts (fixes #1719 and #1718 )
2023-02-02 06:25:52 +01:00
Mark Thom
ce56a7303e
avoid arena allocation of stream in read_term_from_chars ( #1266 )
2023-01-31 00:15:57 -07:00
Adrián Arroyo Calle
36b3150225
Negative shifts ( fixes #1719 and #1718 )
2023-01-30 18:56:37 +01:00
Mark Thom
a7e93db363
improve retract/1 and related predicates ( #1598 )
2023-01-22 21:04:41 -07:00
Mark Thom
3a4aa2a541
tighten deallocate truncation of stack ( #1686 )
2023-01-12 23:47:07 -07:00
Mark Thom
820011412b
Merge pull request #1658 from aarroyoc/copy_file
...
Add predicate file_copy/2 in library(files)
2022-12-18 21:22:25 +01:00
Markus Triska
6cb8d7596a
dereference more registers, analogous to d660e4244f
...
See also #1654 for a nice test case by @notoria which this corrects.
2022-12-18 17:43:33 +01:00
Mark Thom
cf63e8375d
track attr_var_init lengths on the stack ( #1667 )
2022-12-16 20:10:17 -07:00
Mark Thom
0a8fc70ba9
detect cyclic bindings in attr_vars_of_term ( #1666 )
2022-12-16 00:42:38 -07:00
Mark Thom
4dc0114c52
fix mishandled if-then-else interpretation ( #1659 )
2022-12-11 16:35:32 -07:00
Adrián Arroyo Calle
5f703afed1
Rename copy_file/2 to file_copy/2
2022-12-11 00:08:41 +01:00
Adrián Arroyo Calle
c6aa2068e2
Add predicate copy_file/2 in library(files)
2022-12-11 00:06:56 +01:00
Markus Triska
309e5b320e
more uses of newly available deref_register(n)
2022-12-07 23:19:31 +01:00
Markus Triska
56e5da6680
introduce and use deref_register(n)
2022-12-06 21:07:50 +01:00
Mark Thom
d660e4244f
dereference encoding register in crypto_data_decrypt ( #1650 )
2022-12-05 23:28:47 -07:00
Mark Thom
d383e5eb8b
avoid pushing stack variables to the heap in get_continuation_chunk ( #1644 )
2022-12-05 23:17:15 -07:00
Mark Thom
3bdcc3aba9
return -1 from get_code to indicate end of file ( #1622 )
2022-11-18 18:19:55 -07:00
Mark Thom
9366a48d6d
introduce InlineTermStream to avoid arena allocations during call_inline ( #1576 )
2022-11-09 00:01:01 +01:00
Mark Thom
8781e03863
cache ball terms before unifying in handle_ball/3 ( #1608 )
2022-10-26 23:36:07 -06:00
Mark Thom
140149f051
fix crash in read_term ( #1616 )
2022-10-26 23:36:07 -06:00
Markus Triska
579aa8acd4
use newly available u8s_to_string
2022-10-26 23:36:07 -06:00
Markus Triska
9c2cb144b5
remove redundant error handling, since this case is checked in Prolog
...
This restores f668640e3d , where this
change was already made. It seems it was accidentally overwritten in
0404c3bd94 .
2022-10-26 23:36:07 -06:00
Markus Triska
3d04689660
introduce and use u8s_to_string
2022-10-26 23:36:07 -06:00
Markus Triska
9c1de8e00b
ENHANCED: Eliminate the OpenSSL dependency of library(crypto).
...
This is achieved by using the newly available crrl crate by @pornin
to implement crypto_curve_scalar_mult/4 for secp256k1. Many thanks!
2022-10-26 23:36:07 -06:00
Mark Thom
1109e05e06
properly match strings concluding with characters in lists ( #1597 )
2022-10-26 23:36:07 -06:00
Mark Thom
8a9cd7779c
offset into complete strings with '$skip_max_list'/4 ( #1529 )
2022-10-26 23:36:07 -06:00
Mark Thom
d4c0277065
don't return ops with priority 0 when building set for current_op ( #1571 )
2022-10-26 23:36:07 -06:00
Mark Thom
069e132c0e
treat functors with PI '.'/2 as lists ( #1570 )
2022-10-26 23:36:07 -06:00
Adrián Arroyo Calle
181be5be3f
HTTP Server 2.0
2022-10-26 23:36:07 -06:00
Mark Thom
91d4e91f53
prefix inlined goals with module names in expand_subgoal/5 ( #1551 )
2022-10-26 23:36:07 -06:00
Mark Thom
ad3ae7991b
try to invoke '$call_inline' a second time in call/N ( #1543 )
2022-10-26 23:36:07 -06:00
Mark Thom
ea95a7900c
deduplicate index ptr inlining for 0-arity atoms ( #1538 )
2022-10-26 23:36:07 -06:00
Mark Thom
ec9c763211
print index_ptr offset ( #1534 )
2022-10-26 23:36:07 -06:00
Mark Thom
0aec980aa8
inference count call_inline, fail on undefined index
2022-10-26 23:36:07 -06:00
Mark Thom
6b05ee5130
streamline assertz/1, asserta/1
2022-10-26 23:36:07 -06:00
Mark Thom
1ffbf63d20
inline metacalls
2022-10-26 23:36:07 -06:00
Manos Pitsidianakis
b905d2758d
fix type_error with instantiated EOF -1 byte literal in get_byte/2
...
According to ISO Prolog, get_byte/2 predicate can receive an
instantiated input byte:
http://www.gprolog.org/manual/html_node/gprolog037.html#sec156
get_byte(+stream_or_alias, ?in_byte)
Since in_byte can be -1 if EOF is reached, instantiating it with -1
should work but does not because the implementation is trying to convert
it to a u8 which is unsigned:
?- open("/dev/null", read, S, [type(binary)]), get_byte(S, -1).
error(type_error(in_byte,-1),get_byte/2).
This commit adds an extra check for -1 before checking for a valid u8
instantiated value if in_byte is an input:
?- open("/dev/null", read, S, [type(binary)]), get_byte(S, -1).
S = '$stream'(0x55601e65c998).
Closes #1625
2022-10-26 13:49:38 +03:00
Manos Pitsidianakis
a9a06b5297
Fix xor/2 type error reporting wrong argument
...
If first argument n1 in xor/2 is of wrong numerical type, the match
patterns fall through to a catch all case that reports the second
argument in the type error.
Fixes #1626
`xor/2 function reports the wrong argument in type error #1626`
https://github.com/mthom/scryer-prolog/issues/1626
2022-10-24 19:26:43 +03:00