Markus Triska
612f09893c
use newly available ... //0 from library(dcgs)
2022-10-26 23:36:07 -06:00
Markus Triska
e9f507b868
add meta_predicate/1 declaration for phrase_to_file/3
2022-10-26 23:36:07 -06:00
Mark Thom
78278c804f
strip modules from GRBody in phrase/3 ( #1565 )
2022-10-26 23:36:07 -06:00
Mark Thom
b51460a59a
fail on non-list solutions in setof/3 ( #1553 )
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
Markus Triska
c7caf6b7a9
ENHANCED: CLP(ℤ): Reduce redundant propagator invocations during all_distinct/1 filtering
...
First, the current propagator is now logged and not re-triggered
during filtering. Second, and more significantly, all neq_num/2
constraints are scheduled and processed before more global constraints
are invoked. In this way, all the distilled information can be taken
into account by subsequently invoked global constraints.
These changes yield a 3-fold improvement in several Sudoku instances,
and a significant runtime reduction in social golfer instance 8-4-9.
2022-10-26 23:36:07 -06:00
Markus Triska
4422ffe39f
add meta_predicate/1 declarations
2022-10-26 23:36:07 -06:00
Mark Thom
1ff52f70aa
resolve phrase modules internally ( #1541 )
2022-10-26 23:36:07 -06:00
Mark Thom
fce45167a5
fail when exception caught from subgoal expansion ( #1535 )
2022-10-26 23:36:07 -06:00
Mark Thom
b8f384045c
fix module resolution in dcgs, call/N ( #1539 )
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
edea1273c8
trim get_structure and put_structure arities when last arg is an index ptr ( #1536 )
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
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