Bennet Bleßmann
fae5e13bd5
impl From rather than Into
2025-07-31 21:47:05 +02:00
Bennet Bleßmann
6d7c217227
fix unecessary mut
2025-07-31 21:47:05 +02:00
Bennet Bleßmann
166ec02973
ignore clippy::unbuffered_bytes in test helper functions
2025-07-31 21:47:04 +02:00
Bennet Bleßmann
1d26f98688
fix legacy int constants
2025-07-31 21:47:04 +02:00
Bennet Bleßmann
58b9a6ad69
ignore wrong self convention
2025-07-31 21:47:03 +02:00
Bennet Bleßmann
a639fec153
fix match/if-let can be simplified to ?
2025-07-31 21:47:03 +02:00
Bennet Bleßmann
495bcd73f2
fix unecessary return
2025-07-31 21:46:52 +02:00
Bennet Bleßmann
ae3019d923
fix unecessary reference/dereference
2025-07-31 21:46:51 +02:00
Bennet Bleßmann
72631b3e0b
fix clone on copy values
2025-07-31 21:28:39 +02:00
Bennet Bleßmann
8cc74b2af7
fix clippy::uninlined_format_args
2025-07-31 21:26:08 +02:00
Mark Thom
9b293cf1b6
detect end_of_file before end_of_stream in get_char ( #2990 )
2025-07-22 20:39:52 -07:00
Mark Thom
65dda019a2
allow abolish_clause to abolish empty dynamic clauses ( #3010 )
2025-07-20 16:55:07 -07:00
Mark Thom
4aa2a45736
fix variadic_functor
2025-07-16 21:52:40 -07:00
Mark Thom
4efceda8c5
fix parsing partial number tokens in other radixes ( #3000 )
2025-07-14 23:05:10 -07:00
Dan Rose
49b30e9f81
Merge branch 'mthom:master' into patch-5
2025-07-08 18:03:16 -05:00
Mark Thom
b78ccf8f28
fmt improvements
2025-07-08 13:47:08 -07:00
Mark Thom
e303e5a805
correct number_chars ( #2976 )
2025-07-07 22:44:05 -07:00
Mark Thom
762b63e1f4
use granular hierarchical locks in offset_table.rs
2025-07-07 22:44:02 -07:00
Mark Thom
2844b5a958
synchronize offset table growth with the borrowing of offset pointers
2025-07-07 22:39:47 -07:00
Mark Thom
1332611f83
use OffsetTableImpl without synchronization by default
2025-07-07 22:39:47 -07:00
Bennet Bleßmann
725def07cd
fix crash when loading html
2025-07-07 22:39:47 -07:00
Bennet Bleßmann
cbdd0fbf15
make Fixnum::build_with harder to accidentally misuse
...
change trait bound order for better
2025-07-07 22:39:34 -07:00
bakaq
87ca083cfa
Align the heap to the size of heap cells
2025-07-07 22:38:12 -07:00
bakaq
d01557f3c1
Add scan_slice_to_str_from_start
2025-07-07 22:38:12 -07:00
Mark Thom
8b009448f4
correct threshold marking in copy_structure ( #2920 )
2025-07-07 22:38:12 -07:00
Markus Triska
709dc041eb
FIXED: correct partial string tail calculation in arg/3
...
This addresses another aspect of #2924 , found by @haijinSk.
Thank you again!
Example:
?- "aaaaaaa" = [_,_,_,_,_,_|T], arg(2, T, 2).
false.
2025-07-07 22:38:12 -07:00
Markus Triska
8763a42c98
FIXED: arg/3 for partial strings
...
This address #2924 , reported by @haijinSk. Thank you a lot!
Example:
?- arg(2, "a", A).
A = [].
The fact that such a mistake in macro usage is even possible could be
a sign that the macro definition should be stricter.
2025-07-07 22:38:12 -07:00
Mark Thom
d6b6eda77d
fix cont function crashes ( #2920 )
2025-07-07 22:38:12 -07:00
Mark Thom
4e0493474e
replace deprecated unify_complete_string call with allocate_cstr
2025-07-07 22:38:12 -07:00
bakaq
a9847eef65
Migrate to strict and exposed provenance
2025-07-07 22:38:12 -07:00
Mark Thom
cb9b988905
allow unused_parens around let statement in functor! macro
2025-07-07 22:38:12 -07:00
Markus Triska
073ec4c1d0
FIXED: invoke correct predicate
...
Noted by Oleg Finkelstein. Many thanks!
2025-07-07 22:38:12 -07:00
Markus Triska
d51cbd67e0
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.
2025-07-07 22:38:12 -07:00
Markus Triska
e9bb41f0d6
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 .
2025-07-07 22:38:12 -07:00
Mark Thom
b12d1ece17
correct heap-to-cell-index comparison in copy_slice_to_end ( #2906 )
2025-07-07 22:38:12 -07:00
Mark Thom
706ffe7ad9
fix functor! size calculations around indexing_code_ptr
2025-07-07 22:38:12 -07:00
Mark Thom
258244caf2
restore tab completion to REPL ( #2575 )
2025-07-07 22:38:12 -07:00
Mark Thom
39ea2d5899
make self.s_offset use bytes in case of HeapPtr::PStr in UnifyVoid ( #2897 )
2025-07-07 22:38:12 -07:00
Mark Thom
41b90c6e46
correct heap_print.rs for null characters being excluded from pstr regions of heap ( #2890 )
2025-07-07 22:38:12 -07:00
Mark Thom
6bcbb91e08
correctly increment s_offset for partial strings ( #2897 )
2025-07-07 22:38:12 -07:00
Mark Thom
e1e52338d6
fix typo in try_from_partial_string
2025-07-07 22:38:12 -07:00
Mark Thom
995a39419a
fix read_s logic around HeapPtr::PStrLoc ( #2894 )
2025-07-07 22:38:12 -07:00
Mark Thom
4644ea2404
repair cyclic PStrLoc handling in heap_print.rs
2025-07-07 22:38:12 -07:00
Mark Thom
f3cd6326a3
remove compare_pstr_to_string and related result type
2025-07-07 22:38:12 -07:00
Markus Triska
bf31d3f9a9
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!
2025-07-07 22:38:12 -07:00
Mark Thom
4c46f0e54d
correct GetPartialString ( #2887 )
2025-07-07 22:38:12 -07:00
Mark Thom
e563fd8e4f
generalize compare_pstr_segments
2025-07-07 22:38:12 -07:00
Mark Thom
1297a24469
ensure '\0' atom is static & never inlined ( #2880 )
2025-07-07 22:38:12 -07:00
Mark Thom
907e64e185
fix root reading of complete strings ( #2882 )
2025-07-07 22:38:12 -07:00
Mark Thom
46f259bf7d
some cosmetic tweaks
2025-07-07 22:38:12 -07:00