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
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
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
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
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
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
16b3bea48e
correct and simplify compute_pstr_size
2025-07-07 22:38:12 -07:00
Mark Thom
e20363b462
correct create_partial_string ( #2593 )
2025-07-07 22:38:12 -07:00
Mark Thom
549a26dd03
restore more tabu_list use to compare_term_tests ( #2633 )
2025-07-07 22:38:12 -07:00
Mark Thom
8981ab72d1
restore tabu_list insertions to PStr-Lis comparisons ( #2636 )
2025-07-07 22:38:12 -07:00
Mark Thom
22080f3787
move CodeIndex to F64Table-like table
2025-07-07 22:38:12 -07:00
Mark Thom
9e1e99f961
Revert "remove Term"
...
This reverts commit 3b5879841aedecba5057c70c71da0ba23e5cd84a.
2025-07-07 22:38:10 -07:00
Mark Thom
eef7b06919
make write_with forward return values, use it to correct partial string handling
2025-07-07 22:02:27 -07:00
Mark Thom
2ad870c740
read Str focus properly in build_meta_predicate_clause
2025-07-07 22:02:27 -07:00
Mark Thom
3dee07f648
some fixes in response to miri
2025-07-07 22:02:27 -07:00
bakaq
9daf016d63
Fix parsing of \x0\ in partial strings
2025-07-07 22:02:27 -07:00
Mark Thom
fadcfb966e
copy partial string blocks properly in all solutions predicates
2025-07-07 22:02:27 -07:00
Mark Thom
57f76169fd
run cargo fmt
2025-07-07 22:02:27 -07:00
Mark Thom
ae4d12a123
remove pstr_vec
2025-07-07 22:02:27 -07:00
Mark Thom
3c85ef2724
globalize ALIGN_CELL/ALIGN, fix compute_pstr_size
2025-07-07 21:59:50 -07:00
Emilie Burgun
15f1320d05
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.
2025-07-07 21:59:50 -07:00
Emilie Burgun
7b357ba84d
Fix Heap::drop not accounting for null-initialized HeapInner
2025-07-07 21:59:50 -07:00
Mark Thom
c0cd371056
dereference clause_clause value, reserve more parser space ( #2579 )
2025-07-07 21:59:50 -07:00
Mark Thom
c0f72704ec
introduce bespoke Heap type for in-heap partial strings
2025-07-07 21:59:50 -07:00
Mark Thom
f7bbdfe73a
variable revision
2025-07-07 21:54:08 -07:00
Mark Thom
1ef681bd21
remove Term
2025-07-07 21:54:08 -07:00
Mark Thom
778068129f
don't skip '.' char in parse_number_from_string ( #2997 )
2025-07-07 21:28:07 -07:00
Mark Thom
ce56b5ed6b
modify number_token to produce partial lexing results ( #2986 )
2025-07-05 00:58:28 -07:00
Mark Thom
8e01eea440
be more careful about concatenating '.' in parse_number_from_string ( #2986 )
2025-07-01 18:40:49 -07:00
Dan Rose
9456517bed
Remove obsolete compatibility for Rust<1.80
2025-05-22 14:00:42 -05:00
Mark Thom
90f4716cc3
Merge branch 'null-stream-safety' of https://github.com/adri326/scryer-prolog into adri326-null-stream-safety
2025-04-29 23:32:48 -07:00
notoria
4f3843742c
Fix conversion from float to rational
2025-02-28 08:00:00 +01:00
revue_2_presse
5d468d3e19
Replace futures::executor::block_on with tokio::block_in_place
2025-02-25 20:31:19 +01:00
Mark Thom
4fc4152eac
Merge pull request #2817 from adri326/fix-2815-run_module_predicate-backtrack
...
Fix backtracking on the topmost predicate triggering UB in run_module_predicate
2025-02-16 22:47:49 -08:00
bakaq
3fc5709c50
Add builder style configuration of user input, output and error
2025-02-16 04:04:48 -03:00
bakaq
28926486e0
More stream tests
2025-02-16 04:04:48 -03:00
bakaq
ad211d5e05
Disallow null streams in output
2025-02-16 04:04:48 -03:00
bakaq
5386c183d2
Make input and output stream configuration public
2025-02-16 04:04:48 -03:00
bakaq
0a2457943e
Configure streams separately
2025-02-16 04:04:48 -03:00
bakaq
baae1dca15
Refactor UserInput to use channels
2025-02-16 04:04:48 -03:00
bakaq
4e032c8a28
Test for callback streams
2025-02-16 04:04:48 -03:00
bakaq
7a6620b52d
Add input stream channel
2025-02-16 04:04:48 -03:00