Markus Triska
44ebd894d5
ADDED: portray_clause/2, writing to a specified stream.
2020-06-13 16:45:47 +02:00
Mark Thom
2f02c428cc
rename bimetatrans example files and directory
2020-06-12 18:32:48 -06:00
Mark Thom
1732413ee1
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-06-12 18:28:07 -06:00
Mark Thom
33325f1574
remove vestigial prolog/ directory ( #444 )
2020-06-12 18:26:38 -06:00
Mark Thom
4f288c6fd9
Merge pull request #587 from triska/lazy_pio
...
ENHANCED: phrase_from_file/[2,3] now read the file lazily.
2020-06-12 11:24:52 -03:00
Mark Thom
5ffb4597b3
add missing ! in int_pow ( #580 )
2020-06-11 22:28:05 -06:00
Mark Thom
d9de38b935
adjust the tail created by CreatePartialString to point to the last cell it pushed to the heap ( #586 )
2020-06-11 21:25:20 -06:00
Markus Triska
40c3e31955
ENHANCED: phrase_from_file/[2,3] now read the file lazily.
...
This allows processing extremely large files. In addition, the
efficient string representation helps to reduce memory usage.
These features unleash the full power of Prolog for text processing,
the exact use case Prolog was designed for.
2020-06-12 00:02:41 +02:00
Mark Thom
f84c831cda
remove most cuts from bimetatrans_ruleml.pl
2020-06-11 12:22:35 -06:00
Mark Thom
904cf97f7d
fix printing of atoms like '.x' ( #585 )
2020-06-11 11:11:04 -06:00
Mark Thom
791e22dc24
eliminate unnecessary find_min_time_ predicate in least_time.pl example
2020-06-10 22:25:23 -06:00
Markus Triska
2fc887724b
ADDED: format_time//2 for describing strings involving dates and times
...
current_time/1 yields the current system time as an opaque time stamp.
2020-06-11 00:55:38 +02:00
Markus Triska
184ef94e7e
ENHANCED: throw Prolog exception on expired certificates
...
Example:
?- socket_client_open('expired.badssl.com':443, S, [tls(true)]).
caught: error(permission_error(open,source_sink,'expired.badssl.com'),socket_client_open/3)
2020-06-09 23:01:28 +02:00
Markus Triska
7b30daf88d
ADDED: Encrypted client connections in library(sockets) via new option tls/1.
...
Use tls(true) to negotiate an encrypted network connection via TLS.
2020-06-09 07:43:29 +02:00
Markus Triska
d5e76da475
ADDED: type checks for type boolean
2020-06-08 00:41:47 +02:00
Mark Thom
5d91c1af81
Merge pull request #578 from triska/format_improvements
...
Various improvements for format_//2
2020-06-07 19:36:16 -03:00
Markus Triska
c22816de08
type check for ~d and ~D specifiers
2020-06-08 00:09:55 +02:00
Markus Triska
9bb851d437
ENHANCED: format_//2 now evaluates arithmetic expressions for ~d, ~D, ~f, ~r and ~R
...
Example:
?- phrase(format_("~d", [1+2]), Cs).
Cs = "3"
; false.
2020-06-08 00:09:55 +02:00
Markus Triska
c8a9f8dcf5
better domain error in format_//2
...
Example:
?- format("", [hello]).
caught: error(domain_error(empty_list,[hello]),format_//2)
2020-06-07 23:59:37 +02:00
Markus Triska
e8653ffe32
add type check for scalar argument in crypto_curve_scalar_mult/4
...
Suggested by @notoria in #576 . Many thanks!
2020-06-07 18:51:13 +02:00
Markus Triska
5499df418a
use secp256k1 in the example
2020-06-07 11:04:24 +02:00
Markus Triska
b586618411
ENHANCED: Faster Rust-based crypto_curve_scalar_mult/4 using OpenSSL.
2020-06-07 11:04:24 +02:00
Mark Thom
72c5908f09
update prolog_parser version, correct atom_chars/2 ( #379 )
2020-06-04 23:23:49 -06:00
Mark Thom
2a588ff943
remove double_quotes checks from unnecessary places in system_calls.rs and elsewhere ( #513 , #542 )
2020-06-04 21:03:41 -06:00
Mark Thom
24f11b5ae9
remove unreachable branch in increment_s_ptr ( #575 )
2020-06-03 22:05:46 -06:00
Mark Thom
1d44d99875
correct unexpected bad variables while ensuring better names are generated in order ( #571 )
2020-05-30 00:17:34 -06:00
Mark Thom
526b56a650
order generation of variable names in attributed goals after toplevel variables ( #465 )
2020-05-27 11:11:26 -06:00
Mark Thom
20675f56e6
plug missing variables in equations ( #488 ), exclude/3 regression ( #452 ), incorrect answer substitution ( #326 )
2020-05-26 23:46:09 -06:00
Mark Thom
fe0bf6f2ef
Merge pull request #524 from matt2xu/decode_utf8
...
Add decoding of UTF-8 sequences
2020-05-26 13:42:42 -03:00
Markus Triska
b0df981b01
ADDED: halt/1, halting with specified exit code
2020-05-23 19:28:17 +02:00
Mark Thom
15db77558c
throw evaluable type error for unrecognized atoms in arith_eval_by_metacall
2020-05-23 13:33:05 -06:00
Mark Thom
18cf4a3bd3
Add type errors where appropriate in arith_eval_by_metacall ( #392 )
2020-05-23 13:07:40 -06:00
Mark Thom
e0378acfc2
throw type_error(number, E) in arith_eval_by_metacall ( #392 )
2020-05-23 12:39:29 -06:00
Mark Thom
53cb2af202
(**)/2 should always evaluate to floating point ( #558 )
2020-05-23 12:24:00 -06:00
Mark Thom
f74005a166
update (^)/2 in light of Draft Technical Corrigendum 3 ( #559 )
2020-05-23 12:13:48 -06:00
Mark Thom
888d844ec5
address arity discrepancies in builtins.n and call/N ( #525 )
2020-05-22 23:57:32 -06:00
Mark Thom
0060c8988a
use -1 as eof_code for binary streams ( #555 )
2020-05-22 15:58:07 -06:00
Matthieu Wipliez
cc9d6587a3
Implementation of UTF-8 bytes to chars
2020-05-22 23:33:12 +02:00
Mark Thom
f9aad34d28
Merge branch 'master' of https://github.com/mthom/rusty-wam
2020-05-22 14:50:51 -06:00
Mark Thom
b2d720b853
correct get_byte/1 not emitted -1 upon discovery of end_of_stream position ( #555 )
2020-05-22 14:50:40 -06:00
Markus Triska
48c0b0ab3c
ENHANCED: Faster format/3 for binary streams.
...
This speeds up web servers considerably when sending binary files.
2020-05-22 17:30:29 +02:00
Markus Triska
cbbed310c5
ADDED: format/3, writing formatted output to a stream
...
Both binary and text streams are supported.
2020-05-22 17:23:51 +02:00
Mark Thom
9e9c3b6342
modify int_pow so that a power of -1 is valid ( #548 )
2020-05-21 22:33:22 -06:00
Markus Triska
1108c99688
document that lists of integers can be specified if encoding(octet) is used
...
This seems to be a good compromise: The API now strongly encourages
lists of characters, which are ideally suited to represent text, and
also allows lists of bytes if the encoding(octet) option is used.
2020-05-21 13:41:57 +02:00
Markus Triska
93da831ef0
correct mode indication for ed25519_verify/4
...
Noted by @notoria in #545 . Many thanks!
2020-05-21 01:27:06 +02:00
Markus Triska
72bf45912e
"PrivateKey" --> "KeyPair"
2020-05-21 00:14:15 +02:00
Markus Triska
5d94276c4f
remove several mentions of list of bytes in predicate descriptions
...
This is to focus more on the intended core representation of text: In
Prolog, text is ideally represented as a list of characters, and this
is what we want to encourage, especially given Scryer's compact
representation for strings.
For the time being, library(crypto) still also supports lists of bytes in
several predicates. This will likely be removed at some point in the
future. Please use lists of characters to make your code future-proof.
2020-05-21 00:07:42 +02:00
Markus Triska
b43f27030e
require PKCS#8 v2 format for better security
...
Notably, this format requires that the public key also be present.
This format is what ed25519_new_keypair/1 generates, and it is
strongly encouraged for higher security.
2020-05-20 23:55:21 +02:00
Markus Triska
2845f55157
ADDED: ed25519_keypair_public_key/2, relating a key pair to its public key
2020-05-20 23:43:28 +02:00
Markus Triska
e254d84710
clarify format of public key
2020-05-20 23:17:42 +02:00