]>
Repositorios git - scryer-prolog.git/log
Markus Triska [Mon, 22 Nov 2021 19:00:06 +0000 (20:00 +0100)]
use newly available must_be(chars, ...) for fast string tests
Markus Triska [Mon, 22 Nov 2021 18:58:36 +0000 (19:58 +0100)]
use newly available must_be(chars, ...) for fast string tests
Markus Triska [Mon, 22 Nov 2021 18:55:34 +0000 (19:55 +0100)]
ADDED: must_be(chars, ...) and can_be(chars, ...) for string tests.
Internal features of Scryer Prolog are used to make these tests fast.
Mark Thom [Sun, 21 Nov 2021 20:28:32 +0000 (15:28 -0500)]
Merge pull request #1098 from triska/format_improvements
Various smaller improvements to library(format)
Mark Thom [Sun, 21 Nov 2021 20:27:38 +0000 (15:27 -0500)]
Merge pull request #1099 from aarroyoc/uninstantiation_error-missing
Fix uninstantiation_error missing. Fix #1031
Mark Thom [Sun, 21 Nov 2021 20:27:17 +0000 (15:27 -0500)]
Merge pull request #1100 from aarroyoc/phrase-to-file-options
Add phrase_to_file/3 (phrase_to_file with Options)
Mark Thom [Sun, 21 Nov 2021 20:27:03 +0000 (15:27 -0500)]
Merge pull request #1102 from triska/meta_predicate_corrections
Meta predicate corrections
Markus Triska [Sat, 20 Nov 2021 21:43:53 +0000 (22:43 +0100)]
use round brackets for meta_predicate/1 declaration
Markus Triska [Sat, 20 Nov 2021 21:43:33 +0000 (22:43 +0100)]
FIXED: meta_predicate/1 declaration of cond_t/3.
Markus Triska [Sat, 20 Nov 2021 21:43:07 +0000 (22:43 +0100)]
FIXED: meta_predicate/1 declaration of (',')/3 and (;)/3.
Markus Triska [Sat, 20 Nov 2021 21:39:38 +0000 (22:39 +0100)]
FIXED: meta_predicate/1 declaration for tfilter/3.
Markus Triska [Sat, 20 Nov 2021 21:38:27 +0000 (22:38 +0100)]
FIXED: meta_predicate/1 declaration for tmember_t/3.
Markus Triska [Sat, 20 Nov 2021 21:37:59 +0000 (22:37 +0100)]
FIXED: meta_predicate/1 declaration for tmember/2.
Markus Triska [Sat, 20 Nov 2021 21:37:31 +0000 (22:37 +0100)]
FIXED: meta_predicate/1 declaration for tpartition/4.
This addresses #1101.
Markus Triska [Wed, 17 Nov 2021 20:33:15 +0000 (21:33 +0100)]
mention phrase_to_file/3 which is being prepared in #1100
Markus Triska [Tue, 16 Nov 2021 22:45:45 +0000 (23:45 +0100)]
'f' --> f
Markus Triska [Tue, 16 Nov 2021 17:41:43 +0000 (18:41 +0100)]
better layout
Markus Triska [Tue, 16 Nov 2021 17:31:18 +0000 (18:31 +0100)]
use newly available seq//1 from library(dcgs)
I am using seq(Ls) instead of plain Ls so that DCGs can be debugged
declaratively, by generalizing away nonterminals in rules.
Adrián Arroyo Calle [Wed, 17 Nov 2021 07:36:39 +0000 (08:36 +0100)]
Fix mistake in phrase_to_file/2 definition
Adrián Arroyo Calle [Tue, 16 Nov 2021 22:54:04 +0000 (23:54 +0100)]
Add phrase_to_file/3 (phrase_to_file with Options)
Adrián Arroyo Calle [Tue, 16 Nov 2021 22:22:24 +0000 (23:22 +0100)]
Fix uninstantiation_error missing. Fix #1031
Markus Triska [Tue, 16 Nov 2021 17:25:35 +0000 (18:25 +0100)]
more elegant solution for parsing numeric arguments, using a DCG
Markus Triska [Tue, 16 Nov 2021 17:20:58 +0000 (18:20 +0100)]
mention the format("~s", [Ls]) pattern and new library(pio) predicates
Mark Thom [Sat, 13 Nov 2021 05:05:26 +0000 (00:05 -0500)]
Merge pull request #1082 from pmoura/fix_format_predicates_missing_numbervars_option_on_w_and_q_formats
Fix the format/2-3 predicates missing the numbervars(true) option in the ~w and ~q formats
Mark Thom [Sat, 13 Nov 2021 05:04:51 +0000 (00:04 -0500)]
Merge pull request #1087 from Skgland/fix_beta_check
fix failing lint warnings in beta build
Mark Thom [Sat, 13 Nov 2021 05:03:57 +0000 (00:03 -0500)]
Merge pull request #1078 from triska/pio_improvements
Various improvements for pure output
Mark Thom [Sat, 13 Nov 2021 05:03:38 +0000 (00:03 -0500)]
Merge pull request #1086 from Skgland/pass_-f_flag_in_cargo_test
pass -f to scryer-prolog in cargo test so that we ignore .scryerrc
Mark Thom [Sat, 13 Nov 2021 05:03:26 +0000 (00:03 -0500)]
Merge pull request #1088 from triska/call_nth_metapredicate
FIXED: meta_predicate/1 directive for call_nth/2.
Skgland [Thu, 11 Nov 2021 18:32:35 +0000 (19:32 +0100)]
remove unused fields instead, prompting more dead_code removal
Markus Triska [Thu, 11 Nov 2021 18:29:32 +0000 (19:29 +0100)]
use functional notation for all meta_predicate/1 directives
Markus Triska [Thu, 11 Nov 2021 18:26:27 +0000 (19:26 +0100)]
FIXED: meta_predicate/1 directive for call_nth/2.
This addresses #1021.
Skgland [Thu, 11 Nov 2021 17:53:08 +0000 (18:53 +0100)]
fix failing lint warnings in beta build
Skgland [Thu, 11 Nov 2021 10:36:54 +0000 (11:36 +0100)]
pass -f to scryer-prolog in cargo test so that we ignore .scryerrc
fixes issue #1085
Paulo Moura [Mon, 8 Nov 2021 22:00:02 +0000 (22:00 +0000)]
Fix the format/2-3 predicates missing the numbervars(true) option in the ~w and ~q formats
Markus Triska [Mon, 8 Nov 2021 21:41:04 +0000 (22:41 +0100)]
FIXED: instantiation errors for alias(Var) in open/4 options
This addresses #1030.
Markus Triska [Mon, 8 Nov 2021 21:10:14 +0000 (22:10 +0100)]
FIXED: instantiation errors for type(Var) in open/4 options
This addresses #1030.
Markus Triska [Mon, 8 Nov 2021 20:48:50 +0000 (21:48 +0100)]
add motivation and comments about library(pio) predicates
Markus Triska [Mon, 8 Nov 2021 20:43:45 +0000 (21:43 +0100)]
use newly available library predicate read_n_chars/3
Markus Triska [Mon, 8 Nov 2021 19:29:39 +0000 (20:29 +0100)]
mention pure output predicates in the README
Markus Triska [Sun, 7 Nov 2021 16:11:00 +0000 (17:11 +0100)]
ADDED: library(format): DCG nonterminal portray_clause_//1, in analogy to format_//2.
Markus Triska [Sun, 7 Nov 2021 16:06:56 +0000 (17:06 +0100)]
express format/3 and portray_clause/2 in terms of phrase_to_stream/2
Markus Triska [Sun, 7 Nov 2021 16:02:41 +0000 (17:02 +0100)]
ADDED: phrase_to_stream/2, writing a list of characters to a stream.
Mark Thom [Sun, 7 Nov 2021 14:40:29 +0000 (09:40 -0500)]
Merge pull request #1077 from pmoura/fix_get_code_predicates_at_end_of_file
Fix the get_code/1-2 predicates to return -1 at the end of stream as per standard
Mark Thom [Sun, 7 Nov 2021 14:40:03 +0000 (09:40 -0500)]
Merge pull request #1071 from triska/read_n_chars
ADDED: read_n_chars/3, reading N characters from a stream.
Mark Thom [Sun, 7 Nov 2021 14:39:41 +0000 (09:39 -0500)]
Merge pull request #1070 from triska/open_stream
ENHANCED: open/4 to allow opening a stream by specifying stream(S).
Mark Thom [Sun, 7 Nov 2021 14:39:13 +0000 (09:39 -0500)]
Merge pull request #1069 from triska/crypto_improvements
Performance improvements for library(crypto)
Paulo Moura [Sat, 6 Nov 2021 19:41:25 +0000 (19:41 +0000)]
Fix the get_code/1-2 predicates to return -1 at the end of stream
Markus Triska [Thu, 4 Nov 2021 17:50:40 +0000 (18:50 +0100)]
import also partial_string/3 (used in #1071)
Markus Triska [Thu, 4 Nov 2021 17:36:27 +0000 (18:36 +0100)]
ADDED: read_n_chars/3, reading N characters from a stream.
Markus Triska [Thu, 4 Nov 2021 17:30:39 +0000 (18:30 +0100)]
move error handling to Prolog by using the new '$first_non_octet'/2
Markus Triska [Thu, 4 Nov 2021 17:28:05 +0000 (18:28 +0100)]
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.
Markus Triska [Wed, 3 Nov 2021 21:35:47 +0000 (22:35 +0100)]
use partial_string/1 for much quicker test
Markus Triska [Wed, 3 Nov 2021 21:27:41 +0000 (22:27 +0100)]
use '$first_non_octet'/2 for much faster domain check
Markus Triska [Wed, 3 Nov 2021 21:11:45 +0000 (22:11 +0100)]
ADDED: '$first_non_octet'/2, for much more efficient domain checks in library(crypto).
'$first_non_octet'(Cs, C) <=> C is the leftmost character in the
string Cs whose character code is not in 0..255.
Markus Triska [Wed, 3 Nov 2021 20:45:07 +0000 (21:45 +0100)]
ENHANCED: Much faster Base64 encoding/decoding, using partial_string/1 for a quick check.
Mark Thom [Wed, 3 Nov 2021 15:57:45 +0000 (13:27 -0230)]
Merge pull request #1065 from aarroyoc/pio-string
Disable check of atom and leverage to open/4 the domain_error
Mark Thom [Wed, 3 Nov 2021 15:57:18 +0000 (13:27 -0230)]
Merge pull request #1066 from aarroyoc/rust-2021
Rust 2021
Adrián Arroyo Calle [Mon, 1 Nov 2021 22:03:51 +0000 (23:03 +0100)]
Rust 2021
Adrián Arroyo Calle [Fri, 29 Oct 2021 21:52:08 +0000 (23:52 +0200)]
Disable check of atom and leverage to open/4 the domain_error
Adrián Arroyo Calle [Fri, 29 Oct 2021 21:51:30 +0000 (23:51 +0200)]
Disable check of atom and leverage to open/4 the domain_error
Mark Thom [Sun, 17 Oct 2021 17:58:28 +0000 (11:58 -0600)]
Merge pull request #1052 from aarroyoc/shell-predicate
Implement shell/1 and shell/2
Adrián Arroyo Calle [Fri, 15 Oct 2021 15:22:15 +0000 (17:22 +0200)]
Go back and accept only list of chars
Adrián Arroyo Calle [Thu, 14 Oct 2021 20:52:29 +0000 (22:52 +0200)]
Accept atom or shell
Adrián Arroyo Calle [Mon, 11 Oct 2021 20:35:05 +0000 (22:35 +0200)]
Implement shell/1 and shell/2
Mark Thom [Thu, 7 Oct 2021 23:09:16 +0000 (17:09 -0600)]
Merge pull request #1051 from aarroyoc/close-stream
Throw exception if closing a closed TCP stream #1046
Adrián Arroyo Calle [Thu, 30 Sep 2021 21:46:52 +0000 (23:46 +0200)]
Close Stream test feedback
Adrián Arroyo Calle [Thu, 30 Sep 2021 21:01:25 +0000 (23:01 +0200)]
Close Stream bug files
Adrián Arroyo Calle [Thu, 30 Sep 2021 20:59:15 +0000 (22:59 +0200)]
Close Stream bug files
Mark Thom [Thu, 30 Sep 2021 15:19:09 +0000 (09:19 -0600)]
Merge pull request #1049 from pmoura/add_preliminary_current_module_predicate_definition
Add preliminary current_module/1 predicate definition requiring a bound argument
Adrián Arroyo Calle [Wed, 29 Sep 2021 22:10:03 +0000 (00:10 +0200)]
use shutdown error values to throw exceptions in close stream
Adrián Arroyo Calle [Tue, 28 Sep 2021 20:48:51 +0000 (22:48 +0200)]
launch exception if closing a closed TCP stream #1046
Mark Thom [Tue, 28 Sep 2021 01:12:24 +0000 (19:12 -0600)]
reset attributed variables queue when backtracking (#678, etc.)
Mark Thom [Mon, 27 Sep 2021 00:57:45 +0000 (18:57 -0600)]
reset attributed variables queue after successful verify_attributes interrupt (#669, etc)
Paulo Moura [Fri, 24 Sep 2021 09:13:00 +0000 (10:13 +0100)]
Add preliminary current_module/1 predicate definition requiring a bound argument
Mark Thom [Mon, 6 Sep 2021 05:31:57 +0000 (23:31 -0600)]
Merge pull request #1045 from triska/phrase_to_file
ADDED: Rudimentary version of phrase_to_file/2 in library(pio)
Markus Triska [Sat, 4 Sep 2021 20:02:17 +0000 (22:02 +0200)]
use round brackets for meta_predicate declarations
This is because meta_predicate is not a standard operator.
Markus Triska [Sat, 4 Sep 2021 19:13:51 +0000 (21:13 +0200)]
ADDED: Rudimentary version of phrase_to_file/2 in library(pio)
See #691 for more information.
Mark Thom [Tue, 24 Aug 2021 04:26:15 +0000 (22:26 -0600)]
Merge pull request #1033 from aarroyoc/fix-1022
Add a -f switch to load alternative initialization files
Mark Thom [Tue, 24 Aug 2021 04:25:44 +0000 (22:25 -0600)]
Merge pull request #1032 from aarroyoc/fix-1009
Fix #1009 by providing a naive num-bigint implementation of count_ones
Adrián Arroyo Calle [Mon, 23 Aug 2021 07:53:15 +0000 (09:53 +0200)]
Rename init_file to disable_init_file
Adrián Arroyo Calle [Sun, 22 Aug 2021 09:44:17 +0000 (11:44 +0200)]
use consult instead of use_module
Adrián Arroyo Calle [Sun, 22 Aug 2021 09:36:27 +0000 (11:36 +0200)]
Rename to disable_init_file and change description
Adrián Arroyo Calle [Sat, 21 Aug 2021 15:53:20 +0000 (17:53 +0200)]
PR feedback
Adrián Arroyo Calle [Fri, 20 Aug 2021 12:15:16 +0000 (14:15 +0200)]
Read scryerrc if goals specified but not -f specified
Adrián Arroyo Calle [Fri, 20 Aug 2021 12:06:57 +0000 (14:06 +0200)]
Clean the code
Adrián Arroyo Calle [Fri, 20 Aug 2021 12:00:32 +0000 (14:00 +0200)]
Add a -f switch to load alternative initialization files
Adrián Arroyo Calle [Fri, 20 Aug 2021 10:40:27 +0000 (12:40 +0200)]
Make it line
Adrián Arroyo Calle [Fri, 20 Aug 2021 10:38:15 +0000 (12:38 +0200)]
Fix #1009 by providing a naive num-bigint implementation of count_ones
Mark Thom [Sun, 15 Aug 2021 14:59:06 +0000 (08:59 -0600)]
Merge pull request #1029 from triska/format
ENHANCED: Domain error non_empty_list for empty arguments, addressing #1024
Markus Triska [Sun, 15 Aug 2021 10:28:02 +0000 (12:28 +0200)]
ENHANCED: Domain error non_empty_list for empty arguments, addressing #1024.
Example:
?- format("~d", []).
%@ caught: error(domain_error(non_empty_list,[]),format_//2)
Mark Thom [Sun, 15 Aug 2021 05:06:28 +0000 (23:06 -0600)]
Merge pull request #1027 from triska/format
ENHANCED: format_string domain error for invalid radix in format string
Markus Triska [Sat, 14 Aug 2021 18:02:47 +0000 (20:02 +0200)]
ENHANCED: format_string domain error for invalid radix in format string
This addresses #1024.
Example:
?- format("hello ~0r!", [12]).
%@ caught: error(domain_error(format_string,"~0r"),format_//2)
Mark Thom [Sat, 14 Aug 2021 15:15:30 +0000 (09:15 -0600)]
Merge pull request #1026 from triska/format
ENHANCED: If N is omitted in ~Nr or ~NR, it defaults to 8.
Markus Triska [Sat, 14 Aug 2021 11:48:21 +0000 (13:48 +0200)]
ENHANCED: If N is omitted in ~Nr or ~NR, it defaults to 8.
This is for compatibility with Quintus, SICStus and GNU Prolog,
addressing #1024.
Example:
?- format("~r", [10]).
%@ 12 true.
Mark Thom [Sun, 1 Aug 2021 15:25:55 +0000 (09:25 -0600)]
run user-level and module-level initialization goals from loader.pl (#1012)
Mark Thom [Thu, 8 Jul 2021 20:44:29 +0000 (14:44 -0600)]
Merge pull request #1001 from triska/master
ADDED: ... //0, describing an arbitrary number of elements
Markus Triska [Sat, 3 Jul 2021 07:54:01 +0000 (09:54 +0200)]
ADDED: ... //0, describing an arbitrary number of elements
This is a very versatile nonterminal. For instance, repeated elements:
?- phrase((...,[E],...,[E],...), "hello!!").
%@ E = l
%@ ; E = !
%@ ; false.
Mark Thom [Tue, 22 Jun 2021 17:56:56 +0000 (11:56 -0600)]
Merge pull request #996 from triska/master
address #995: wrong results for popcount/1
Markus Triska [Mon, 21 Jun 2021 19:19:37 +0000 (21:19 +0200)]
address #995: wrong results for popcount/1
Many thanks to @notoria and @flexoron for very useful test cases!
Mark Thom [Sat, 19 Jun 2021 00:13:30 +0000 (18:13 -0600)]
Merge pull request #993 from triska/master
ADDED: popcount(+Integer)