]> Repositorios git - scryer-prolog.git/log
scryer-prolog.git
13 months agoENHANCED: use a fast test for the expected case of chars in atom_chars/2 etc.
Markus Triska [Thu, 24 Apr 2025 16:19:05 +0000 (18:19 +0200)]
ENHANCED: use a fast test for the expected case of chars in atom_chars/2 etc.

Suggested by Oleg Finkelstein, thank you a lot!

Example, before this change:

    ?- t+\(length(As, 1_000_000), maplist(=(a), As), time(atom_chars(A, As))).
       % CPU time: 0.693s, 7_000_041 inferences
       true.

Now:

    ?- t+\(length(As, 1_000_000), maplist(=(a), As), time(atom_chars(A, As))).
       % CPU time: 0.080s, 40 inferences
       true.

This also partially ameliorates #2907.

13 months agofix functor! size calculations around indexing_code_ptr
Mark Thom [Thu, 24 Apr 2025 05:49:03 +0000 (22:49 -0700)]
fix functor! size calculations around indexing_code_ptr

13 months agorestore tab completion to REPL (#2575)
Mark Thom [Thu, 24 Apr 2025 01:55:50 +0000 (18:55 -0700)]
restore tab completion to REPL (#2575)

13 months agomake self.s_offset use bytes in case of HeapPtr::PStr in UnifyVoid (#2897)
Mark Thom [Tue, 22 Apr 2025 03:25:50 +0000 (20:25 -0700)]
make self.s_offset use bytes in case of HeapPtr::PStr in UnifyVoid (#2897)

13 months agocorrect heap_print.rs for null characters being excluded from pstr regions of heap...
Mark Thom [Mon, 21 Apr 2025 00:14:13 +0000 (17:14 -0700)]
correct heap_print.rs for null characters being excluded from pstr regions of heap (#2890)

13 months agocorrectly increment s_offset for partial strings (#2897)
Mark Thom [Sun, 20 Apr 2025 23:53:36 +0000 (16:53 -0700)]
correctly increment s_offset for partial strings (#2897)

13 months agofix typo in try_from_partial_string
Mark Thom [Sun, 20 Apr 2025 07:07:55 +0000 (00:07 -0700)]
fix typo in try_from_partial_string

13 months agofix read_s logic around HeapPtr::PStrLoc (#2894)
Mark Thom [Sun, 20 Apr 2025 06:51:26 +0000 (23:51 -0700)]
fix read_s logic around HeapPtr::PStrLoc (#2894)

13 months agorepair cyclic PStrLoc handling in heap_print.rs
Mark Thom [Fri, 18 Apr 2025 07:03:33 +0000 (00:03 -0700)]
repair cyclic PStrLoc handling in heap_print.rs

13 months agoremove compare_pstr_to_string and related result type
Mark Thom [Fri, 18 Apr 2025 03:20:38 +0000 (20:20 -0700)]
remove compare_pstr_to_string and related result type

13 months agoENHANCED: dedicated faster branches for repositionable streams
Markus Triska [Thu, 17 Apr 2025 20:14:37 +0000 (22:14 +0200)]
ENHANCED: dedicated faster branches for repositionable streams

rebis-dev makes the speed difference especially apparent due to the
linear scan of strings on the heap in partial_string_tail/2 which is
now avoided for repositionable streams, notably files.

This addresses #2888 reported and analyzed by @haijinSk. Many thanks!

13 months agocorrect GetPartialString (#2887)
Mark Thom [Thu, 17 Apr 2025 05:20:31 +0000 (22:20 -0700)]
correct GetPartialString (#2887)

13 months agogeneralize compare_pstr_segments
Mark Thom [Wed, 16 Apr 2025 05:10:02 +0000 (22:10 -0700)]
generalize compare_pstr_segments

13 months agoensure '\0' atom is static & never inlined (#2880)
Mark Thom [Sun, 13 Apr 2025 01:48:47 +0000 (18:48 -0700)]
ensure '\0' atom is static & never inlined (#2880)

13 months agofix root reading of complete strings (#2882)
Mark Thom [Sun, 13 Apr 2025 00:32:11 +0000 (17:32 -0700)]
fix root reading of complete strings (#2882)

13 months agosome cosmetic tweaks
Mark Thom [Sat, 12 Apr 2025 23:43:51 +0000 (16:43 -0700)]
some cosmetic tweaks

13 months agomark done item
Markus Triska [Sat, 12 Apr 2025 20:54:04 +0000 (22:54 +0200)]
mark done item

13 months agocorrect and simplify compute_pstr_size
Mark Thom [Sat, 12 Apr 2025 07:22:29 +0000 (00:22 -0700)]
correct and simplify compute_pstr_size

13 months agocorrect create_partial_string (#2593)
Mark Thom [Sat, 12 Apr 2025 06:59:53 +0000 (23:59 -0700)]
correct create_partial_string (#2593)

13 months agorestore more tabu_list use to compare_term_tests (#2633)
Mark Thom [Fri, 11 Apr 2025 04:06:44 +0000 (21:06 -0700)]
restore more tabu_list use to compare_term_tests (#2633)

13 months agorestore tabu_list insertions to PStr-Lis comparisons (#2636)
Mark Thom [Fri, 11 Apr 2025 04:03:29 +0000 (21:03 -0700)]
restore tabu_list insertions to PStr-Lis comparisons (#2636)

13 months agodo not allow strings containing null characters to be inlined (#2848)
Mark Thom [Thu, 10 Apr 2025 06:03:28 +0000 (23:03 -0700)]
do not allow strings containing null characters to be inlined (#2848)

13 months agomove CodeIndex to F64Table-like table
Mark Thom [Sun, 6 Apr 2025 19:11:57 +0000 (12:11 -0700)]
move CodeIndex to F64Table-like table

13 months agoRevert "remove Term"
Mark Thom [Sat, 15 Mar 2025 20:19:26 +0000 (13:19 -0700)]
Revert "remove Term"

This reverts commit 3b5879841aedecba5057c70c71da0ba23e5cd84a.

13 months agomake write_with forward return values, use it to correct partial string handling
Mark Thom [Sat, 15 Mar 2025 09:10:56 +0000 (02:10 -0700)]
make write_with forward return values, use it to correct partial string handling

13 months agoread Str focus properly in build_meta_predicate_clause
Mark Thom [Sat, 15 Mar 2025 09:10:04 +0000 (02:10 -0700)]
read Str focus properly in build_meta_predicate_clause

13 months agosome fixes in response to miri
Mark Thom [Thu, 13 Mar 2025 19:33:37 +0000 (12:33 -0700)]
some fixes in response to miri

13 months agoFix parsing of \x0\ in partial strings
bakaq [Sun, 2 Mar 2025 21:51:57 +0000 (18:51 -0300)]
Fix parsing of \x0\ in partial strings

13 months agocopy partial string blocks properly in all solutions predicates
Mark Thom [Tue, 4 Mar 2025 08:17:20 +0000 (00:17 -0800)]
copy partial string blocks properly in all solutions predicates

13 months agorun cargo fmt
Mark Thom [Sat, 1 Mar 2025 21:58:50 +0000 (13:58 -0800)]
run cargo fmt

13 months agoremove pstr_vec
Mark Thom [Sat, 7 Dec 2024 05:47:36 +0000 (21:47 -0800)]
remove pstr_vec

13 months agoglobalize ALIGN_CELL/ALIGN, fix compute_pstr_size
Mark Thom [Tue, 25 Feb 2025 03:54:35 +0000 (19:54 -0800)]
globalize ALIGN_CELL/ALIGN, fix compute_pstr_size

13 months agoFix allocate_pstr randomly refusing to properly allocate memory
Emilie Burgun [Sun, 29 Dec 2024 22:54:03 +0000 (23:54 +0100)]
Fix allocate_pstr randomly refusing to properly allocate memory

This one was a toughie: it turns out that using `ptr::align_of()`` was
a bad idea, since the buffer in `Heap` itself is not aligned to
`Heap::heap_cell_alignment()`, so `ptr::align_of()` would sometimes
return lower values than expected.

That made for an heisenbug: if the alignment of the heap happened to be 4,
then the bug wouldn't trigger.

13 months agoFix Heap::drop not accounting for null-initialized HeapInner
Emilie Burgun [Sun, 29 Dec 2024 21:04:40 +0000 (22:04 +0100)]
Fix Heap::drop not accounting for null-initialized HeapInner

13 months agodereference clause_clause value, reserve more parser space (#2579)
Mark Thom [Fri, 15 Nov 2024 05:04:09 +0000 (22:04 -0700)]
dereference clause_clause value, reserve more parser space (#2579)

13 months agounmark_cell_bits! in push_literal (#2645)
Mark Thom [Fri, 1 Nov 2024 04:58:29 +0000 (22:58 -0600)]
unmark_cell_bits! in push_literal (#2645)

13 months agointroduce bespoke Heap type for in-heap partial strings
Mark Thom [Tue, 14 May 2024 00:00:56 +0000 (18:00 -0600)]
introduce bespoke Heap type for in-heap partial strings

13 months agovariable revision
Mark Thom [Wed, 31 Jul 2024 20:04:55 +0000 (14:04 -0600)]
variable revision

13 months agoremove Term
Mark Thom [Tue, 16 Jul 2024 21:38:22 +0000 (15:38 -0600)]
remove Term

13 months agorestore ubuntu testing to ci.yml with rust version 1.77
Mark Thom [Mon, 13 May 2024 20:40:09 +0000 (14:40 -0600)]
restore ubuntu testing to ci.yml with rust version 1.77

13 months agouse loader:strip_subst_module/4 in second module check of retract/1 (#2891, #2893)
Mark Thom [Wed, 23 Apr 2025 06:28:19 +0000 (23:28 -0700)]
use loader:strip_subst_module/4 in second module check of retract/1 (#2891, #2893)

13 months agoMerge pull request #2905 from bakaq/bump-msrv
Mark Thom [Wed, 23 Apr 2025 05:28:02 +0000 (22:28 -0700)]
Merge pull request #2905 from bakaq/bump-msrv

Bump MSRV and update flake.lock

13 months agoRemove Ubuntu 20.04 runner
bakaq [Tue, 22 Apr 2025 20:32:36 +0000 (17:32 -0300)]
Remove Ubuntu 20.04 runner

13 months agoBump MSRV and update flake.lock
bakaq [Tue, 22 Apr 2025 20:10:29 +0000 (17:10 -0300)]
Bump MSRV and update flake.lock

13 months agoMerge pull request #2895 from hakujin/master
Mark Thom [Tue, 22 Apr 2025 05:11:43 +0000 (22:11 -0700)]
Merge pull request #2895 from hakujin/master

Update `libffi` and `libffi-sys` dependencies to fix aarch64 macOS build

13 months agoUpdate `libffi` and `libffi-sys` dependencies to fix aarch64 macOS build
Colin King [Sat, 19 Apr 2025 02:40:29 +0000 (21:40 -0500)]
Update `libffi` and `libffi-sys` dependencies to fix aarch64 macOS build

Pulls in latest `libffi` and `libffi-sys` dependencies to fix a
compilation error on aarch64 macOS builds.

13 months agoMerge pull request #2873 from constraintAutomaton/doc/update-readme-wasm-example
Mark Thom [Sun, 13 Apr 2025 04:09:40 +0000 (21:09 -0700)]
Merge pull request #2873 from constraintAutomaton/doc/update-readme-wasm-example

update of the WebAssembly example in README

13 months agoMerge pull request #2879 from triska/ad4m
Mark Thom [Sun, 13 Apr 2025 04:09:20 +0000 (21:09 -0700)]
Merge pull request #2879 from triska/ad4m

enumerate applications, add AD4M by @coasys

14 months agoenumerate applications, add AD4M by @coasys
Markus Triska [Sat, 12 Apr 2025 07:05:28 +0000 (09:05 +0200)]
enumerate applications, add AD4M by @coasys

14 months agoExample update to use iterable.
constraintAutomaton [Sat, 12 Apr 2025 05:18:00 +0000 (07:18 +0200)]
Example update to use iterable.

14 months agoMerge branch 'master' into doc/update-readme-wasm-example
constraintAutomaton [Sat, 12 Apr 2025 05:00:14 +0000 (07:00 +0200)]
Merge branch 'master' into doc/update-readme-wasm-example

14 months agoMerge pull request #2875 from constraintAutomaton/feature/wasm-result-iterator
Mark Thom [Sat, 12 Apr 2025 03:52:45 +0000 (20:52 -0700)]
Merge pull request #2875 from constraintAutomaton/feature/wasm-result-iterator

Make `WasmQueryState` Iterable in JavaScript

14 months agomark cyclic lists with ellipses at the head (#2635)
Mark Thom [Fri, 11 Apr 2025 05:39:35 +0000 (22:39 -0700)]
mark cyclic lists with ellipses at the head (#2635)

14 months agoMade WasmQueryState an iterable.
constraintAutomaton [Thu, 10 Apr 2025 17:02:04 +0000 (19:02 +0200)]
Made WasmQueryState an iterable.

14 months agoMerge pull request #2874 from triska/read_from_chars_instantiated
Mark Thom [Thu, 10 Apr 2025 15:47:21 +0000 (08:47 -0700)]
Merge pull request #2874 from triska/read_from_chars_instantiated

generalize read_from_chars/2 and read_term_from_chars/3 to allow instantiated Term

14 months agogeneralize read_from_chars/2 and read_term_from_chars/3 to allow instantiated Term
Markus Triska [Wed, 9 Apr 2025 20:23:12 +0000 (22:23 +0200)]
generalize read_from_chars/2 and read_term_from_chars/3 to allow instantiated Term

This addresses part of #2871, raised by @haijinSk. Many thanks!

14 months agoFix DOM manipulation to avoid deprecated functions in Sudoku solver example.
constraintAutomaton [Tue, 8 Apr 2025 18:13:02 +0000 (20:13 +0200)]
Fix DOM manipulation to avoid deprecated functions in Sudoku solver example.

14 months agobetter identation of the knowledge base.
constraintAutomaton [Tue, 8 Apr 2025 17:29:34 +0000 (19:29 +0200)]
better identation of the knowledge base.

14 months agoUseless console.log in the example deleted.
constraintAutomaton [Tue, 8 Apr 2025 17:17:20 +0000 (19:17 +0200)]
Useless console.log in the example deleted.

14 months agoUpdate README with working WebAssembly usage example.
constraintAutomaton [Tue, 8 Apr 2025 17:12:27 +0000 (19:12 +0200)]
Update README with working WebAssembly usage example.

14 months agoMerge pull request #2869 from triska/format_w
Mark Thom [Sun, 6 Apr 2025 22:31:59 +0000 (15:31 -0700)]
Merge pull request #2869 from triska/format_w

ENHANCED: format specifier ~w more faithfully emulates write/1

14 months agomove ~w to least prominent position, point to more suitable specifiers
Markus Triska [Sat, 5 Apr 2025 08:01:22 +0000 (10:01 +0200)]
move ~w to least prominent position, point to more suitable specifiers

In particular, "~q" is a safe better choice.

14 months agoENHANCED: format specifier ~w more faithfully emulates write/1
Markus Triska [Sat, 5 Apr 2025 07:47:29 +0000 (09:47 +0200)]
ENHANCED: format specifier ~w more faithfully emulates write/1

In particular, variables now start with "_".

Example:

    ?- format("~w", [X]).
    %@ _A   true.

Found thanks to a discussion initiated by @haijinSk:

    https://github.com/mthom/scryer-prolog/discussions/2863

14 months agoMerge pull request #2861 from averms-forks/update-deps
Mark Thom [Tue, 1 Apr 2025 02:49:54 +0000 (19:49 -0700)]
Merge pull request #2861 from averms-forks/update-deps

Update and clean up dependencies.

14 months agoMerge pull request #2860 from averms-forks/push-spzqsznlnlnm
Mark Thom [Tue, 1 Apr 2025 02:49:46 +0000 (19:49 -0700)]
Merge pull request #2860 from averms-forks/push-spzqsznlnlnm

Use backticks when referencing predicate in docs.

14 months agoInstall correct locked version of iai-callgrind-runner in CI.
Aman Verma [Mon, 31 Mar 2025 09:03:31 +0000 (04:03 -0500)]
Install correct locked version of iai-callgrind-runner in CI.

14 months agoUpdate lexical.
Aman Verma [Fri, 28 Mar 2025 19:05:45 +0000 (14:05 -0500)]
Update lexical.

The previous versions of lexical and lexical-core we were using were
subject to the following security advisories:

- https://rustsec.org/advisories/RUSTSEC-2023-0086
- https://rustsec.org/advisories/RUSTSEC-2023-0055

14 months agoRemove unused deps: regex, assert_cmd, predicates-core.
Aman Verma [Fri, 28 Mar 2025 02:11:21 +0000 (21:11 -0500)]
Remove unused deps: regex, assert_cmd, predicates-core.

regex was introduced in commit 9e85be11fecd00b3d0be8b828eb0dd5cfb57e60a
but isn't used anymore.

assert_cmd and predicates-core were introduced in
e1c681fffead4d63caa0d0b902196224b651f465 for tests but aren't used
anymore.

Dependency count in Cargo.lock drops from 428 to 421.

14 months agoUpdate ordered-float to 5.0.0.
Aman Verma [Fri, 28 Mar 2025 02:02:14 +0000 (21:02 -0500)]
Update ordered-float to 5.0.0.

14 months agoUpdate scraper and ego-tree.
Aman Verma [Fri, 28 Mar 2025 01:35:01 +0000 (20:35 -0500)]
Update scraper and ego-tree.

This gets rid of 4 dependencies, as verified by the output of

    yj -tj < Cargo.lock | jq -c '.package | length'

Previously it was 432, now it is 428.

14 months agoBump dependencies except for arcu v0.1.1 and half 2.4.1.
Aman Verma [Fri, 28 Mar 2025 01:20:46 +0000 (20:20 -0500)]
Bump dependencies except for arcu v0.1.1 and half 2.4.1.

arcu is not updated for reasons laid out in issue #2749.
half is not updated because going to 2.5.0 would require an MSRV bump 1.81.

Previous versions of idna, openssl, and ring were subject to the
following security advisories:

- https://rustsec.org/advisories/RUSTSEC-2025-0009
- https://rustsec.org/advisories/RUSTSEC-2025-0004
- https://rustsec.org/advisories/RUSTSEC-2024-0421

14 months agoUse backticks when referencing predicate in docs.
Aman Verma [Thu, 27 Mar 2025 23:49:03 +0000 (18:49 -0500)]
Use backticks when referencing predicate in docs.

Trivial change but this prevents the HTML output from being erroneously italicized.

15 months agoMerge pull request #2847 from triska/call_with_error_context
Mark Thom [Sun, 9 Mar 2025 20:21:25 +0000 (13:21 -0700)]
Merge pull request #2847 from triska/call_with_error_context

ADDED: type pair

15 months agoADDED: type pair
Markus Triska [Sat, 8 Mar 2025 13:42:48 +0000 (14:42 +0100)]
ADDED: type pair

15 months agoMerge pull request #2846 from triska/call_with_error_context
Mark Thom [Sat, 8 Mar 2025 08:39:03 +0000 (00:39 -0800)]
Merge pull request #2846 from triska/call_with_error_context

ADDED: call_with_error_context/2

15 months agoADDED: call_with_error_context/2
Markus Triska [Sat, 8 Mar 2025 08:12:17 +0000 (09:12 +0100)]
ADDED: call_with_error_context/2

See https://github.com/mthom/scryer-prolog/discussions/2839 for more information.

15 months agoMerge pull request #2837 from notoria/next
Mark Thom [Sat, 1 Mar 2025 21:40:09 +0000 (13:40 -0800)]
Merge pull request #2837 from notoria/next

Fix conversion from float to rational

15 months agoMerge pull request #2836 from triska/format_floats
Mark Thom [Sat, 1 Mar 2025 09:45:55 +0000 (01:45 -0800)]
Merge pull request #2836 from triska/format_floats

Correct handling of floats in format/2 and portray_clause/1

15 months agoFIXED: portray_clause/1 for numbers
Markus Triska [Fri, 28 Feb 2025 07:22:54 +0000 (08:22 +0100)]
FIXED: portray_clause/1 for numbers

15 months agocorrect handling of floats with N digits (~f and ~Nf)
Markus Triska [Fri, 28 Feb 2025 07:14:34 +0000 (08:14 +0100)]
correct handling of floats with N digits (~f and ~Nf)

This addresses #2771. Many thanks to @tmerr for reporting the issue!

The code was posted by @UWN in:

    https://github.com/mthom/scryer-prolog/discussions/2805

Many thanks! With additional inputs by @adri326 and @notoria, who also
posted interesting approaches which could help to increase precision
in cases that are currently not ideally handled. Thank you all!

Please see the issue and discussion for more information.

15 months agoFix conversion from float to rational
notoria [Fri, 28 Feb 2025 07:00:00 +0000 (08:00 +0100)]
Fix conversion from float to rational

15 months agoMerge pull request #2835 from thierrymarianne/fix-http_open-hanging-on-top-of-main...
Mark Thom [Fri, 28 Feb 2025 05:38:58 +0000 (21:38 -0800)]
Merge pull request #2835 from thierrymarianne/fix-http_open-hanging-on-top-of-main-branch

Prevent http_open/3 from hanging

15 months agoMerge pull request #2792 from triska/must_be_chars
Mark Thom [Fri, 28 Feb 2025 05:26:40 +0000 (21:26 -0800)]
Merge pull request #2792 from triska/must_be_chars

FIXED: instantiation and type check for string arguments

15 months agoMerge pull request #2825 from bakaq/wasm_rework
Mark Thom [Fri, 28 Feb 2025 05:26:20 +0000 (21:26 -0800)]
Merge pull request #2825 from bakaq/wasm_rework

Wasm rework

15 months agoReplace futures::executor::block_on with tokio::block_in_place
revue_2_presse [Tue, 25 Feb 2025 19:19:14 +0000 (20:19 +0100)]
Replace futures::executor::block_on with tokio::block_in_place

15 months agoDocumentation
bakaq [Thu, 20 Feb 2025 03:48:51 +0000 (00:48 -0300)]
Documentation

15 months agoConsult modules
bakaq [Thu, 20 Feb 2025 03:33:11 +0000 (00:33 -0300)]
Consult modules

15 months agoSend pure objects instead of classes
bakaq [Thu, 20 Feb 2025 03:12:30 +0000 (00:12 -0300)]
Send pure objects instead of classes

15 months agoMachineBuilder constructor
bakaq [Thu, 20 Feb 2025 01:50:41 +0000 (22:50 -0300)]
MachineBuilder constructor

15 months agoRework Wasm interface
bakaq [Fri, 31 Jan 2025 12:24:39 +0000 (09:24 -0300)]
Rework Wasm interface

15 months agoMake Wasm compilable
bakaq [Fri, 31 Jan 2025 12:24:39 +0000 (09:24 -0300)]
Make Wasm compilable

15 months agoMerge pull request #2817 from adri326/fix-2815-run_module_predicate-backtrack
Mark Thom [Mon, 17 Feb 2025 06:47:49 +0000 (22:47 -0800)]
Merge pull request #2817 from adri326/fix-2815-run_module_predicate-backtrack

Fix backtracking on the topmost predicate triggering UB in run_module_predicate

15 months agoMerge pull request #2799 from bakaq/callback_streams
Mark Thom [Mon, 17 Feb 2025 06:47:34 +0000 (22:47 -0800)]
Merge pull request #2799 from bakaq/callback_streams

Callback streams for use as library

15 months agoAdd builder style configuration of user input, output and error
bakaq [Wed, 5 Feb 2025 15:07:28 +0000 (12:07 -0300)]
Add builder style configuration of user input, output and error

15 months agoMore stream tests
bakaq [Fri, 31 Jan 2025 16:14:45 +0000 (13:14 -0300)]
More stream tests

15 months agoDisallow null streams in output
bakaq [Fri, 31 Jan 2025 10:45:13 +0000 (07:45 -0300)]
Disallow null streams in output

15 months agoMake input and output stream configuration public
bakaq [Fri, 31 Jan 2025 10:23:39 +0000 (07:23 -0300)]
Make input and output stream configuration public

15 months agoConfigure streams separately
bakaq [Thu, 30 Jan 2025 12:20:28 +0000 (09:20 -0300)]
Configure streams separately

15 months agoRefactor UserInput to use channels
bakaq [Thu, 30 Jan 2025 09:14:38 +0000 (06:14 -0300)]
Refactor UserInput to use channels

15 months agoTest for callback streams
bakaq [Wed, 29 Jan 2025 20:09:48 +0000 (17:09 -0300)]
Test for callback streams