Skgland
3a4dfc46da
add ffi helpers
2025-08-24 19:56:23 +02:00
Skgland
d8346b1651
don't place allocate, read_ptr and deallocate between use_foreign_module and its helper predicates
2025-08-24 19:56:23 +02:00
Skgland
20d52c093a
add ffi:{allocate,read_ptr,deallocate}
2025-08-24 19:56:23 +02:00
Mark Thom
8af0a19130
Merge pull request #3042 from dcnorris/numerics
...
library(numerics), special funs from crate puruspe
2025-08-11 22:26:01 -07:00
Mark Thom
c0fb3fd429
Merge pull request #2786 from Skgland/ffi-f64-tests
...
add ffi tests & fix ffi
2025-08-10 13:14:15 -07:00
David C. Norris
a8fa8993e1
Address several comments by @triska
2025-08-10 11:45:21 -04:00
David C. Norris
af3792f79a
library(numerics), special funs from crate puruspe
2025-08-10 10:01:01 -04:00
Markus Triska
ee39be4361
ADDED: resource_error/1
2025-08-09 10:22:28 +02:00
Markus Triska
bc4689ca4a
ADDED: representation_error/1
2025-08-09 10:19:49 +02:00
Markus Triska
86dc22a850
ADDED: variants of errors promoting call_with_error_context/2
...
A good example of call_with_error_context/2 was recently provided by
@Skgland in d907f86c8d . Many thanks!
2025-08-09 10:11:25 +02:00
Markus Triska
a8da2b6a99
ISO: remove nonstandard operator meta_predicate.
...
Use functional notation instead for declarations.
This addresses #2822 .
2025-08-02 10:22:50 +02:00
Mark Thom
a43bac8fd8
Merge pull request #3021 from mthom/rebis-dev
...
Merge rebis-dev to master
2025-08-02 00:01:39 -07:00
Bennet Bleßmann
d907f86c8d
use call_with_error_context
2025-08-01 20:49:43 +02:00
Bennet Bleßmann
45041be336
fix culprit
2025-08-01 20:49:24 +02:00
Bennet Bleßmann
3a6b92d227
more tests
2025-08-01 20:49:03 +02:00
Bennet Bleßmann
143f32be23
adjust options checking and add more tests
2025-08-01 20:48:44 +02:00
Bennet Bleßmann
d0a6dc9df2
address comment by triska
...
https://github.com/mthom/scryer-prolog/pull/3009#discussion_r2233221091
2025-08-01 20:48:34 +02:00
Bennet Bleßmann
62e43a3ab0
use functor/3 for must_be_known_options
2025-08-01 20:48:24 +02:00
Bennet Bleßmann
eb82d1b6d4
reformat ;
2025-08-01 20:48:13 +02:00
Bennet Bleßmann
70d65bcea8
add another test and remove unecessary module qualification
2025-08-01 20:48:03 +02:00
Bennet Bleßmann
25edde2eb4
replace filter by tfiltert and fix Pipe{Reader,Writer} streams
2025-08-01 20:47:51 +02:00
Bennet Bleßmann
ab675e071a
adjust error kind
2025-08-01 20:47:41 +02:00
Bennet Bleßmann
dc08a4ab11
get process_create working and add tests
2025-08-01 20:47:22 +02:00
Bennet Bleßmann
1120bcde29
add documentation
2025-08-01 20:47:11 +02:00
Bennet Bleßmann
d2ffd4f4bf
adjust error for duplicate options
2025-08-01 20:35:12 +02:00
Bennet Bleßmann
87dbad2294
fix rename pid to process
2025-08-01 20:35:01 +02:00
Bennet Bleßmann
ca52c65902
don't remove the child on wait/kill
...
- important for wait with timout(0) as we may want to try again until the process has realy exited.
- make process_release release the process instead
2025-08-01 20:33:15 +02:00
Bennet Bleßmann
7f233da10c
fix timeout default value in process_wait/3
2025-08-01 20:28:17 +02:00
Bennet Bleßmann
ff546a0f9a
incorporate suggestion by triska
2025-08-01 20:28:07 +02:00
Bennet Bleßmann
97e2e5d7f0
implement process_release/1, process_wait/2, process_wait/3, and process_kill/1
2025-08-01 20:27:27 +02:00
Bennet Bleßmann
8971809c83
adjust errors
2025-08-01 20:21:13 +02:00
Bennet Bleßmann
e321f29b9c
rename pid to process
2025-08-01 20:21:02 +02:00
Bennet Bleßmann
129c80bf16
undo changes to error.pl
2025-08-01 20:20:52 +02:00
Bennet Bleßmann
183761eba4
adjust default cwd
2025-08-01 20:20:41 +02:00
Bennet Bleßmann
6c7833b9c7
restructure option parsing
2025-08-01 20:20:31 +02:00
Bennet Bleßmann
2b052bf8dd
fix more things
2025-08-01 20:20:09 +02:00
Bennet Bleßmann
003e9d4610
get it working
2025-08-01 20:19:54 +02:00
Bennet Bleßmann
ae0baf4893
[WIP] add support to spawn new processes
2025-08-01 20:18:13 +02:00
Bennet Bleßmann
dea43a0244
update docs
2025-08-01 19:42:02 +02:00
Dan Rose
49b30e9f81
Merge branch 'mthom:master' into patch-5
2025-07-08 18:03:16 -05:00
Bennet Bleßmann
725def07cd
fix crash when loading html
2025-07-07 22:39:47 -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
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
9e1e99f961
Revert "remove Term"
...
This reverts commit 3b5879841aedecba5057c70c71da0ba23e5cd84a.
2025-07-07 22:38:10 -07:00
Mark Thom
3dee07f648
some fixes in response to miri
2025-07-07 22:02:27 -07:00
Mark Thom
ae4d12a123
remove pstr_vec
2025-07-07 22:02:27 -07:00
Mark Thom
c0f72704ec
introduce bespoke Heap type for in-heap partial strings
2025-07-07 21:59:50 -07:00
Mark Thom
1ef681bd21
remove Term
2025-07-07 21:54:08 -07:00