Markus Triska
182afe3b7d
update comment
2023-09-08 22:34:24 +02:00
Rujia Liu
b6ce6b7cdb
Basic WebAssembly support with minimal Javascript API #615 . Currently 6/12 crypto functions supported. Tested in browser with all default features disabled.
2023-09-08 17:27:22 +08:00
Mark
a0b5a24853
check atom == ',' in ambiguity_check mirroring logic in print_op_addendum ( #2000 )
2023-09-05 14:56:26 -06:00
Mark
fa11d6bdd4
remove error printing redundancy and inconsistent state resulting from file_load_cleanup ( #1995 )
2023-09-05 13:53:57 -06:00
Mark Thom
a9aef2bc84
Merge pull request #1980 from Skgland/atomtable
...
make AtomTable consurrency safe
2023-09-05 12:32:20 -06:00
Mark Thom
bf2b73706a
Merge pull request #1997 from triska/countall
...
Corrections to countall/2
2023-09-05 12:04:52 -06:00
Mark
83ebce86b6
call_with_inference_limit/3 should fail if inference limit is exceeded and R term is not inference_limit_exceeded ( #1977 )
2023-09-05 11:51:06 -06:00
Markus Triska
1967518fa2
FIXED: documentation of countall/2 ( #1976 )
2023-09-05 19:42:55 +02:00
Bennet Bleßmann
5928d64d7a
make F64Table concurency safe
2023-09-05 19:39:59 +02:00
Bennet Bleßmann
c7ec5a13a5
remove locks from AtomTable
...
there are technically still two locks
- the Mutex to serialize consurrent updates to the AtomTable
- the RwLock as part of GLOBAL_ATOM_TABLE
the former is the age lock of RESIZE ATOM TABLE in <https://arxiv.org/pdf/1608.00989.pdf >, though we use it for the whole update as we don't match the whole structure and can't reserve an atom slot as is, so we need to also lock concurrent updates without resizing
the later should be uncontendet as we only write AtomTable::new iff the current value is a dangling Weak
2023-09-05 19:39:59 +02:00
Bennet Bleßmann
01aeb7515d
[WIP] move towards lockless AtomTable
2023-09-05 19:39:46 +02:00
Markus Triska
d54c3369b3
FIXED: countall/2 for zero solutions ( #1996 )
...
Example:
?- countall(false, 0).
true.
2023-09-05 19:39:05 +02:00
Skgland
d24e6100a7
fix rust_beta_channel feature
2023-09-05 19:12:23 +02:00
Skgland
cd0e45b70e
fix accidentally left in println!()
2023-09-05 19:12:23 +02:00
Skgland
a95c5e26e6
add comment why blocking_write is not used
2023-09-05 19:12:23 +02:00
Skgland
70b6cc8e55
fix deadlock in load_library_as_stream
2023-09-05 19:12:22 +02:00
Bennet Bleßmann
13cbff7eab
[WIP] fix deadlock in AtomTable::build_with
2023-09-05 19:12:22 +02:00
Skgland
86166dbf25
[WIP] make AtomTable concurrentcy ready
2023-09-05 19:12:22 +02:00
Skgland
b2130c2a48
run cargo fmt
2023-09-05 19:12:17 +02:00
Mark
5585e83fd6
correct inference counting over index backtracking, built-ins ( #1977 , #1987 )
2023-09-04 17:15:16 -06:00
Mark Thom
2ccc238119
Merge pull request #1991 from triska/discoverable_flags
...
FIXED: make occurs_check and answer_write_options flags discoverable
2023-09-03 18:39:24 -06:00
Markus Triska
aca0de06cd
FIXED: make occurs_check and answer_write_options flags discoverable
...
Quoting from 7.11 Flags:
NOTE - A built-in predicate current_prolog_flag(Flag, Value)
(8.17.2) enables a program to discover all the flags supported
by a processor and their current values.
2023-09-04 00:56:09 +02:00
Markus Triska
85f4bdbe0b
update answer
2023-09-03 22:01:38 +02:00
Markus Triska
1257ba165f
untabify
2023-09-03 21:57:51 +02:00
Markus Triska
1c33d2a2ed
remove clpb_max/1 attribute for residual goal projection
...
Example:
?- sat(A+B), weighted_maximum([1,1], [A,B], Max).
A = 1, B = 1, Max = 2.
2023-09-03 21:56:15 +02:00
Markus Triska
c934e06171
ADDED: New Prolog flag, answer_write_options.
...
This lets us specify additional write options used by the top level
for writing answers.
2023-09-03 10:49:07 +02:00
Mark
66f6399b8a
refine is/2 compilation so errors are thrown when expected without needlessly allocating ( #1974 , #1984 )
2023-08-29 16:42:23 -06:00
Mark
53a1be78cc
don't compile is instruction if bound to anonymous variable ( #1974 )
2023-08-29 15:50:04 -06:00
Mark Thom
c65d1204af
Merge pull request #1978 from aarroyoc/ci-32-bits
...
32 bit CI for Linux
2023-08-27 12:49:20 -06:00
Adrián Arroyo Calle
4523bb5b81
32 bit CI for Linux
2023-08-27 19:25:54 +02:00
Markus Triska
75aec69de1
replace adjacent whitespace characters with a single SPACE character
2023-08-27 13:01:13 +02:00
Markus Triska
9b96735615
ENHANCED: rudimentary implementation of normalize_space
...
This removes leading and trailing whitespace from the text. Whitespace
within the string is not yet considered.
2023-08-27 09:56:30 +02:00
Mark Thom
f74d74fe6e
Merge pull request #1972 from rujialiu/32-bit-support
...
32-bit system support #615 #1509 (WIP)
2023-08-25 10:51:15 -06:00
Rujia Liu
4fd059be5f
32-bit system support, addressing all (at most) 4GB addresses of RAM.
2023-08-24 20:05:40 +08:00
Markus Triska
98086de77e
attach more propagators before starting propagation
...
This prevents repeated triggering of already attached propagators
while new propagators are being attached to involved variables.
2023-08-22 21:52:55 +02:00
Markus Triska
24456e9703
remove optional (+)/1 prefix in get_atts/2 and put_atts/2 calls
...
The (+)/1 prefix in get_atts/2 at line 4219 by itself already causes a
greater than 15% slowdown for the benchmark shown in #1730 :
?- N #= 2^14,
time(((between(1, N, _),
X #\= Y,
false)
; true)).
The performance impact is not a good reason to remove the optional
(+)/1 prefix! Performance issues should be addressed at the root, in
this case get_atts/2 (#1962 ). We should never manually work around
performance issues in built-in predicates.
In contrast, readability is a good argument, and I find the calls
slightly easier to read without the optional (+)/1 prefix.
The prefix is now consistently omitted when possible.
2023-08-22 21:52:55 +02:00
Markus Triska
7f024f3b8d
use pneq/2
2023-08-22 21:52:55 +02:00
Markus Triska
67c1b171c7
enforce same queue in more constraints
2023-08-22 21:52:55 +02:00
Markus Triska
04fbb0c1ce
append the entire queues instead of inserting each element individually
2023-08-22 21:52:55 +02:00
Markus Triska
327423ab84
adapt query to Scryer Prolog
2023-08-21 21:19:29 +02:00
Markus Triska
20cfffdff5
update answers
2023-08-21 21:19:29 +02:00
Markus Triska
d8e126044f
use can_be/2
2023-08-21 21:19:29 +02:00
Rujia Liu
25d4950216
Allow users to disable optional features. Needed for wasm32 support (see #615 ).
2023-08-21 10:01:24 +08:00
Mark Thom
5aa1521819
Merge pull request #1968 from rujialiu/atom-64bit
...
Make Atom 64-bit regardless of architecture
2023-08-20 11:50:58 -06:00
Markus Triska
013df58fea
ENHANCED: more extensive type checking in curve25519_scalar_mult/3
2023-08-20 14:43:14 +02:00
Markus Triska
745ddc2c87
switch to using crrl for scalar multiplication on Curve25519
...
This is to facilitate WASM compilation as currently worked on
by @rujialiu in #615 . Many thanks, and many thanks to @pornin
for crrl which makes this possible!
2023-08-20 14:43:14 +02:00
Rujia Liu
f6d3b2f896
Make Atom 64-bit regardless of architecture
2023-08-20 19:43:13 +08:00
Markus Triska
92fdc7e380
use newly available double_quotes/1 write option in portray_clause_//1
2023-08-17 23:05:21 +02:00
Markus Triska
f02cd0ad3c
ENHANCED: domain error in zcompare/3 ( #1723 )
2023-08-14 17:54:18 +02:00
Markus Triska
4a6bf5fd5f
reorder tests, per https://github.com/mthom/scryer-prolog/pull/1961#pullrequestreview-1574380588
2023-08-11 23:41:54 +02:00