Markus Triska
4693c23a49
ADDED: library(time), providing time/1 for benchmarking
...
sleep/1 and predicates for reasoning about time stamps should also
be added to this library.
2020-04-19 19:18:47 +02:00
Mark Thom
cae0733149
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-04-19 12:58:54 -06:00
Mark Thom
5d6ca7a88e
throw '' whenever an interrupt is made ( #365 , #366 )
2020-04-19 12:58:44 -06:00
Markus Triska
60f1f1cb3d
Restore the type_error, which was implemented correctly by @notoria.
...
This corrects f28e87b240 :
in_character is a valid type by 7.12.2 Error classification!
2020-04-19 02:15:59 +02:00
Markus Triska
ab3c520006
document ~| format modifier to place a tab stop at this position
...
This works best when used in tandem with ~N+, since it is currently
equivalent to ~0| and does not take the actual text position into account.
However, when using relative positions, this works as intended.
2020-04-19 01:59:16 +02:00
Markus Triska
45ed9405b0
use the most recent improvements
2020-04-19 01:34:13 +02:00
Markus Triska
075ca78dd2
ENHANCED: Delay toplevel output until after the goal succeeds.
...
This is to accommodate goals that are used for their side-effects,
when we are interested in their output.
Examples:
?- portray_clause((a :- a)).
a :-
a.
true
; false.
?- format("hello~w~n", [!]).
hello!
true
; false.
2020-04-19 01:34:03 +02:00
Mark Thom
9daf290432
remove SCCCutPolicy panic, revise (;)/2 so that comma'ed cuts are handled properly ( #361 )
2020-04-18 20:10:53 -06:00
Mark Thom
3438f88c1e
drop $ naming convention inside '' when unnecessary
2020-04-18 20:06:52 -06:00
Mark Thom
2c8858ff2d
use correct signs in fixnum remainders
2020-04-18 17:37:54 -06:00
Mark Thom
1d964ef921
add domain and type errors for compare/3 ( #296 )
2020-04-18 14:37:14 -06:00
Markus Triska
1713f1222b
reintroduce "n" as a synonym for ";" and " "
2020-04-18 14:16:46 -06:00
Markus Triska
450591d5a9
ENHANCED: the toplevel interaction now supports RETURN as a synonym for "."
...
This is made possible due to the recent improvements by @notoria.
2020-04-18 14:16:46 -06:00
Markus Triska
5c4863dfb1
small simplifications
2020-04-18 14:16:46 -06:00
notoria
c6a82cbc07
Removed a check in get_single_char
2020-04-18 14:16:46 -06:00
notoria
cc8f074d33
Added Space for continuation
2020-04-18 14:16:46 -06:00
notoria
196d74c3a0
Fixed the predicate name when error is thrown
2020-04-18 14:16:46 -06:00
Markus Triska
f28e87b240
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.
2020-04-18 14:16:46 -06:00
Markus Triska
2d77ef4245
use get_single_char/1
2020-04-18 14:16:46 -06:00
notoria
3f578e24b5
Removed $raw_input_read_char
2020-04-18 14:16:46 -06:00
notoria
fb5ee5e190
get_single_char reads Tab as \t
2020-04-18 14:16:46 -06:00
notoria
63e8378310
get_single_char reads Enter as \n
2020-04-18 14:16:46 -06:00
notoria
c24ebaf506
Moved get_single_char from builtins.pl to charsio.pl
2020-04-18 14:16:46 -06:00
notoria
d3a1f11dfe
Added predicate for reading a single character
2020-04-18 14:16:46 -06:00
Mark Thom
f96e694ff8
bracket graphic token chars in toplevel.pl ( #357 )
2020-04-18 14:16:40 -06:00
Mark Thom
d5d635e50f
slight tweaks to bimetatrans
2020-04-18 14:16:40 -06:00
Mark Thom
1ad4ce9822
index Constant::Usize ( #355 )
2020-04-18 14:16:40 -06:00
Mark Thom
3f971174e4
quote single dots only
2020-04-18 14:16:40 -06:00
Markus Triska
16e257ea32
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.
2020-04-18 14:16:40 -06:00
Mark Thom
37f1f8ac14
allow characters as atoms in Machine::use_module and Machine::use_qualified_module
2020-04-18 14:16:40 -06:00
Mark Thom
474fa9b3ec
remove underscores in printed variables produced by write_term_to_chars ( #340 )
2020-04-18 14:16:40 -06:00
Mark Thom
6d7b14ceb5
don't count the terminator in PStrIter len
2020-04-18 14:16:40 -06:00
Mark Thom
af14832b6c
quote dot when quoted(true) ( #349 )
2020-04-18 14:16:40 -06:00
Mark Thom
38bb44664c
interrupt running queries and return to toplevel ( #323 )
2020-04-18 14:16:40 -06:00
Mark Thom
124d924ff5
write [a,b,c] correctly with write_canonical ( #349 )
2020-04-18 14:16:40 -06:00
Mark Thom
c9074d8d96
properly iterate through UTF-8 strings ( #350 )
2020-04-14 23:14:47 -06:00
Mark Thom
f6c995157e
clean up print_list_like
2020-04-14 14:26:30 -06:00
Mark Thom
a059a9fbdc
print lists as strings when possible ( #295 )
2020-04-14 13:28:51 -06:00
Mark Thom
7799ed36f0
provide better variable names in write_term_to_chars/3 ( #340 )
2020-04-14 10:39:10 -06:00
Mark Thom
db5ed345bc
improve writeX performance ( #290 )
2020-04-14 10:25:05 -06:00
Mark Thom
082c6a9e64
copy operator exports to impromptu modules ( #307 )
2020-04-14 01:03:49 -06:00
Mark Thom
b74a4d5225
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-04-14 00:40:57 -06:00
Mark Thom
16a572c250
change from xsi to iso in bimetatrans, correct atomic/1 failure ( #343 )
2020-04-14 00:40:51 -06:00
Markus Triska
237c855f10
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]].
2020-04-14 00:10:33 +02:00
Mark Thom
378e9b5539
Merge pull request #327 from srenatus/sr/pass-argv-as-partial-strings
...
use partial strings for passing argv to toplevel.pl
2020-04-13 11:17:08 -03:00
Markus Triska
ab9b604d02
the workaround is no longer necessary, since #336 is now corrected
2020-04-13 11:32:06 +02:00
Stephan Renatus
155645307a
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 <srenatus@chef.io >
2020-04-13 10:10:10 +02:00
Mark Thom
02eb24cd57
correct partial string copying by resetting threshold to redirected partial string stubs to 0
2020-04-12 23:33:07 -06:00
Mark Thom
787fbe1bb6
use partial_string/1 in place of the removed string/1 in bimetatrans_ruleml.pl
2020-04-12 22:27:53 -06:00
Markus Triska
f52c9772a7
also include a newline in portray_clause/1
2020-04-13 01:24:15 +02:00