Mark Thom
5a08117e75
use separate predicate for findall cleanup
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
607c84a79b
capture and propagate (=..)/2 errors in phrase/{2,3} ( #1460 )
2022-06-21 22:47:55 -06:00
Mark Thom
2eec6499ff
propagate inference_limit_exceeded errors through the loader ( #1298 )
2022-06-18 11:26:31 -06: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
ab4f93dcee
do not emit indexing instructions for single clause subsequences ( #1503 )
2022-06-04 15:29:00 -06:00
Mark Thom
c36d4a9c9a
unmark cells in arith_eval_by_metacall ( #1497 )
2022-06-01 00:02:11 -06:00
Mark Thom
4b5c22864e
don't print superfluous round brackets in curly braces ( #1416 )
2022-05-31 23:34:55 -06:00
Mark Thom
5e1faeb5d2
fix broken quoting in writeq/1 ( #1498 )
2022-05-31 18:29:42 -06:00
Mark Thom
4b7c2ba6c8
fix off-by-one error reporting in write_term/3 ( #1490 )
2022-05-30 23:25:44 -06:00
Mark Thom
b9285f8de1
don't quote most characters in strings ( #1495 , #301 )
2022-05-30 23:09:20 -06:00
Mark Thom
084fc84590
use existence_error for dropped streams ( #1472 )
2022-05-23 11:15:58 -06:00
Markus Triska
6b49653754
use in_character
...
This addresses one aspect of #1472 .
2022-05-22 23:04:27 +02:00
Markus Triska
d5fa8cc211
ADDED: must_be(in_character, ...) and can_be(in_character, ...)
2022-05-22 23:04:27 +02:00
Mark Thom
10a11c293e
fix stream position and term comparison bugs ( #1472 )
2022-05-22 14:16:14 -06:00
Adrián Arroyo Calle
6feb1f8b82
Fix build on Windows 10
2022-05-22 13:18:11 +02:00
Mark Thom
bef8eb538c
throw a representation error if max arity is exceeded ( #1483 )
2022-05-22 00:03:55 -06:00
Mark Thom
4e3b066555
Merge pull request #1482 from triska/multiple_of_five_answers
...
ENHANCED: "f" on toplevel to report answers up to the next multiple of 5.
2022-05-21 12:35:35 -06:00
Mark Thom
4d23542ef3
add max arity checks at various stages ( #1459 )
2022-05-21 12:32:48 -06:00
Markus Triska
47a6b498e3
ENHANCED: "f" on toplevel to report answers up to the next multiple of 5.
...
This makes counting solutions easy.
2022-05-21 18:20:08 +02:00
Mark Thom
b6f77f4e6f
check asserta/2, assertz/2, abolish/2 for uninstantiated Module variables ( #1475 )
2022-05-16 20:45:45 -06:00
Mark Thom
b96cd06129
detect character type errors in atom_{chars|codes}/2 ( #1472 )
2022-05-16 16:32:38 -06:00
Markus Triska
18c52e076f
indent enumerations
2022-05-15 10:55:56 +02:00
Markus Triska
1810dabc14
clarify the representation
2022-05-15 10:55:27 +02:00
Markus Triska
609a3a229f
strengthen and improve type checks
2022-05-15 10:51:00 +02:00
Markus Triska
dff56643f0
clarify comment
2022-05-15 10:23:00 +02:00
Markus Triska
77f8d52271
use phrase_from_file/2 directly on the file name
2022-05-15 10:19:00 +02:00
Markus Triska
a5e72679bc
prioritize type errors over instantiation errors
...
Example:
?- must_be(chars, [a,X,cc]).
error(type_error(character,cc),can_be/2).
See https://github.com/mthom/scryer-prolog/pull/1474#issuecomment-1126664368
2022-05-14 09:53:21 +02:00
Markus Triska
15cc916333
FIXED: can_be(chars, [a,X]), i.e., if variables occur as elements
...
This should simplify 2f3de51e55 and
other cases like it.
2022-05-14 08:39:20 +02: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
27a15a2464
wip: add more atoms to completion list
2022-05-11 21:37:03 +01: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
Markus Triska
d58dd7cc91
ADDED: sign/1
2022-05-05 22:51:49 +02:00
Markus Triska
7e06abebd5
remove comment that seems no longer valid
2022-05-05 22:51:49 +02:00
Mark Thom
8dd7f51ae3
fix rnd_i fixnum casting bug ( #1456 , #1458 )
2022-05-04 22:44:12 -06:00
Mark Thom
6030fae685
track f64 offsets in Literal ( #1190 )
2022-05-04 21:54:46 -06:00