Commit Graph

89 Commits

Author SHA1 Message Date
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
Mark Thom
9d5264c5a3 very minor optimizations 2022-04-17 20:10:13 -06:00
Mark Thom
7595ec16e5 instantiate Module in definition of retract/1 (#1392) 2022-04-13 20:31:16 -06:00
Mark Thom
00eab4d415 print errors as goals (#1408) 2022-04-09 14:01:48 -06:00
Paulo Moura
0532f51cc2 Fix querying the values of the bounded and max_arity flags 2022-03-07 00:30:35 +00:00
Paulo Moura
495168e7bb Fix halt/1 built-in predicate for ISO Prolog Core standard compliance 2022-03-06 21:33:49 +00:00
Mark Thom
0c19c56909 mark variables in ArithmeticEvaluator (#690) 2022-03-05 17:57:10 -07:00
Mark Thom
55d8de1b23 delay callable errors in control predicates (#1282) 2022-02-19 00:59:59 -07:00
Mark Thom
68ac92a616 don't unify module-qualified variables to ! (#1281) 2022-02-14 18:46:15 -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
142ddcd57a use expand_goal directly for existential-qualified goals in all-solutions predicates (#1246) 2022-01-26 17:34:36 -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
d90cf6384c complete handling of control operators in interpreted (,)/2 (#1172) 2022-01-08 00:04:04 -07:00
Mark Thom
955e1799c8 flatten the instruction dispatch loop 2022-01-06 22:09:36 -07:00
Mark Thom
520121b2b2 remove skeletons from replaced modules 2022-01-06 21:44:41 -07:00
Mark Thom
48c1d05151 use heap_loc to refer to 0-arity atom instead of str_loc 2022-01-06 21:44:41 -07:00
Mark Thom
8ba61a1da1 defer installation of inference counter for call_with_inference_limit til after goals expanded 2022-01-06 21:44:41 -07:00
Mark Thom
f340f9ac94 break from loop in get_code upon successful character read 2022-01-06 21:44:41 -07:00
Mark Thom
1b3f290037 throw instantiation error if Arity is a variable in abolish/1 2022-01-06 21:44:41 -07:00
Mark Thom
b551ef315f use strip module in retract/1, a meta-predicate 2022-01-06 21:44:41 -07:00
Mark Thom
7507e88406 detect module resolved cut in interpreted (,) 2022-01-06 21:44:41 -07:00
Mark Thom
073f281f1e fix arg/3 bug 2022-01-06 21:44:41 -07:00
Mark Thom
0e2db4a23e tag DCG constructs with module names for proper resolution 2022-01-06 21:44:41 -07:00
Mark Thom
ffd1b7069f greatly reduce the number of goal expansions done in callable if/then/else 2022-01-06 21:44:41 -07:00
Mark Thom
0404c3bd94 use new heap term representation 2022-01-06 21:44:38 -07:00
Markus Triska
48cea6efdf FIXED: retract/1 issues due to module qualification
This addresses #1125.
2021-12-01 21:46:12 +01:00
Markus Triska
0026f3fdef use anonymous variable 2021-12-01 20:54:06 +01:00
Mark Thom
e47aef5615 Merge pull request #1116 from aarroyoc/fix-open-lis
Allow all kinds of string to be processed in open/4
2021-11-28 16:18:02 -05:00
Adrián Arroyo Calle
86161ccf2a Allow all kinds of string to be processed in open/4 2021-11-28 12:37:16 +01:00
Markus Triska
5e55732cb0 ENHANCED: Character type checks for get_char/[1,2].
This addresses #906.
2021-11-28 10:49:40 +01:00
Markus Triska
3045f327d5 FIXED: instantiation errors for alias(Var) in open/4 options
This addresses #1030.
2021-11-08 22:41:04 +01:00
Markus Triska
2d1f182c49 FIXED: instantiation errors for type(Var) in open/4 options
This addresses #1030.
2021-11-08 22:37:46 +01:00
Markus Triska
afcd44deaa ENHANCED: open/4 to allow opening a stream by specifying stream(S).
This allows switching standard output to binary, using for example:

  ?- current_output(S0), open(stream(S0), write, S, [type(binary)]).

format/3 can then be used to write binary data to S. This is needed
for example when piping binary data to other programs.

This addresses #614, please read the discussion for more information.

The current implementation is very preliminary: Specifically, it works
by destructively modifiying the parameters of the underlying stream,
making it no longer usable in its original mode. Currently, if the
type of standard output is set to binary, then the toplevel no longer
works. Therefore, after writing binary output to standard output,
the program should either halt, or set the stream type back to text.
2021-11-04 18:33:40 +01:00
Paulo Moura
0e263dd753 Fix current_predicate/1 predicate error checking 2021-05-16 23:49:21 +01:00
Mark Thom
56bbcb1cb3 Merge pull request #956 from pmoura/fix_subsumes_term_predicate
Fix subsumes_term/2 predicate to use unify_with_occurs_check/2 instead of (=)/2
2021-05-13 23:18:58 -06:00
Mark Thom
9bb1f4e6f8 Merge pull request #958 from pmoura/fixes_for_retract_predicates
Fixes for retract predicates
2021-05-13 23:18:36 -06:00
Mark Thom
d219f0bdc6 Merge pull request #957 from pmoura/fix_at_end_of_stream_predicate_missing_check_for_instantiation_error
Fix at_end_of_stream/1 predicate missing check for instantiation error
2021-05-13 23:17:59 -06:00
Mark Thom
c8d0f6ff20 Merge pull request #955 from pmoura/fix_abolish_predicate_throw_of_instantiation_error
Fix abolish/1 predicate throw of instantiation_error
2021-05-13 23:17:30 -06:00
Paulo Moura
88a2cfc5e1 Fix retract_clause/2 internal predicate to correctly handle module qualification and no lose body bindings 2021-05-12 23:48:12 +01:00
Paulo Moura
fb29830521 Fix retractall/1 predicate to retract both facts and rules 2021-05-12 23:46:05 +01:00
Paulo Moura
6540fea4da Fix at_end_of_stream/1 predicate missing check for instantiation error 2021-05-12 21:17:11 +01:00
Paulo Moura
4fd33b015e Fix subsumes_term/2 predicate to use unify_with_occurs_check/2 instead of (=)/2 2021-05-12 20:02:09 +01:00
Paulo Moura
d2fcdb3b6c Fix abolish/1 predicate throw of instantiation_error 2021-05-12 19:39:20 +01:00
Paulo Moura
c2fe0876c2 Fix set_stream_position/2 predicate missing argument in exception term 2021-05-12 19:32:24 +01:00
Paulo Moura
f7eda362c7 Add max_arity Prolog flag 2021-05-12 00:34:47 +01:00
Paulo Moura
42d9b57733 Fix querying bounded and integer_rounding_function flag values 2021-05-11 12:08:11 +01:00
Paulo Moura
8acbdfbf1d Fix char_code/2 predicate wrong error term when the first argument is bound but is not an atom 2021-05-10 21:27:04 +01:00
Mark Thom
5eac945bc0 Merge pull request #937 from pmoura/fix_open_predicate_error_term_on_bound_stream_argument
Fix open/3-4 predicates error term when the stream argument is bound
2021-05-10 11:10:12 -06:00
Mark Thom
2736b4198a Merge pull request #936 from pmoura/fix_throw_1_control_construct_with_var_argument
Fix throw/1 control construct to throw an instantiation error when the argument is not bound
2021-05-10 11:09:59 -06:00