]>
Repositorios git - scryer-prolog.git/log
Mark Thom [Sat, 18 Apr 2020 17:10:26 +0000 (14:10 -0300)]
Merge pull request #360 from notoria/master
Add get_single_char predicate.
notoria [Sat, 18 Apr 2020 16:51:37 +0000 (18:51 +0200)]
Merge pull request #2 from triska/get_single_char
New feature: RET can now be used as a synonym for "." in the interaction
notoria [Sat, 18 Apr 2020 16:28:26 +0000 (18:28 +0200)]
Removed a check in get_single_char
Markus Triska [Sat, 18 Apr 2020 16:08:08 +0000 (18:08 +0200)]
reintroduce "n" as a synonym for ";" and " "
Markus Triska [Sat, 18 Apr 2020 15:47:24 +0000 (17:47 +0200)]
ENHANCED: the toplevel interaction now supports RETURN as a synonym for "."
This is made possible due to the recent improvements by @notoria.
Markus Triska [Sat, 18 Apr 2020 15:40:19 +0000 (17:40 +0200)]
small simplifications
notoria [Sat, 18 Apr 2020 14:57:45 +0000 (16:57 +0200)]
Added Space for continuation
notoria [Sat, 18 Apr 2020 13:21:19 +0000 (15:21 +0200)]
Fixed the predicate name when error is thrown
notoria [Sat, 18 Apr 2020 12:50:32 +0000 (14:50 +0200)]
Merge pull request #1 from triska/get_single_char
use get_single_char/1
Markus Triska [Sat, 18 Apr 2020 12:38:03 +0000 (14:38 +0200)]
instead of a type error, use a domain error
The preceding use of atom_length/2 already ensures that C has the
correct type (i.e., atom). However, its domain may still be wrong,
if its length is greater than 1.
Markus Triska [Sat, 18 Apr 2020 12:33:11 +0000 (14:33 +0200)]
use get_single_char/1
notoria [Sat, 18 Apr 2020 11:54:18 +0000 (13:54 +0200)]
Removed $raw_input_read_char
notoria [Sat, 18 Apr 2020 11:33:42 +0000 (13:33 +0200)]
get_single_char reads Tab as \t
notoria [Sat, 18 Apr 2020 11:30:52 +0000 (13:30 +0200)]
get_single_char reads Enter as \n
notoria [Sat, 18 Apr 2020 10:52:49 +0000 (12:52 +0200)]
Moved get_single_char from builtins.pl to charsio.pl
notoria [Sat, 18 Apr 2020 09:49:28 +0000 (11:49 +0200)]
Added predicate for reading a single character
Mark Thom [Wed, 15 Apr 2020 20:11:45 +0000 (14:11 -0600)]
index Constant::Usize (#355)
Mark Thom [Wed, 15 Apr 2020 19:45:35 +0000 (13:45 -0600)]
quote single dots only
Mark Thom [Wed, 15 Apr 2020 16:19:54 +0000 (13:19 -0300)]
Merge pull request #354 from triska/master
ADDED: list_to_set/2, using the first occurrence of each element
Mark Thom [Wed, 15 Apr 2020 16:32:23 +0000 (10:32 -0600)]
allow characters as atoms in Machine::use_module and Machine::use_qualified_module
Mark Thom [Wed, 15 Apr 2020 16:27:20 +0000 (10:27 -0600)]
remove underscores in printed variables produced by write_term_to_chars (#340)
Mark Thom [Wed, 15 Apr 2020 16:07:44 +0000 (10:07 -0600)]
don't count the terminator in PStrIter len
Markus Triska [Wed, 15 Apr 2020 15:49:01 +0000 (17:49 +0200)]
ADDED: list_to_set/2, using the first occurrence of each element
Example:
?- list_to_set([B,a,b,a,B,A,b,A], Ls).
Ls = [B,a,b,A]
; false.
Mark Thom [Wed, 15 Apr 2020 06:54:32 +0000 (00:54 -0600)]
quote dot when quoted(true) (#349)
Mark Thom [Wed, 15 Apr 2020 06:37:00 +0000 (00:37 -0600)]
privilege new op declarations over old ones (#346)
Mark Thom [Wed, 15 Apr 2020 06:08:35 +0000 (00:08 -0600)]
interrupt running queries and return to toplevel (#323)
Mark Thom [Wed, 15 Apr 2020 05:25:15 +0000 (23:25 -0600)]
write [a,b,c] correctly with write_canonical (#349)
Mark Thom [Wed, 15 Apr 2020 05:15:01 +0000 (23:15 -0600)]
Merge branch 'master' of https://github.com/mthom/rusty-wam
Mark Thom [Wed, 15 Apr 2020 05:14:47 +0000 (23:14 -0600)]
properly iterate through UTF-8 strings (#350)
Mark Thom [Tue, 14 Apr 2020 20:26:30 +0000 (14:26 -0600)]
clean up print_list_like
Mark Thom [Tue, 14 Apr 2020 19:28:51 +0000 (13:28 -0600)]
print lists as strings when possible (#295)
Mark Thom [Tue, 14 Apr 2020 17:29:40 +0000 (14:29 -0300)]
Merge pull request #348 from triska/master
update the toplevel description, incorporating the latest changes
Markus Triska [Tue, 14 Apr 2020 17:24:13 +0000 (19:24 +0200)]
update the toplevel description, incorporating the latest changes
Mark Thom [Tue, 14 Apr 2020 16:39:10 +0000 (10:39 -0600)]
provide better variable names in write_term_to_chars/3 (#340)
Mark Thom [Tue, 14 Apr 2020 16:25:05 +0000 (10:25 -0600)]
improve writeX performance (#290)
Mark Thom [Tue, 14 Apr 2020 07:03:49 +0000 (01:03 -0600)]
copy operator exports to impromptu modules (#307)
Mark Thom [Tue, 14 Apr 2020 06:40:57 +0000 (00:40 -0600)]
Merge branch 'master' of https://github.com/mthom/rusty-wam
Mark Thom [Tue, 14 Apr 2020 06:40:51 +0000 (00:40 -0600)]
change from xsi to iso in bimetatrans, correct atomic/1 failure (#343)
Mark Thom [Mon, 13 Apr 2020 22:24:52 +0000 (19:24 -0300)]
Merge pull request #345 from triska/master
ADDED: group_pairs_by_key/2
Markus Triska [Mon, 13 Apr 2020 22:10:33 +0000 (00:10 +0200)]
ADDED: group_pairs_by_key/2
Pairs must be keysorted and may also contain variables as keys.
Examples:
?- group_pairs_by_key([1-a,1-b,2-c], Ps).
Ps = [1-[a,b],2-[c]].
?- group_pairs_by_key([X-a,X-b,2-c], Ps).
Ps = [X-[a,b],2-[c]].
Mark Thom [Mon, 13 Apr 2020 17:17:50 +0000 (11:17 -0600)]
version bump
Mark Thom [Mon, 13 Apr 2020 14:17:08 +0000 (11:17 -0300)]
Merge pull request #327 from srenatus/sr/pass-argv-as-partial-strings
use partial strings for passing argv to toplevel.pl
Mark Thom [Mon, 13 Apr 2020 14:16:55 +0000 (11:16 -0300)]
Merge pull request #342 from srenatus/sr/fix-cargo-install
main: fix version reporting without git
Stephan Renatus [Mon, 13 Apr 2020 13:50:31 +0000 (15:50 +0200)]
main: fix version reporting without git
Fixes #339.
At least I hope so. I didn't come up with an idea how to test this with
little effort.
Signed-off-by: Stephan Renatus <[email protected] >
Mark Thom [Mon, 13 Apr 2020 12:13:17 +0000 (09:13 -0300)]
Merge pull request #341 from triska/master
the workaround is no longer necessary, since #336 is now corrected
Markus Triska [Mon, 13 Apr 2020 09:32:06 +0000 (11:32 +0200)]
the workaround is no longer necessary, since #336 is now corrected
Stephan Renatus [Mon, 6 Apr 2020 15:35:21 +0000 (17:35 +0200)]
use partial strings for passing argv to toplevel.pl
In run_top_level: rename variables, make them partial strings
The rename is mostly cosmetic: all of argv is passed, and if argv
contains flags, goals, etc, it's more than filenames.
Using partial strings instead of atom came from discussions about how to
pass goals in the CLI, and can thus be considered preliminary work for
that.
In toplevel.pl: convert partial string to atom before passing it to
`use_module`.
Signed-off-by: Stephan Renatus <[email protected] >
Mark Thom [Mon, 13 Apr 2020 06:32:41 +0000 (00:32 -0600)]
use prolog_parser 0.8.50 (#336)
Mark Thom [Mon, 13 Apr 2020 05:33:07 +0000 (23:33 -0600)]
correct partial string copying by resetting threshold to redirected partial string stubs to 0
Mark Thom [Mon, 13 Apr 2020 04:27:53 +0000 (22:27 -0600)]
use partial_string/1 in place of the removed string/1 in bimetatrans_ruleml.pl
Mark Thom [Mon, 13 Apr 2020 04:01:59 +0000 (22:01 -0600)]
update Cargo.lock
Mark Thom [Mon, 13 Apr 2020 03:59:22 +0000 (21:59 -0600)]
bump version to 0.8.119
Mark Thom [Sun, 12 Apr 2020 23:35:48 +0000 (20:35 -0300)]
Merge pull request #338 from triska/master
also include a newline in portray_clause/1
Markus Triska [Sun, 12 Apr 2020 23:21:32 +0000 (01:21 +0200)]
also include a newline in portray_clause/1
Mark Thom [Sun, 12 Apr 2020 23:10:21 +0000 (20:10 -0300)]
Merge pull request #337 from triska/master
ADDED: provide a rudimentary version of portray_clause/1
Mark Thom [Mon, 13 Apr 2020 00:10:45 +0000 (18:10 -0600)]
make write_term_to_chars work with variable terms (#335)
Mark Thom [Sun, 12 Apr 2020 23:26:11 +0000 (17:26 -0600)]
provide read_term_from_chars/2 (#334)
Markus Triska [Sun, 12 Apr 2020 22:12:28 +0000 (00:12 +0200)]
ADDED: provide a rudimentary version of portray_clause/1
At the moment, library(format) seems to be a fitting place.
In the eventual library organization, portray_clause/1 and
related predicates may be moved to their own dedicated library.
Mark Thom [Sun, 12 Apr 2020 22:01:53 +0000 (16:01 -0600)]
change wording of QueryCannotBePostedAsFact to QueryCannotBeDefinedAsFact, remove old commented code in read.rs
Mark Thom [Sun, 12 Apr 2020 19:00:01 +0000 (16:00 -0300)]
Merge pull request #333 from triska/master
incorporate the latest improvements in the description of partial strings
Markus Triska [Sun, 12 Apr 2020 18:44:12 +0000 (20:44 +0200)]
incorporate the latest improvements in the description of partial strings
As of
6e4b76a3b40beb02556bd8847fe96789fa0ef012 , the use of
partial_string/3 can be replaced by (=)/2 in this example.
Mark Thom [Sun, 12 Apr 2020 18:00:20 +0000 (15:00 -0300)]
Merge pull request #332 from triska/master
ENHANCED: ~w now supports compound terms, and ~q is now also available
Mark Thom [Sun, 12 Apr 2020 20:42:39 +0000 (14:42 -0600)]
move write_term_to_chars/3 to src/prolog/lib/charsio.pl
Mark Thom [Sun, 12 Apr 2020 20:29:28 +0000 (14:29 -0600)]
add write_term_to_chars/3 to iso_ext.pl (#288)
Mark Thom [Sun, 12 Apr 2020 18:51:59 +0000 (12:51 -0600)]
correct misleading error for modules (#300)
Mark Thom [Sun, 12 Apr 2020 18:18:15 +0000 (12:18 -0600)]
be more judicious with at_cdr in print_string (#295)
Mark Thom [Sun, 12 Apr 2020 18:07:41 +0000 (12:07 -0600)]
throw exception when attempting to post query as goal (#329)
Markus Triska [Sun, 12 Apr 2020 17:54:52 +0000 (19:54 +0200)]
ENHANCED: ~w now supports compound terms, and ~q is now also available
Mark Thom [Sun, 12 Apr 2020 05:08:15 +0000 (23:08 -0600)]
recognize empty lists as partial strings (#328)
Mark Thom [Sun, 12 Apr 2020 04:47:52 +0000 (22:47 -0600)]
remove string/1, use a more general test for the partial_string/1 type test (#328)
Mark Thom [Sun, 12 Apr 2020 04:40:29 +0000 (22:40 -0600)]
throw error when trying to use partial lists as DCG terminal-sequence (#286)
Mark Thom [Sun, 12 Apr 2020 04:02:17 +0000 (22:02 -0600)]
remove unnecessary use of partial_string in bimetatrans example
Mark Thom [Sun, 12 Apr 2020 01:03:10 +0000 (22:03 -0300)]
Merge pull request #310 from triska/bimeta_example
Bimeta example
Mark Thom [Sun, 12 Apr 2020 03:59:25 +0000 (21:59 -0600)]
Merge branch 'master' of https://github.com/mthom/rusty-wam
Mark Thom [Sun, 12 Apr 2020 03:53:28 +0000 (21:53 -0600)]
compile special instructions for partial strings when recognized
Mark Thom [Sun, 12 Apr 2020 03:52:45 +0000 (21:52 -0600)]
do not accept [X|Xs] patterns as DCG non-terminals (#286)
Mark Thom [Thu, 9 Apr 2020 15:26:31 +0000 (12:26 -0300)]
Merge pull request #320 from triska/master
add library(freeze) to make zcompare/3 work
Markus Triska [Wed, 8 Apr 2020 19:37:35 +0000 (21:37 +0200)]
add library(freeze) to make zcompare/3 work
Mark Thom [Wed, 8 Apr 2020 19:59:13 +0000 (16:59 -0300)]
Merge pull request #318 from triska/master
extend description of strings and partial strings
Markus Triska [Wed, 8 Apr 2020 18:38:47 +0000 (20:38 +0200)]
extend description of strings and partial strings
Also, explain in more detail what this feature means to Prolog
application programmers, and the strategic direction of Scryer.
Mark Thom [Wed, 8 Apr 2020 16:18:42 +0000 (13:18 -0300)]
Merge pull request #316 from triska/master
clpz_monotonic/0 --> monotonic/0
Markus Triska [Wed, 8 Apr 2020 15:49:06 +0000 (17:49 +0200)]
tuples_in/2 now works
Mark Thom [Mon, 6 Apr 2020 22:15:36 +0000 (16:15 -0600)]
fix list index offset bug (#314)
Markus Triska [Mon, 6 Apr 2020 21:05:57 +0000 (23:05 +0200)]
clpz_monotonic/0 --> monotonic/0
Mark Thom [Mon, 6 Apr 2020 00:26:27 +0000 (21:26 -0300)]
mark clp(X) item as completed, restore clp(Z) library description
Mark Thom [Mon, 6 Apr 2020 00:14:11 +0000 (21:14 -0300)]
Merge pull request #312 from triska/master
ADDED: CLP(ℤ), Constraint Logic Programming over Integers
Mark Thom [Mon, 6 Apr 2020 02:34:49 +0000 (20:34 -0600)]
consolidate Cargo.lock
Mark Thom [Mon, 6 Apr 2020 02:33:45 +0000 (20:33 -0600)]
merge with master
Mark Thom [Mon, 6 Apr 2020 02:32:16 +0000 (20:32 -0600)]
use fixnums in place of bignums where possible
Markus Triska [Sat, 4 Apr 2020 21:35:39 +0000 (23:35 +0200)]
ADDED: CLP(ℤ), Constraint Logic Programming over Integers
library(clpz) implements declarative integer arithmetic.
The most important predicates for reasoning about integers are:
(#=)/2 equality
(#\=)/2 disequality
(#<)/2 less than
(#>)/2 greater than
(#=<)/2 less than or equal to
(#>=)/2 greater than or equal to
In addition, the library provides several global constraints, such as
all_distinct/1 and global_cardinality/2, and reification predicates
that reflect the truth values of constraints into integer variables.
Enumeration predicates such label/1 and labeling/2 can be used to
search for solutions over finite domains.
Almost all Prolog programs also reason about integers. Therefore, I
recommend to add this library to your .scryerrc configuration file so
that declarative integer arithmetic is available in all your programs.
More information about CLP(ℤ):
https://www.metalevel.at/prolog/clpz
Enjoy!
Mark Thom [Sun, 5 Apr 2020 08:55:30 +0000 (02:55 -0600)]
allocate empty partial strings
Mark Thom [Sun, 5 Apr 2020 00:44:16 +0000 (18:44 -0600)]
use copy_term/3 to print residual goals (#254)
Mark Thom [Fri, 3 Apr 2020 16:22:46 +0000 (10:22 -0600)]
harmonize partial strings with complete strings (#276), make Addr a copyable type
Mark Thom [Fri, 3 Apr 2020 03:35:51 +0000 (00:35 -0300)]
Merge pull request #306 from srenatus/sr/version-argument
main: add -v/--version flag
Mark Thom [Tue, 31 Mar 2020 02:00:08 +0000 (20:00 -0600)]
add bimetatrans_ruleml.pl to examples
Markus Triska [Mon, 30 Mar 2020 23:28:16 +0000 (01:28 +0200)]
introduce and use nonterminal list//1
Example:
?- phrase(list(Ls), Ls0).
Ls = [], Ls0 = []
; Ls = [_A], Ls0 = [_A]
; Ls = [_A,_B], Ls0 = [_A,_B]
; Ls = [_A,_B,_C], Ls0 = [_A,_B,_C]
; ...
Markus Triska [Mon, 30 Mar 2020 23:24:15 +0000 (01:24 +0200)]
embed literal lists directly in DCGs
Example use of direct embedding:
?- phrase("abc", Ls0, Ls).
Ls0 = [a,b,c|Ls].
Markus Triska [Mon, 30 Mar 2020 23:23:00 +0000 (01:23 +0200)]
naming: partial_list_ws//1 --> list_ws//1
A DCG describes a list, so "list" is an appropriate name.
Stephan Renatus [Sat, 28 Mar 2020 08:07:42 +0000 (09:07 +0100)]
main: skip args[0]
This is a bit pedantic, it's unlikely that the executable would be
called `-v` or `--version`. However, it seems slightly more correct to
disregard argv[0] when checking flags.
Signed-off-by: Stephan Renatus <[email protected] >
Stephan Renatus [Fri, 27 Mar 2020 18:59:48 +0000 (19:59 +0100)]
main: add -v/--version flag
Added a new dependency to take care of pulling in the version from git
at build time.
Args handling is minimalistic, but there wasn't any before, so I figured
this might do for now. (Eventually, some proper `--help` and usage
output might come in handy?)
Signed-off-by: Stephan Renatus <[email protected] >