]>
Repositorios git - scryer-prolog.git/log
Mark Thom [Sun, 27 Apr 2025 04:11:27 +0000 (21:11 -0700)]
allow unused_parens around let statement in functor! macro
Markus Triska [Fri, 25 Apr 2025 16:39:21 +0000 (18:39 +0200)]
FIXED: invoke correct predicate
Noted by Oleg Finkelstein. Many thanks!
Markus Triska [Fri, 25 Apr 2025 20:16:44 +0000 (22:16 +0200)]
ENHANCED: partial_string/3 no longer creates atoms
As a consequence, resulting strings are now quickly reclaimed on
backtracking.
This addresses #2912.
Test case:
:- use_module(library(iso_ext)).
:- use_module(library(lists)).
ab(a).
ab(b).
Sample query:
?- length(Ls, 1_000_000),
maplist(ab, Ls),
partial_string(Ls, Es0, []),
Es0 == Ls.
Ls = "
aaaaaaaaaaaaaaaaaaa ...", Es0 = "
aaaaaaaaaaaaaaaaaaa ..."
; Ls = "
aaaaaaaaaaaaaaaaaaa ...", Es0 = "
aaaaaaaaaaaaaaaaaaa ..."
; Ls = "
aaaaaaaaaaaaaaaaaaa ...", Es0 = "
aaaaaaaaaaaaaaaaaaa ..."
; Ls = "
aaaaaaaaaaaaaaaaaaa ...", Es0 = "
aaaaaaaaaaaaaaaaaaa ..."
; Ls = "
aaaaaaaaaaaaaaaaaaa ...", Es0 = "
aaaaaaaaaaaaaaaaaaa ..."
; ... .
running in constant memory.
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.
Mark Thom [Fri, 25 Apr 2025 05:20:40 +0000 (22:20 -0700)]
correct heap-to-cell-index comparison in copy_slice_to_end (#2906)
Mark Thom [Thu, 24 Apr 2025 05:49:03 +0000 (22:49 -0700)]
fix functor! size calculations around indexing_code_ptr
Mark Thom [Thu, 24 Apr 2025 01:55:50 +0000 (18:55 -0700)]
restore tab completion to REPL (#2575)
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)
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)
Mark Thom [Sun, 20 Apr 2025 23:53:36 +0000 (16:53 -0700)]
correctly increment s_offset for partial strings (#2897)
Mark Thom [Sun, 20 Apr 2025 07:07:55 +0000 (00:07 -0700)]
fix typo in try_from_partial_string
Mark Thom [Sun, 20 Apr 2025 06:51:26 +0000 (23:51 -0700)]
fix read_s logic around HeapPtr::PStrLoc (#2894)
Mark Thom [Fri, 18 Apr 2025 07:03:33 +0000 (00:03 -0700)]
repair cyclic PStrLoc handling in heap_print.rs
Mark Thom [Fri, 18 Apr 2025 03:20:38 +0000 (20:20 -0700)]
remove compare_pstr_to_string and related result type
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!
Mark Thom [Thu, 17 Apr 2025 05:20:31 +0000 (22:20 -0700)]
correct GetPartialString (#2887)
Mark Thom [Wed, 16 Apr 2025 05:10:02 +0000 (22:10 -0700)]
generalize compare_pstr_segments
Mark Thom [Sun, 13 Apr 2025 01:48:47 +0000 (18:48 -0700)]
ensure '\0' atom is static & never inlined (#2880)
Mark Thom [Sun, 13 Apr 2025 00:32:11 +0000 (17:32 -0700)]
fix root reading of complete strings (#2882)
Mark Thom [Sat, 12 Apr 2025 23:43:51 +0000 (16:43 -0700)]
some cosmetic tweaks
Markus Triska [Sat, 12 Apr 2025 20:54:04 +0000 (22:54 +0200)]
mark done item
Mark Thom [Sat, 12 Apr 2025 07:22:29 +0000 (00:22 -0700)]
correct and simplify compute_pstr_size
Mark Thom [Sat, 12 Apr 2025 06:59:53 +0000 (23:59 -0700)]
correct create_partial_string (#2593)
Mark Thom [Fri, 11 Apr 2025 04:06:44 +0000 (21:06 -0700)]
restore more tabu_list use to compare_term_tests (#2633)
Mark Thom [Fri, 11 Apr 2025 04:03:29 +0000 (21:03 -0700)]
restore tabu_list insertions to PStr-Lis comparisons (#2636)
Mark Thom [Thu, 10 Apr 2025 06:03:28 +0000 (23:03 -0700)]
do not allow strings containing null characters to be inlined (#2848)
Mark Thom [Sun, 6 Apr 2025 19:11:57 +0000 (12:11 -0700)]
move CodeIndex to F64Table-like table
Mark Thom [Sat, 15 Mar 2025 20:19:26 +0000 (13:19 -0700)]
Revert "remove Term"
This reverts commit
3b5879841aedecba5057c70c71da0ba23e5cd84a .
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
Mark Thom [Sat, 15 Mar 2025 09:10:04 +0000 (02:10 -0700)]
read Str focus properly in build_meta_predicate_clause
Mark Thom [Thu, 13 Mar 2025 19:33:37 +0000 (12:33 -0700)]
some fixes in response to miri
bakaq [Sun, 2 Mar 2025 21:51:57 +0000 (18:51 -0300)]
Fix parsing of \x0\ in partial strings
Mark Thom [Tue, 4 Mar 2025 08:17:20 +0000 (00:17 -0800)]
copy partial string blocks properly in all solutions predicates
Mark Thom [Sat, 1 Mar 2025 21:58:50 +0000 (13:58 -0800)]
run cargo fmt
Mark Thom [Sat, 7 Dec 2024 05:47:36 +0000 (21:47 -0800)]
remove pstr_vec
Mark Thom [Tue, 25 Feb 2025 03:54:35 +0000 (19:54 -0800)]
globalize ALIGN_CELL/ALIGN, fix compute_pstr_size
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.
Emilie Burgun [Sun, 29 Dec 2024 21:04:40 +0000 (22:04 +0100)]
Fix Heap::drop not accounting for null-initialized HeapInner
Mark Thom [Fri, 15 Nov 2024 05:04:09 +0000 (22:04 -0700)]
dereference clause_clause value, reserve more parser space (#2579)
Mark Thom [Fri, 1 Nov 2024 04:58:29 +0000 (22:58 -0600)]
unmark_cell_bits! in push_literal (#2645)
Mark Thom [Tue, 14 May 2024 00:00:56 +0000 (18:00 -0600)]
introduce bespoke Heap type for in-heap partial strings
Mark Thom [Wed, 31 Jul 2024 20:04:55 +0000 (14:04 -0600)]
variable revision
Mark Thom [Tue, 16 Jul 2024 21:38:22 +0000 (15:38 -0600)]
remove Term
Mark Thom [Mon, 13 May 2024 20:40:09 +0000 (14:40 -0600)]
restore ubuntu testing to ci.yml with rust version 1.77
Mark Thom [Tue, 8 Jul 2025 04:30:04 +0000 (21:30 -0700)]
throw syntax error after parsing infinite floats (#2998)
Mark Thom [Tue, 8 Jul 2025 04:28:07 +0000 (21:28 -0700)]
don't skip '.' char in parse_number_from_string (#2997)
Mark Thom [Sat, 5 Jul 2025 07:58:28 +0000 (00:58 -0700)]
modify number_token to produce partial lexing results (#2986)
Mark Thom [Wed, 2 Jul 2025 01:40:49 +0000 (18:40 -0700)]
be more careful about concatenating '.' in parse_number_from_string (#2986)
Mark Thom [Tue, 17 Jun 2025 04:02:38 +0000 (21:02 -0700)]
Merge pull request #2970 from notoria/clpz
Make `(mod)/2` stronger in CLP(Z)
Mark Thom [Tue, 17 Jun 2025 04:02:20 +0000 (21:02 -0700)]
Merge pull request #2980 from triska/hophrase
use nonterminal indicators, correct meta_predicate/1 for higher-order phrase//N
Markus Triska [Sat, 14 Jun 2025 20:43:35 +0000 (22:43 +0200)]
use nonterminal indicators, correct meta_predicate/1 for higher-order phrase//N
Noted by @UWN in https://github.com/mthom/scryer-prolog/discussions/2872.
Many thanks!
Mark Thom [Wed, 28 May 2025 05:18:47 +0000 (22:18 -0700)]
Merge pull request #2965 from rotu/zygomorphic-puma
Remove obsolete compatibility for Rust<1.80
notoria [Sun, 25 May 2025 11:39:31 +0000 (13:39 +0200)]
Strengthened `(mod)/2` in CLP(Z)
?- 8 #= -1 mod #Y.
clpz:(Y in 9..sup), clpz:(-1 mod#Y#=8). % unexpected
Expected: Y = 9
?- 8 #= -12 mod #Y.
clpz:(Y in 9..sup), clpz:(-12 mod#Y#=8). % unexpected
Expected `Y` with finite domain
notoria [Sun, 25 May 2025 11:38:56 +0000 (13:38 +0200)]
Strengthened `(mod)/2` in CLP(Z)
?- 0 #= 2 mod #Y.
clpz:(Y in inf.. -1\/1..sup), clpz:(2 mod#Y#=0). % unexpected
Expected: clpz:(Y in-2.. -1\/1..2), clpz:(2 mod Y#=0)
notoria [Sun, 25 May 2025 11:37:28 +0000 (13:37 +0200)]
Strengthened `(mod)/2` in CLP(Z)
?- Z = 8, X = 9, #Z #= #X mod #Y.
Z = 8, X = 9, clpz:(Y in 9..sup), clpz:(9 mod#Y#=8). % unexpected
Expected: false
Dan Rose [Thu, 22 May 2025 18:57:55 +0000 (13:57 -0500)]
Remove obsolete compatibility for Rust<1.80
Mark Thom [Tue, 20 May 2025 05:47:41 +0000 (22:47 -0700)]
Merge pull request #2955 from rotu/radical-cockroach
Remove xor as a builtin infix operator
Mark Thom [Wed, 14 May 2025 04:26:29 +0000 (21:26 -0700)]
Merge pull request #2956 from bakaq/update_arcu_libffi
Update dependencies and fix breaking changes in libffi-sys and arcu
Dan Rose [Tue, 13 May 2025 20:00:00 +0000 (15:00 -0500)]
xor is not a standard operator
bakaq [Tue, 13 May 2025 22:53:13 +0000 (19:53 -0300)]
Update dependencies and fix breaking changes in libffi-sys and arcu
Mark Thom [Fri, 9 May 2025 05:53:04 +0000 (22:53 -0700)]
Merge pull request #2950 from triska/meetups
link to Scryer Prolog Meetup 2025 page and its announcement
Markus Triska [Fri, 9 May 2025 05:38:13 +0000 (07:38 +0200)]
link to Scryer Prolog Meetup 2025 page and its announcement
Mark Thom [Fri, 2 May 2025 00:35:30 +0000 (17:35 -0700)]
Merge pull request #2802 from adri326/null-stream-safety
Fix UB when interacting with Stream::Null(_)
Mark Thom [Thu, 1 May 2025 01:51:43 +0000 (18:51 -0700)]
Merge pull request #2930 from triska/meetups
ADDED: Section about Scryer Prolog Meetups.
Markus Triska [Wed, 30 Apr 2025 17:53:33 +0000 (19:53 +0200)]
correct grammar
Markus Triska [Wed, 30 Apr 2025 17:53:10 +0000 (19:53 +0200)]
ADDED: Section about Scryer Prolog Meetups.
Mark Thom [Wed, 30 Apr 2025 06:32:48 +0000 (23:32 -0700)]
Merge branch 'null-stream-safety' of https://github.com/adri326/scryer-prolog into adri326-null-stream-safety
Mark Thom [Wed, 30 Apr 2025 04:41:07 +0000 (21:41 -0700)]
Merge pull request #2901 from matteob8/patch-1
Update http_server.pl
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)
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
bakaq [Tue, 22 Apr 2025 20:32:36 +0000 (17:32 -0300)]
Remove Ubuntu 20.04 runner
bakaq [Tue, 22 Apr 2025 20:10:29 +0000 (17:10 -0300)]
Bump MSRV and update flake.lock
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
matteob8 [Mon, 21 Apr 2025 18:54:43 +0000 (20:54 +0200)]
Update http_server.pl
changed top/0 to the more meaningful run/0 name.
matteob8 [Mon, 21 Apr 2025 17:13:20 +0000 (19:13 +0200)]
Update http_server.pl
Avoid overwriting of predicate and made explicit reference to the loading of library(http/http_server).
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.
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
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
Markus Triska [Sat, 12 Apr 2025 07:05:28 +0000 (09:05 +0200)]
enumerate applications, add AD4M by @coasys
constraintAutomaton [Sat, 12 Apr 2025 05:18:00 +0000 (07:18 +0200)]
Example update to use iterable.
constraintAutomaton [Sat, 12 Apr 2025 05:00:14 +0000 (07:00 +0200)]
Merge branch 'master' into doc/update-readme-wasm-example
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
Mark Thom [Fri, 11 Apr 2025 05:39:35 +0000 (22:39 -0700)]
mark cyclic lists with ellipses at the head (#2635)
constraintAutomaton [Thu, 10 Apr 2025 17:02:04 +0000 (19:02 +0200)]
Made WasmQueryState an iterable.
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
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!
constraintAutomaton [Tue, 8 Apr 2025 18:13:02 +0000 (20:13 +0200)]
Fix DOM manipulation to avoid deprecated functions in Sudoku solver example.
constraintAutomaton [Tue, 8 Apr 2025 17:29:34 +0000 (19:29 +0200)]
better identation of the knowledge base.
constraintAutomaton [Tue, 8 Apr 2025 17:17:20 +0000 (19:17 +0200)]
Useless console.log in the example deleted.
constraintAutomaton [Tue, 8 Apr 2025 17:12:27 +0000 (19:12 +0200)]
Update README with working WebAssembly usage example.
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
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.
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
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.
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.
Aman Verma [Mon, 31 Mar 2025 09:03:31 +0000 (04:03 -0500)]
Install correct locked version of iai-callgrind-runner in CI.
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
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.
Aman Verma [Fri, 28 Mar 2025 02:02:14 +0000 (21:02 -0500)]
Update ordered-float to 5.0.0.
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.