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
Ross Smyth
577f85099d
Fixed imports num-rug-adapter
2022-07-17 02:06:37 -04:00
Mark Thom
cd1150c11d
use setup_cal_n_init_goal_info in dynamic_module_resolution
2022-06-15 22:33:13 -06:00
Mark Thom
987bbdecf5
improve efficiency of call/N, replace '$call_with_default_policy' with
...
'$call_with_inference_counting'
2022-06-12 22:34:07 -06:00
Mark Thom
a68394b6f2
simplify detecting undefined goal_ and term_expansion
2022-06-12 22:34:07 -06:00
Mark Thom
336311ecc8
replace call with $call in more meta-predicates
2022-06-06 09:28:03 -06:00
Mark Thom
e9bb35c895
emit indexing instructions in single clauses of dynamic predicates
2022-06-04 23:43:48 -06:00
Mark Thom
c36d4a9c9a
unmark cells in arith_eval_by_metacall ( #1497 )
2022-06-01 00:02:11 -06:00
Mark Thom
084fc84590
use existence_error for dropped streams ( #1472 )
2022-05-23 11:15:58 -06:00
Mark Thom
10a11c293e
fix stream position and term comparison bugs ( #1472 )
2022-05-22 14:16:14 -06:00
Mark Thom
bef8eb538c
throw a representation error if max arity is exceeded ( #1483 )
2022-05-22 00:03:55 -06:00
Mark Thom
4d23542ef3
add max arity checks at various stages ( #1459 )
2022-05-21 12:32:48 -06:00
Mark Thom
2f3de51e55
remove non-determinism in number_chars/2 and numbercodes/2 ( #1473 )
2022-05-13 18:38:58 -06:00
Mark Thom
cea1353fbb
use must_be(chars) in number_chars/2 ( #1470 )
2022-05-12 01:09:06 -06:00
Euan Lacy
c2a87f898e
fix: remove unnecessary string & vec allocations
2022-05-10 18:10:18 +01:00
Euan Lacy
aaa75c3ffc
wip: basic completion of predicates
2022-05-10 18:10:18 +01:00
Mark Thom
2dfa108034
unify partial string tail later in create_partial_string ( #1462 , #1465 , #1427 )
2022-05-08 14:52:22 -06:00
Mark Thom
4895cb7b22
fix culprit in stream_position permission_error ( #1463 )
2022-05-06 17:38:25 -06:00
Mark Thom
2d3eb8483f
correct cycle detection in unify_* ( #1455 )
2022-05-05 18:58:56 -06:00
Mark Thom
6030fae685
track f64 offsets in Literal ( #1190 )
2022-05-04 21:54:46 -06:00
Mark Thom
0f502fff84
compact lists of characters to partial strings in read_term_from_heap ( #1452 , #1453 )
2022-05-03 19:12:16 -06:00
Mark Thom
789f662ec8
fix match_partial_string, compare_pstr_to_string ( #1451 )
2022-04-30 19:51:19 -06:00
Mark Thom
72536037ca
remove redundant register assignments in numeric comparisons ( #1438 , #1448 )
2022-04-29 09:16:22 -06:00
Mark Thom
68b4951bc9
replace SliceDeque with VecDeque
2022-04-25 22:55:28 -06:00
Mark Thom
ed89c43e48
catch existence_error exceptions from top-level calls to attribute_goals/3 ( #1432 )
2022-04-24 20:59:00 -06:00
Mark Thom
16137ace0e
unify structures from left to right ( #1396 )
2022-04-22 19:00:42 -06:00
Mark Thom
9d5264c5a3
very minor optimizations
2022-04-17 20:10:13 -06:00
Mark Thom
2d5fe21b05
avoid writing chars to the atom table in several places
2022-04-17 12:20:00 -06:00
Mark Thom
05c14d5780
fix comparisons to partial string tails ( #1420 )
2022-04-14 22:14:23 -06:00