]>
Repositorios git - scryer-prolog.git/log
Markus Triska [Fri, 8 Sep 2023 21:22:36 +0000 (23:22 +0200)]
this holds for all architectures (also 32-bit systems)
Mark Thom [Fri, 8 Sep 2023 17:15:51 +0000 (11:15 -0600)]
Merge pull request #1986 from rujialiu/wasm32-support
Basic WebAssembly support with minimal Javascript API #615
Rujia Liu [Fri, 8 Sep 2023 09:27:22 +0000 (17:27 +0800)]
Basic WebAssembly support with minimal Javascript API #615. Currently 6/12 crypto functions supported. Tested in browser with all default features disabled.
Mark [Tue, 5 Sep 2023 20:56:26 +0000 (14:56 -0600)]
check atom == ',' in ambiguity_check mirroring logic in print_op_addendum (#2000)
Mark [Tue, 5 Sep 2023 19:52:18 +0000 (13:52 -0600)]
remove error printing redundancy and inconsistent state resulting from file_load_cleanup (#1995)
Mark Thom [Tue, 5 Sep 2023 18:32:20 +0000 (12:32 -0600)]
Merge pull request #1980 from Skgland/atomtable
make AtomTable consurrency safe
Mark Thom [Tue, 5 Sep 2023 18:04:52 +0000 (12:04 -0600)]
Merge pull request #1997 from triska/countall
Corrections to countall/2
Mark [Tue, 5 Sep 2023 17:51:06 +0000 (11:51 -0600)]
call_with_inference_limit/3 should fail if inference limit is exceeded and R term is not inference_limit_exceeded (#1977)
Markus Triska [Tue, 5 Sep 2023 17:42:55 +0000 (19:42 +0200)]
FIXED: documentation of countall/2 (#1976)
Bennet Bleßmann [Sat, 2 Sep 2023 20:27:43 +0000 (22:27 +0200)]
make F64Table concurency safe
Bennet Bleßmann [Sat, 2 Sep 2023 19:31:01 +0000 (21:31 +0200)]
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
Bennet Bleßmann [Mon, 28 Aug 2023 21:24:27 +0000 (23:24 +0200)]
[WIP] move towards lockless AtomTable
Markus Triska [Tue, 5 Sep 2023 17:39:05 +0000 (19:39 +0200)]
FIXED: countall/2 for zero solutions (#1996)
Example:
?- countall(false, 0).
true.
Skgland [Sun, 27 Aug 2023 20:23:22 +0000 (22:23 +0200)]
fix `rust_beta_channel` feature
Skgland [Sun, 27 Aug 2023 20:22:59 +0000 (22:22 +0200)]
fix accidentally left in println!()
Skgland [Sun, 27 Aug 2023 18:05:12 +0000 (20:05 +0200)]
raise msrv for OnceLock support
Skgland [Sun, 27 Aug 2023 17:58:08 +0000 (19:58 +0200)]
add comment why blocking_write is not used
Skgland [Sun, 27 Aug 2023 17:56:55 +0000 (19:56 +0200)]
fix deadlock in `load_library_as_stream`
Bennet Bleßmann [Mon, 28 Aug 2023 21:04:30 +0000 (23:04 +0200)]
[WIP] fix deadlock in AtomTable::build_with
Skgland [Fri, 25 Aug 2023 23:10:49 +0000 (01:10 +0200)]
[WIP] make AtomTable concurrentcy ready
Skgland [Fri, 25 Aug 2023 23:29:53 +0000 (01:29 +0200)]
run cargo fmt
Mark [Mon, 4 Sep 2023 23:15:05 +0000 (17:15 -0600)]
correct inference counting over index backtracking, built-ins (#1977, #1987)
Mark Thom [Mon, 4 Sep 2023 00:39:24 +0000 (18:39 -0600)]
Merge pull request #1991 from triska/discoverable_flags
FIXED: make occurs_check and answer_write_options flags discoverable
Mark Thom [Mon, 4 Sep 2023 00:39:12 +0000 (18:39 -0600)]
Merge pull request #1990 from triska/clpb_max
remove clpb_max/1 attribute for residual goal projection
Markus Triska [Sun, 3 Sep 2023 22:49:40 +0000 (00:49 +0200)]
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.
Markus Triska [Sun, 3 Sep 2023 20:01:38 +0000 (22:01 +0200)]
update answer
Markus Triska [Sun, 3 Sep 2023 19:57:51 +0000 (21:57 +0200)]
untabify
Markus Triska [Sun, 3 Sep 2023 19:47:58 +0000 (21:47 +0200)]
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.
Mark Thom [Sun, 3 Sep 2023 17:36:40 +0000 (11:36 -0600)]
Merge pull request #1988 from triska/answer_write_options
ADDED: New Prolog flag, answer_write_options.
Mark Thom [Sun, 3 Sep 2023 17:36:07 +0000 (11:36 -0600)]
Merge pull request #1989 from triska/mention_binaries
mention precompiled binaries
Markus Triska [Sun, 3 Sep 2023 12:12:46 +0000 (14:12 +0200)]
mention precompiled binaries
Markus Triska [Sun, 3 Sep 2023 07:33:16 +0000 (09:33 +0200)]
ADDED: New Prolog flag, answer_write_options.
This lets us specify additional write options used by the top level
for writing answers.
Mark [Tue, 29 Aug 2023 22:42:23 +0000 (16:42 -0600)]
refine is/2 compilation so errors are thrown when expected without needlessly allocating (#1974, #1984)
Mark [Tue, 29 Aug 2023 21:26:08 +0000 (15:26 -0600)]
don't compile is instruction if bound to anonymous variable (#1974)
Mark [Mon, 28 Aug 2023 19:23:56 +0000 (13:23 -0600)]
update Cargo.toml version numbers and bump version number
Mark Thom [Sun, 27 Aug 2023 18:49:20 +0000 (12:49 -0600)]
Merge pull request #1978 from aarroyoc/ci-32-bits
32 bit CI for Linux
Mark Thom [Sun, 27 Aug 2023 18:48:48 +0000 (12:48 -0600)]
Merge pull request #1979 from triska/normalize_space
ENHANCED: rudimentary implementation of normalize_space
Adrián Arroyo Calle [Sat, 26 Aug 2023 07:28:46 +0000 (09:28 +0200)]
32 bit CI for Linux
Markus Triska [Sun, 27 Aug 2023 10:55:29 +0000 (12:55 +0200)]
replace adjacent whitespace characters with a single SPACE character
Markus Triska [Sun, 27 Aug 2023 07:56:30 +0000 (09:56 +0200)]
ENHANCED: rudimentary implementation of normalize_space
This removes leading and trailing whitespace from the text. Whitespace
within the string is not yet considered.
Mark Thom [Fri, 25 Aug 2023 16:51:15 +0000 (10:51 -0600)]
Merge pull request #1972 from rujialiu/32-bit-support
32-bit system support #615 #1509 (WIP)
Rujia Liu [Thu, 24 Aug 2023 12:05:40 +0000 (20:05 +0800)]
32-bit system support, addressing all (at most) 4GB addresses of RAM.
Mark Thom [Tue, 22 Aug 2023 21:04:33 +0000 (15:04 -0600)]
Merge pull request #1973 from triska/clpz
CLP(ℤ) improvements, notably related to queue handling
Markus Triska [Mon, 21 Aug 2023 19:52:28 +0000 (21:52 +0200)]
attach more propagators before starting propagation
This prevents repeated triggering of already attached propagators
while new propagators are being attached to involved variables.
Markus Triska [Sun, 20 Aug 2023 19:38:33 +0000 (21:38 +0200)]
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.
Markus Triska [Tue, 15 Aug 2023 19:50:15 +0000 (21:50 +0200)]
use pneq/2
Markus Triska [Tue, 15 Aug 2023 19:44:39 +0000 (21:44 +0200)]
enforce same queue in more constraints
Markus Triska [Tue, 15 Aug 2023 19:43:19 +0000 (21:43 +0200)]
append the entire queues instead of inserting each element individually
Markus Triska [Tue, 15 Aug 2023 19:39:32 +0000 (21:39 +0200)]
adapt query to Scryer Prolog
Markus Triska [Tue, 15 Aug 2023 19:38:56 +0000 (21:38 +0200)]
update answers
Markus Triska [Tue, 15 Aug 2023 19:36:59 +0000 (21:36 +0200)]
use can_be/2
Mark Thom [Mon, 21 Aug 2023 17:42:03 +0000 (11:42 -0600)]
Merge pull request #1967 from rujialiu/optional-features
Allow users to disable optional features
Rujia Liu [Mon, 21 Aug 2023 02:01:24 +0000 (10:01 +0800)]
Allow users to disable optional features. Needed for wasm32 support (see #615).
Mark Thom [Sun, 20 Aug 2023 17:50:58 +0000 (11:50 -0600)]
Merge pull request #1968 from rujialiu/atom-64bit
Make Atom 64-bit regardless of architecture
Mark Thom [Sun, 20 Aug 2023 17:24:37 +0000 (11:24 -0600)]
Merge pull request #1970 from triska/crrl
switch to using crrl for scalar multiplication on Curve25519
Markus Triska [Sun, 20 Aug 2023 12:42:34 +0000 (14:42 +0200)]
ENHANCED: more extensive type checking in curve25519_scalar_mult/3
Markus Triska [Sun, 20 Aug 2023 11:40:30 +0000 (13:40 +0200)]
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!
Rujia Liu [Sun, 20 Aug 2023 11:43:13 +0000 (19:43 +0800)]
Make Atom 64-bit regardless of architecture
Mark Thom [Thu, 17 Aug 2023 21:18:25 +0000 (15:18 -0600)]
Merge pull request #1964 from triska/master
use newly available double_quotes/1 write option in portray_clause_//1
Markus Triska [Thu, 17 Aug 2023 21:05:21 +0000 (23:05 +0200)]
use newly available double_quotes/1 write option in portray_clause_//1
Mark Thom [Mon, 14 Aug 2023 18:18:45 +0000 (12:18 -0600)]
Merge pull request #1963 from triska/master
ENHANCED: domain error in zcompare/3 (#1723)
Markus Triska [Mon, 14 Aug 2023 15:54:18 +0000 (17:54 +0200)]
ENHANCED: domain error in zcompare/3 (#1723)
Mark Thom [Sat, 12 Aug 2023 20:35:21 +0000 (14:35 -0600)]
Merge pull request #1961 from triska/succ
ADDED: succ/2, part of the Prologue for Prolog
Markus Triska [Fri, 11 Aug 2023 21:41:54 +0000 (23:41 +0200)]
reorder tests, per https://github.com/mthom/scryer-prolog/pull/1961#pullrequestreview-
1574380588
Markus Triska [Fri, 11 Aug 2023 20:46:46 +0000 (22:46 +0200)]
ADDED: succ/2, part of the Prologue for Prolog
Specification:
https://www.complang.tuwien.ac.at/ulrich/iso-prolog/prologue#succ
Mark [Sun, 6 Aug 2023 07:26:01 +0000 (01:26 -0600)]
shed CodeIndex for control predicates in disjuncts.rs (#1791)
Mark [Sat, 5 Aug 2023 18:15:28 +0000 (12:15 -0600)]
retract discontiguous non-multifile predicates between consultations (#1202, #1058, #1585)
Mark Thom [Fri, 4 Aug 2023 21:25:42 +0000 (15:25 -0600)]
Merge pull request #1950 from triska/chars_si
ENHANCED: more efficient chars_si/1, using specialized predicates of Scryer
Markus Triska [Fri, 4 Aug 2023 19:18:00 +0000 (21:18 +0200)]
ENHANCED: more efficient chars_si/1, using specialized predicates of Scryer
Source:
https://github.com/mthom/scryer-prolog/issues/1947#issuecomment-
1665113488
Mark Thom [Fri, 4 Aug 2023 00:34:19 +0000 (18:34 -0600)]
Merge pull request #1948 from triska/chars_si
add character_si/1 and use it to correct chars_si/1
Markus Triska [Thu, 3 Aug 2023 20:27:13 +0000 (22:27 +0200)]
add character_si/1 and use it to correct chars_si/1
This addresses #1947.
Mark [Thu, 3 Aug 2023 01:50:27 +0000 (19:50 -0600)]
allocate negator results in arena (#1898)
Mark Thom [Wed, 2 Aug 2023 22:32:27 +0000 (16:32 -0600)]
Merge pull request #1943 from triska/dead_skeleton
FIXED: do not attach constraint if the propagator is already entailed and killed
Markus Triska [Wed, 2 Aug 2023 22:26:40 +0000 (00:26 +0200)]
FIXED: do not attach constraint if the propagator is already entailed and killed
Example:
?- A#=A//A#==>B,A-B=1-1.
A = 1, B = 1.
This addresses #1941.
Mark Thom [Mon, 31 Jul 2023 20:52:34 +0000 (14:52 -0600)]
Merge pull request #1938 from triska/remove_auxiliary_constraints
ENHANCED: forget auxiliary constraints set up by the propagator for multiplication
Mark Thom [Mon, 31 Jul 2023 20:52:21 +0000 (14:52 -0600)]
Merge pull request #1939 from triska/oncology_trial_design
better wording, applying the feedback of @dcnorris. Thank you a lot!
Markus Triska [Mon, 31 Jul 2023 20:03:43 +0000 (22:03 +0200)]
better wording, applying the feedback from @dcnorris. Thank you a lot!
Markus Triska [Mon, 31 Jul 2023 19:57:25 +0000 (21:57 +0200)]
ENHANCED: forget auxiliary constraints set up by the propagator for multiplication
This addresses the issue raised in https://github.com/mthom/scryer-prolog/discussions/1937.
Mark Thom [Sat, 29 Jul 2023 16:52:36 +0000 (10:52 -0600)]
Merge pull request #1929 from Skgland/master
detect and prevent concurrent AtomTable use
Bennet Bleßmann [Sat, 29 Jul 2023 11:11:00 +0000 (13:11 +0200)]
fix spelling
Bennet Bleßmann [Sat, 29 Jul 2023 09:08:32 +0000 (11:08 +0200)]
handle atom table resize
* bumping serial_test dev-dependency due to broken should_panic handling in old version
Bennet Bleßmann [Thu, 27 Jul 2023 21:35:57 +0000 (23:35 +0200)]
detect and prevent² concurrent AtomTable use
²in the case of `#[cfg(not(test))]` there is still a toctou race as I am not sufficently familiar with Atomics
Mark Thom [Thu, 27 Jul 2023 20:51:01 +0000 (14:51 -0600)]
Merge pull request #1927 from triska/ascii_punctuation
FIXED: correct handling of ascii_punctuation in char_type/2 (#1926)
Markus Triska [Thu, 27 Jul 2023 18:22:05 +0000 (20:22 +0200)]
FIXED: correct handling of ascii_punctuation in char_type/2 (#1926)
Mark [Tue, 25 Jul 2023 21:03:35 +0000 (15:03 -0600)]
simplify and correct prefix-bracket spacing in heap_print.rs (#1914, #1918)
Mark [Tue, 25 Jul 2023 19:48:34 +0000 (13:48 -0600)]
overwrite code indices of dynamic_undefined predicates (dynamic, multifile, discontiguous) on export
Mark Thom [Tue, 25 Jul 2023 17:35:10 +0000 (11:35 -0600)]
Merge pull request #1907 from coasys/dashu
Replace rug with dashu
Mark [Tue, 25 Jul 2023 02:05:28 +0000 (20:05 -0600)]
track the parent operator of the current operator in heap_print to emit space if necessary (#1906)
Mark [Mon, 24 Jul 2023 17:47:57 +0000 (11:47 -0600)]
Merge branch 'dashu' of https://github.com/coasys/scryer-prolog into coasys-dashu
Fayeed Pawaskar [Mon, 24 Jul 2023 13:41:41 +0000 (19:11 +0530)]
updated cargo to use git
Fayeed Pawaskar [Mon, 24 Jul 2023 07:11:56 +0000 (12:41 +0530)]
Fixed warnings
Fayeed Pawaskar [Mon, 24 Jul 2023 06:49:41 +0000 (12:19 +0530)]
Fixed stackoverflow error
Fayeed Pawaskar [Mon, 24 Jul 2023 04:42:22 +0000 (10:12 +0530)]
remove rug completely
Fayeed Pawaskar [Mon, 24 Jul 2023 04:42:14 +0000 (10:12 +0530)]
fix all the move errors
Mark [Sun, 23 Jul 2023 21:02:27 +0000 (15:02 -0600)]
pop both pending redirections in format_bar_separator_op when max depth exceeded (#1903)
Mark [Sun, 23 Jul 2023 20:43:13 +0000 (14:43 -0600)]
fix list abbreviation (#1901)
Mark [Sun, 23 Jul 2023 03:42:40 +0000 (21:42 -0600)]
remove EMIT_NEWLINE (#1900)
Mark [Sat, 22 Jul 2023 20:12:38 +0000 (14:12 -0600)]
use ExitCode when halting so Drop is called, close terminal stream in rustyline Drop
Mark Thom [Sat, 22 Jul 2023 19:48:16 +0000 (13:48 -0600)]
Merge pull request #1050 from pmoura/add_float_integer_part_and_float_fractional_part_standard_functions
WIP: Add float_integer_part/1 and float_fractional_part/1 standard arithmetic functions
Mark [Sat, 22 Jul 2023 17:53:09 +0000 (11:53 -0600)]
additional write fixes, use rustyline 12.0.0 (#1876, #1901)