]> Repositorios git - scryer-prolog.git/log
scryer-prolog.git
2 years agogeneralize multifile/dynamic/discontiguous declarations over lists of predicate indic...
Mark [Thu, 21 Sep 2023 22:22:41 +0000 (16:22 -0600)]
generalize multifile/dynamic/discontiguous declarations over lists of predicate indicators (#1586)

2 years agothrow resource error if OpenOptions raises an error of uncategorized kind (#1375)
Mark [Thu, 21 Sep 2023 20:36:53 +0000 (14:36 -0600)]
throw resource error if OpenOptions raises an error of uncategorized kind (#1375)

2 years agoMerge pull request #2027 from bakaq/dif
Mark Thom [Thu, 21 Sep 2023 17:32:38 +0000 (11:32 -0600)]
Merge pull request #2027 from bakaq/dif

Improvements to dif/2

2 years agoMerge pull request #2026 from infogulch/master
Mark Thom [Thu, 21 Sep 2023 17:31:35 +0000 (11:31 -0600)]
Merge pull request #2026 from infogulch/master

Simplify fn maybe

2 years agoAvoid dif/1 attribute with empty list
bakaq [Thu, 21 Sep 2023 17:00:37 +0000 (14:00 -0300)]
Avoid dif/1 attribute with empty list

Closes #1956

2 years agoRun dif tests on cargo test
bakaq [Thu, 21 Sep 2023 15:14:27 +0000 (12:14 -0300)]
Run dif tests on cargo test

2 years agoTests for dif/2
bakaq [Wed, 20 Sep 2023 23:56:25 +0000 (20:56 -0300)]
Tests for dif/2

2 years agoImproved dif/2
bakaq [Wed, 20 Sep 2023 23:56:04 +0000 (20:56 -0300)]
Improved dif/2

2 years agoSimplify maybe
infogulch [Wed, 20 Sep 2023 21:38:58 +0000 (16:38 -0500)]
Simplify maybe

Fix whitespace

2 years agoMerge pull request #2025 from aarroyoc/random-seed
Mark Thom [Wed, 20 Sep 2023 21:03:21 +0000 (15:03 -0600)]
Merge pull request #2025 from aarroyoc/random-seed

Use a SeedableRng to generate random numbers

2 years agoUse a SeedableRng to generate random numbers
Adrián Arroyo Calle [Wed, 20 Sep 2023 19:54:14 +0000 (21:54 +0200)]
Use a SeedableRng to generate random numbers

2 years agoremove unnecessary Result return type from read_term_from_heap
Mark [Fri, 15 Sep 2023 20:10:42 +0000 (14:10 -0600)]
remove unnecessary Result return type from read_term_from_heap

2 years agoMerge pull request #2018 from triska/libffi
Mark Thom [Wed, 13 Sep 2023 21:05:31 +0000 (15:05 -0600)]
Merge pull request #2018 from triska/libffi

use version from crates.io

2 years agouse version from crates.io
Markus Triska [Wed, 13 Sep 2023 18:45:38 +0000 (20:45 +0200)]
use version from crates.io

2 years agoMerge pull request #2017 from cmpute/master
Mark Thom [Wed, 13 Sep 2023 16:41:34 +0000 (10:41 -0600)]
Merge pull request #2017 from cmpute/master

Upgrade dashu and make the related code more idomatic.

2 years agoUpgrade dashu and some changes
Jacob [Wed, 13 Sep 2023 16:29:12 +0000 (12:29 -0400)]
Upgrade dashu and some changes

2 years agoupdate syn crates
Mark [Tue, 12 Sep 2023 20:52:42 +0000 (14:52 -0600)]
update syn crates

2 years agoget rid of OssifiedOpDir, DBRef, simplify current_op/3
Mark [Mon, 11 Sep 2023 21:36:15 +0000 (15:36 -0600)]
get rid of OssifiedOpDir, DBRef, simplify current_op/3

2 years agoMerge pull request #1993 from coasys/dashu-fixes
Mark Thom [Mon, 11 Sep 2023 17:33:16 +0000 (11:33 -0600)]
Merge pull request #1993 from coasys/dashu-fixes

Dashu fixes

2 years agoMerge pull request #2013 from gruhn/fix-docker-debian-bullseye
Mark Thom [Mon, 11 Sep 2023 17:23:10 +0000 (11:23 -0600)]
Merge pull request #2013 from gruhn/fix-docker-debian-bullseye

fix Docker image

2 years agofix Docker image
Niklas Gruhn [Sun, 10 Sep 2023 23:40:05 +0000 (01:40 +0200)]
fix Docker image

The Docker image is broken with the error message:

    scryer-prolog: error while loading shared libraries:
    libssl.so.1.1: cannot open shared object file: No such
    file or directory

We use the base base image `debian:stable-slim` and in the
background a new Debian version was marked stable (bookworm),
which has libssl3 instead of libssl1.1 installed.

I downgraded the base image to the previous stable version
(bullseye), which seems to fix the issue.

2 years agoMerge pull request #2010 from aarroyoc/update-website-0.9.2
Mark Thom [Sun, 10 Sep 2023 23:45:45 +0000 (17:45 -0600)]
Merge pull request #2010 from aarroyoc/update-website-0.9.2

Update INDEX.dj

2 years agoUpdate website to mention 0.9.2 and playground
Adrián Arroyo Calle [Sun, 10 Sep 2023 21:12:10 +0000 (23:12 +0200)]
Update website to mention 0.9.2 and playground

2 years agoMerge branch 'master' into dashu-fixes
Fayeed Pawaskar [Sun, 10 Sep 2023 16:21:02 +0000 (21:51 +0530)]
Merge branch 'master' into dashu-fixes

2 years agoRemoved value method and use deref to get type
Fayeed Pawaskar [Sun, 10 Sep 2023 16:10:22 +0000 (21:40 +0530)]
Removed value method and use deref to get type

2 years agoMerge pull request #2008 from triska/clpb_improvements
Mark Thom [Sat, 9 Sep 2023 06:40:30 +0000 (00:40 -0600)]
Merge pull request #2008 from triska/clpb_improvements

Various CLP(B) improvements

2 years agoremove code that is not needed in Scryer Prolog
Markus Triska [Sat, 9 Sep 2023 05:23:34 +0000 (07:23 +0200)]
remove code that is not needed in Scryer Prolog

2 years agoremove more attributes so that they do not appear in residual goals
Markus Triska [Fri, 8 Sep 2023 21:19:10 +0000 (23:19 +0200)]
remove more attributes so that they do not appear in residual goals

2 years agomove compatibility predicates and meta_predicate/1 declarations so that they are...
Markus Triska [Fri, 8 Sep 2023 21:12:33 +0000 (23:12 +0200)]
move compatibility predicates and meta_predicate/1 declarations so that they are correctly taken into account

2 years agoMerge pull request #2006 from infogulch/wasm-ci
Mark Thom [Sat, 9 Sep 2023 05:34:59 +0000 (23:34 -0600)]
Merge pull request #2006 from infogulch/wasm-ci

Add wasm build steps

2 years agoMerge pull request #2007 from triska/rust_1_70
Mark Thom [Sat, 9 Sep 2023 05:34:36 +0000 (23:34 -0600)]
Merge pull request #2007 from triska/rust_1_70

update required Rust version

2 years agoshorter partition/5, relying on first instantiated argument indexing
Markus Triska [Fri, 8 Sep 2023 20:47:59 +0000 (22:47 +0200)]
shorter partition/5, relying on first instantiated argument indexing

2 years agoadd meta_predicate/1 declaration for include/3 and exclude/3
Markus Triska [Fri, 8 Sep 2023 20:41:49 +0000 (22:41 +0200)]
add meta_predicate/1 declaration for include/3 and exclude/3

2 years agoshorter include/3 and exclude/3, relying on improved indexing
Markus Triska [Fri, 8 Sep 2023 20:40:50 +0000 (22:40 +0200)]
shorter include/3 and exclude/3, relying on improved indexing

2 years agoadd licensing information, addressing part of #1798
Markus Triska [Fri, 8 Sep 2023 20:37:18 +0000 (22:37 +0200)]
add licensing information, addressing part of #1798

2 years agoupdate required Rust version
Markus Triska [Sat, 9 Sep 2023 05:30:23 +0000 (07:30 +0200)]
update required Rust version

2 years agoAdd wasm build steps
Joe Taber [Sat, 9 Sep 2023 00:25:36 +0000 (19:25 -0500)]
Add wasm build steps

2 years agoMerge pull request #2004 from triska/generalize_description
Mark Thom [Fri, 8 Sep 2023 22:11:06 +0000 (16:11 -0600)]
Merge pull request #2004 from triska/generalize_description

this holds for all architectures (also 32-bit systems)

2 years agoMerge pull request #2003 from triska/clpz_comment
Mark Thom [Fri, 8 Sep 2023 21:22:49 +0000 (15:22 -0600)]
Merge pull request #2003 from triska/clpz_comment

update comment

2 years agothis holds for all architectures (also 32-bit systems)
Markus Triska [Fri, 8 Sep 2023 21:22:36 +0000 (23:22 +0200)]
this holds for all architectures (also 32-bit systems)

2 years agoupdate comment
Markus Triska [Fri, 8 Sep 2023 20:33:55 +0000 (22:33 +0200)]
update comment

2 years agoMerge pull request #1986 from rujialiu/wasm32-support
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

2 years agoBasic WebAssembly support with minimal Javascript API #615. Currently 6/12 crypto...
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.

2 years agocheck atom == ',' in ambiguity_check mirroring logic in print_op_addendum (#2000)
Mark [Tue, 5 Sep 2023 20:56:26 +0000 (14:56 -0600)]
check atom == ',' in ambiguity_check mirroring logic in print_op_addendum (#2000)

2 years agoremove error printing redundancy and inconsistent state resulting from file_load_clea...
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)

2 years agoMerge pull request #1980 from Skgland/atomtable
Mark Thom [Tue, 5 Sep 2023 18:32:20 +0000 (12:32 -0600)]
Merge pull request #1980 from Skgland/atomtable

make AtomTable consurrency safe

2 years agoMerge pull request #1997 from triska/countall
Mark Thom [Tue, 5 Sep 2023 18:04:52 +0000 (12:04 -0600)]
Merge pull request #1997 from triska/countall

Corrections to countall/2

2 years agocall_with_inference_limit/3 should fail if inference limit is exceeded and R term...
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)

2 years agoFIXED: documentation of countall/2 (#1976)
Markus Triska [Tue, 5 Sep 2023 17:42:55 +0000 (19:42 +0200)]
FIXED: documentation of countall/2 (#1976)

2 years agomake F64Table concurency safe
Bennet Bleßmann [Sat, 2 Sep 2023 20:27:43 +0000 (22:27 +0200)]
make F64Table concurency safe

2 years agoremove locks from AtomTable
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

2 years ago[WIP] move towards lockless AtomTable
Bennet Bleßmann [Mon, 28 Aug 2023 21:24:27 +0000 (23:24 +0200)]
[WIP] move towards lockless AtomTable

2 years agoFIXED: countall/2 for zero solutions (#1996)
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.

2 years agofix `rust_beta_channel` feature
Skgland [Sun, 27 Aug 2023 20:23:22 +0000 (22:23 +0200)]
fix `rust_beta_channel` feature

2 years agofix accidentally left in println!()
Skgland [Sun, 27 Aug 2023 20:22:59 +0000 (22:22 +0200)]
fix accidentally left in println!()

2 years agoraise msrv for OnceLock support
Skgland [Sun, 27 Aug 2023 18:05:12 +0000 (20:05 +0200)]
raise msrv for OnceLock support

2 years agoadd comment why blocking_write is not used
Skgland [Sun, 27 Aug 2023 17:58:08 +0000 (19:58 +0200)]
add comment why blocking_write is not used

2 years agofix deadlock in `load_library_as_stream`
Skgland [Sun, 27 Aug 2023 17:56:55 +0000 (19:56 +0200)]
fix deadlock in `load_library_as_stream`

2 years ago[WIP] fix deadlock in AtomTable::build_with
Bennet Bleßmann [Mon, 28 Aug 2023 21:04:30 +0000 (23:04 +0200)]
[WIP] fix deadlock in AtomTable::build_with

2 years ago[WIP] make AtomTable concurrentcy ready
Skgland [Fri, 25 Aug 2023 23:10:49 +0000 (01:10 +0200)]
[WIP] make AtomTable concurrentcy ready

2 years agorun cargo fmt
Skgland [Fri, 25 Aug 2023 23:29:53 +0000 (01:29 +0200)]
run cargo fmt

2 years agocorrect inference counting over index backtracking, built-ins (#1977, #1987)
Mark [Mon, 4 Sep 2023 23:15:05 +0000 (17:15 -0600)]
correct inference counting over index backtracking, built-ins (#1977, #1987)

2 years agoImplemented num_order methods on Integer & Rational numbers
Fayeed Pawaskar [Mon, 4 Sep 2023 08:42:47 +0000 (14:12 +0530)]
Implemented num_order methods on Integer & Rational numbers

2 years agoAdded new unify methods
Fayeed Pawaskar [Mon, 4 Sep 2023 08:42:11 +0000 (14:12 +0530)]
Added new unify methods

2 years agoFixed warning
Fayeed Pawaskar [Mon, 4 Sep 2023 08:41:54 +0000 (14:11 +0530)]
Fixed warning

2 years agoAdded value method to get the generic type from TypedArenaPtr
Fayeed Pawaskar [Mon, 4 Sep 2023 08:41:30 +0000 (14:11 +0530)]
Added value method to get the generic type from TypedArenaPtr

2 years agoAdded latest dashu from github
Fayeed Pawaskar [Mon, 4 Sep 2023 08:39:45 +0000 (14:09 +0530)]
Added latest dashu from github

2 years agoMerge pull request #1991 from triska/discoverable_flags
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

2 years agoMerge pull request #1990 from triska/clpb_max
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

2 years agoFIXED: make occurs_check and answer_write_options flags discoverable
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.

2 years agoupdate answer
Markus Triska [Sun, 3 Sep 2023 20:01:38 +0000 (22:01 +0200)]
update answer

2 years agountabify
Markus Triska [Sun, 3 Sep 2023 19:57:51 +0000 (21:57 +0200)]
untabify

2 years agoremove clpb_max/1 attribute for residual goal projection
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.

2 years agoMerge pull request #1988 from triska/answer_write_options
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.

2 years agoMerge pull request #1989 from triska/mention_binaries
Mark Thom [Sun, 3 Sep 2023 17:36:07 +0000 (11:36 -0600)]
Merge pull request #1989 from triska/mention_binaries

mention precompiled binaries

2 years agomention precompiled binaries
Markus Triska [Sun, 3 Sep 2023 12:12:46 +0000 (14:12 +0200)]
mention precompiled binaries

2 years agoADDED: New Prolog flag, answer_write_options.
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.

2 years agorefine is/2 compilation so errors are thrown when expected without needlessly allocat...
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)

2 years agodon't compile is instruction if bound to anonymous variable (#1974)
Mark [Tue, 29 Aug 2023 21:26:08 +0000 (15:26 -0600)]
don't compile is instruction if bound to anonymous variable (#1974)

2 years agoupdate Cargo.toml version numbers and bump version number v0.9.2
Mark [Mon, 28 Aug 2023 19:23:56 +0000 (13:23 -0600)]
update Cargo.toml version numbers and bump version number

2 years agoMerge pull request #1978 from aarroyoc/ci-32-bits
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

2 years agoMerge pull request #1979 from triska/normalize_space
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

2 years ago32 bit CI for Linux
Adrián Arroyo Calle [Sat, 26 Aug 2023 07:28:46 +0000 (09:28 +0200)]
32 bit CI for Linux

2 years agoreplace adjacent whitespace characters with a single SPACE character
Markus Triska [Sun, 27 Aug 2023 10:55:29 +0000 (12:55 +0200)]
replace adjacent whitespace characters with a single SPACE character

2 years agoENHANCED: rudimentary implementation of normalize_space
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.

2 years agoMerge pull request #1972 from rujialiu/32-bit-support
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)

2 years ago32-bit system support, addressing all (at most) 4GB addresses of RAM.
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.

2 years agoMerge pull request #1973 from triska/clpz
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

2 years agoattach more propagators before starting propagation
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.

2 years agoremove optional (+)/1 prefix in get_atts/2 and put_atts/2 calls
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.

2 years agouse pneq/2
Markus Triska [Tue, 15 Aug 2023 19:50:15 +0000 (21:50 +0200)]
use pneq/2

2 years agoenforce same queue in more constraints
Markus Triska [Tue, 15 Aug 2023 19:44:39 +0000 (21:44 +0200)]
enforce same queue in more constraints

2 years agoappend the entire queues instead of inserting each element individually
Markus Triska [Tue, 15 Aug 2023 19:43:19 +0000 (21:43 +0200)]
append the entire queues instead of inserting each element individually

2 years agoadapt query to Scryer Prolog
Markus Triska [Tue, 15 Aug 2023 19:39:32 +0000 (21:39 +0200)]
adapt query to Scryer Prolog

2 years agoupdate answers
Markus Triska [Tue, 15 Aug 2023 19:38:56 +0000 (21:38 +0200)]
update answers

2 years agouse can_be/2
Markus Triska [Tue, 15 Aug 2023 19:36:59 +0000 (21:36 +0200)]
use can_be/2

2 years agoMerge pull request #1967 from rujialiu/optional-features
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

2 years agoAllow users to disable optional features. Needed for wasm32 support (see #615).
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).

2 years agoMerge pull request #1968 from rujialiu/atom-64bit
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

2 years agoMerge pull request #1970 from triska/crrl
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