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
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
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
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
6030fae685
track f64 offsets in Literal ( #1190 )
2022-05-04 21:54:46 -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
William Kral
9e98f75495
Fix reported source for set_output/1 error ( #1407 )
2022-04-10 12:00:59 -07:00
Mark Thom
0876d46880
unmark dereferenced cells in term_variables/2 ( #1412 )
2022-04-09 12:15:46 -06:00
Mark Thom
ed803d30cd
dereference bindings returned by stackful iterator ( #1410 , #1411 )
2022-04-09 11:47:54 -06:00
Mark Thom
b6504bf377
deduplicate variable list in term_variables/2 ( #1409 )
2022-04-08 21:18:59 -06:00
Mark Thom
d952b7ace8
restore correct order to term_variables/2 ( #1400 , #1401 )
2022-04-06 08:39:16 -06:00
Mark Thom
8c99d748e2
allocate floats in dedicated buffer
2022-04-05 20:34:27 -06:00
Mark Thom
0ab928063e
make marker into an iterators, recover post_order_iterator
2022-04-05 20:34:27 -06:00
Mark Thom
c9a34bde3f
removal of old stackless iterator, implementation of new more faithful one
2022-04-05 20:34:27 -06:00
Mark Thom
9177dbce7f
be aware of temporary variables of stackless iterator in term_variables ( #1383 )
2022-03-31 18:20:41 -06:00
Adrián Arroyo Calle
6798b22b49
http_open/3 with headers and data
2022-03-28 20:38:55 +02:00
Adrián Arroyo Calle
3acbe2a418
http_open/3 with method option
2022-03-28 20:38:52 +02:00
Mark Thom
067e2633af
compare TypedArenaPtr<T> by value not pointer ( #1362 )
2022-03-22 00:55:44 -06:00
Mark Thom
895b02b641
improve length/2 ( #1325 )
2022-03-15 18:43:57 -06:00
William Kral
5f1f07e5a1
Add --no-add-history flag
...
Flag prevents the input stream from saving terms to ~/.scryer_history
when set. Use the flag when running tests to increase test isolation.
2022-03-10 21:48:41 -08:00
Mark Thom
bd5d6d0686
fix parser bounds check bug ( #1333 , #1301 )
2022-03-08 21:25:19 -07:00
Mark Thom
ecebaf8216
unify empty list to '' in atom_chars/2 ( #1334 , #1336 )
2022-03-08 18:25:40 -07:00
Mark Thom
664c0ee77c
fix float formatting ( #1331 )
2022-03-07 19:44:39 -07:00
Mark Thom
0c25ffc26e
dereference list link in delete_attribute ( #1148 )
2022-03-05 17:39:03 -07:00
Markus Triska
1bec1b7002
FIXED: load_html/3: use str_loc_as_cell! to store attribute structures
2022-03-01 20:21:08 +01:00
Mark Thom
1b4b4807a5
refer to structures using str_loc_as_cell! ( #1311 )
2022-02-28 18:28:13 -07:00
Mark Thom
d92d8bce89
recognize [] as equivalent to "" in unify_atom ( #1288 )
2022-02-22 23:45:58 -07:00
Markus Triska
d1372d9b3b
FIXED: library(sgml): load_html/3 and load_xml/3 now both work again.
...
This addresses #1249 .
2022-02-23 00:03:27 +01:00
Mark Thom
063f0da565
correct '$skip_max_list/4' for non-lists ( #1276 )
2022-02-20 23:44:18 -07:00
Mark Thom
d3583276b3
throw instantiation_error on variables from ( #1283 )
2022-02-19 01:00:02 -07:00
Mark Thom
55d8de1b23
delay callable errors in control predicates ( #1282 )
2022-02-19 00:59:59 -07:00
Mark Thom
9ba503cd6b
use printer cycle detection when printing partial strings ( #1263 ), refactor skip_max_list functions
2022-02-06 21:36:49 -07:00
Mark Thom
7b8001d060
fix '$skip_max_list'/4 ( #1260 )
2022-02-05 18:33:30 -07:00
Mark Thom
4b71607215
count cycle lengths in skip_max_list_cycle ( #1260 )
2022-01-31 18:23:16 -07:00
Mark Thom
0d653a2ce6
improve '$skip_max_list'/4 and length/2 ( #1023 , #110 )
2022-01-29 12:47:26 -07:00
Mark Thom
b3006f6fd8
inline store & deref calls in '' ( #1176 )
2022-01-26 23:03:19 -07:00
Mark Thom
3ebf8d5db9
clear alias in close before resetting the stream to null ( #1231 )
2022-01-17 17:58:14 -07:00
Mark Thom
c6400550e1
dereference second argument of '/2
2022-01-17 00:00:23 -07:00
Markus Triska
11d504e8f4
retain the string "[]" as is, instead of converting it to '[]' (i.e., "")
...
This addresses #1215 .
2022-01-16 17:50:20 +01:00
Mark Thom
83378e4373
deduplicate but do not sort anonymous variables in toplevel ( #1196 )
2022-01-15 19:24:22 -07:00
Mark Thom
39e28f1f2a
write plaintext and ciphertext directly to atoms ( #1193 )
2022-01-13 08:47:56 -07:00
Mark Thom
cfe257495a
recognize characters as separate from atoms in ''/7 ( #1192 )
2022-01-10 21:18:11 -07:00
Adrián Arroyo Calle
35670c8654
remove TLS option in socket_client_open/3
2022-01-09 17:04:54 +01:00