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
bakaq
dd6533e76c
Add callback streams
2025-02-16 03:52:52 -03:00
Mark Thom
35c1880937
Merge pull request #2818 from adri326/stream-cleanup
...
Fix various issues around close/1 and stream realiasing
2025-02-12 23:23:11 -08:00
Emilie Burgun
f45b0bcfe8
Remove redundant alias resolution in at_end_of_stream/1, add corresponding tests for null streams
...
Also fixed at_end_of_stream/0 leaving a choicepoint.
2025-02-07 15:05:01 +01:00
Emilie Burgun
8966e175f1
[fixup] return that reading from a null stream wrote 0 bytes to the buffer
2025-02-07 14:35:27 +01:00
Emilie Burgun
d8213e29c5
Fix set_output/1 and set_input/1 not updating the alias
...
Before this change, the following set of queries would behave incorrectly:
```
?- open("/tmp/out.log", write, S), set_output(S).
prints(""), write("/tmp/out.log", "S = stream(...)").
?- write(user_output, hello).
prints("hello"), unexpected.
prints(""), write("/tmp/out.log", "hello"). % Expected, but not found.
```
Now, `set_output/1` and `set_input/1` properly bind the `user_output` and
`user_input` aliases, making the queries above behave as expected.
2025-02-06 23:01:38 +01:00
Emilie Burgun
7f2ce57ba7
Fix stream realiasing possibly shadowing other streams.
2025-02-06 23:01:33 +01:00
Emilie Burgun
949d316773
Fix realiased streams causing close/1 to leave a dangling stream
2025-02-06 23:00:00 +01:00
Emilie Burgun
0cf46d3ec4
Encapsulate accesses to IndexStore::streams and ::stream_aliases
...
These two fields are able to hold `Stream` instances, which predicates like `close/1`
expect to be managed properly for their correctness. To ensure that this is the case,
I have removed direct accesses to those two fields, so that they can be properly managed
in one place.
2025-02-06 23:00:00 +01:00