Dmitry Shlagoff
2bbb6487ec
remove redundant closure
2026-05-12 16:12:33 +02:00
Dmitry Shlagoff
095fa1227a
replace lazy_static macro with std::sync::LazyLock
2026-05-12 15:40:38 +02:00
Mark Thom
3e2f3ecfdb
Merge pull request #3273 from no382001/issue2914
...
fix panic in current_prolog_flag/2 when arguments are the same variable
2026-04-04 13:06:11 -06:00
no382001
6a10c6d6a5
fix panic in current_prolog_flag/2 when arguments are the same variable
2026-03-31 12:01:00 +02:00
Skgland
8aab887388
switch from Integer to u128
...
- u128 is only 16 bytes instead of 24
- incrementing u128 does not involve heap allocations
- u128 should be sufficent
it would take more than 2 sextilion years to overflow if we would be incrementing it every tick at 5GHz
i.e. 2^128-1 / 5 GHz / 60 / 60 / 24 / 356 > 2 sextilion
before this ~3.2% of the execution time of the program in https://github.com/mthom/scryer-prolog/issues/3265#issuecomment-4103176469 was spend in the increment_call_count function, after this change it's down to 0.3%
2026-03-21 13:36:40 +01:00
Mark Thom
b0b89a0aca
Merge pull request #3258 from no382001/fix_load_xml/3
...
load_xml was returning a single term instead of a list of nodes
2026-03-14 22:46:03 -07:00
no382001
025da8315b
load_xml was returning a single term instead of a list of nodes
2026-03-10 12:20:34 +01:00
Mark Thom
02c927bb83
Merge pull request #3241 from Skgland/parse-error-improvements
...
change `ParserError` type
2026-03-09 22:07:03 -07:00
Mark Thom
4a8388a6e9
Merge pull request #3189 from Skgland/fix-function_casts_as_integer
...
fix `function_casts_as_integer` warning
2026-03-09 22:06:33 -07:00
Thierry Marianne
4bd0ff0fcb
cargo fmt fixes
...
Signed-off-by: Thierry Marianne <thierry@marianne.io >
2026-03-04 14:04:47 +01:00
Thierry Marianne
ed59aa05b0
apply suggestion
...
Signed-off-by: Thierry Marianne <thierry@marianne.io >
2026-03-04 14:01:17 +01:00
Thierry M.
fa21ff4813
use CStr .to_str() method
...
Co-authored-by: Bennet Bleßmann <3877590+Skgland@users.noreply.github.com >
2026-03-04 14:00:44 +01:00
Thierry Marianne
fae9ca1bb9
fix utf-8 panic
...
Signed-off-by: Thierry Marianne <thierry@marianne.io >
2026-03-04 12:45:58 +01:00
Skgland
18b476af28
make ParserError a struct with an enum kind field
2026-01-24 04:08:40 +01:00
Skgland
3343188756
replace pairs of usize with location struct
2026-01-24 04:08:40 +01:00
Mark Thom
69a367d1c9
do not retain attributes in solutions of findall ( #3020 )
2026-01-14 20:39:48 -08:00
Mark Thom
6284aa3a3f
add variant_hash and is_non_variant to fix setof/3, bagof/3
2026-01-14 20:39:48 -08:00
Mark Thom
29cd80510b
replace compare_term_test with parallel iterator, add is_not_variant
2026-01-14 20:39:45 -08:00
Skgland
5064760b1e
fix spelling
2026-01-10 18:13:59 +01:00
Skgland
129cca53ed
throw error(resource_error(memory), []) when the list length exceeds usize.
2025-12-10 00:04:24 +01:00
Skgland
797a8f8611
fix function_casts_as_integer warning
...
Comparing addresses of function pointers is brittle.
Functions may be duplicated resulting in function pointers to the same function to compare !=.
Functions may be merged/de-duplicated resulting in function pointers to different function to compare ==.
The later shouldn't be relevant here as the function differ in behavior, but mentioning it for completeness.
2025-12-04 23:35:23 +01:00
Mark Thom
96a9dfcc1b
Merge pull request #3185 from mthom/install_verify_attr_opt
...
Optimize `verify_attr` by removing the need to scan instructions
2025-12-03 19:10:46 -07:00
Mark Thom
4bd16b8a2e
revise InstallVerifyAttrs to remove need for predicate scanning ( #3175 )
2025-11-25 23:17:51 -08:00
Skgland
e9e97fe82a
handle machine heap/stack allocation error
2025-11-19 22:17:24 +01:00
Skgland
248b05c992
use as_bytes().to_vec() instead of bytes().collect()
...
copying a slice into a vec should be easier to optimize by the complier than collecting a byte iteration into a vec
2025-11-19 19:23:41 +01:00
Thierry Marianne
042631cb4c
run rustfmt
...
Signed-off-by: Thierry Marianne <thierry@marianne.io >
2025-09-21 22:52:12 +02:00
Thierry Marianne
32b6458deb
dereferencing registers to access stack variables
...
deref register to access stack variable for `directory_exists/1`
deref register to access stack variable for `directory_files/2`
deref register to access stack variable for `delete_directory/1`
deref register to access stack variable for `delete_file/1`
deref registers to access stack variable for `file_copy/2`
deref register to access stack variable for `file_exists/1`
deref register to access stack variable for `file_size/2`
deref register to access stack variable from `file_time` function
deref register to access stack variable for `make_directory/1`
deref register to access stack variable for `make_directory_path/1`
deref register to access stack variable for `path_canonical/2`
deref registers to access stack variables for `rename_file/2`
Signed-off-by: Thierry Marianne <thierry@marianne.io >
2025-09-21 22:52:12 +02:00
Mark Thom
e9ff1348b1
Merge pull request #3084 from thierrymarianne/set_stream
...
Prevent top-level from panicking when calling `set_input/1` with `Stream` variants.
2025-09-17 22:20:10 -07:00
Mark Thom
72cdba82f5
implement unify_ginteger to address FIXME in skip_max_list_cycle
2025-09-15 21:58:38 -07:00
Mark Thom
24f431e2ca
fix off-by-one lam loop ( #3081 )
2025-09-15 21:52:43 -07:00
Thierry Marianne
1ece558a71
match against Stream HttpRead(), InputFile(_) and NamedTcp(_) variants in read_term_from_user_input
...
Signed-off-by: Thierry Marianne <thierry@marianne.io >
2025-09-14 19:19:26 +02:00
Thierry Marianne
be18eda696
do not reset user input Stream of kind different from Readline(_), Byte(_)
...
Signed-off-by: Thierry Marianne <thierry@marianne.io >
2025-09-14 19:19:21 +02:00
Mark Thom
ffea37d899
fix f64 indexing, introduce bespoke F64Table type ( #3065 )
2025-09-11 23:58:36 -07:00
Mark Thom
368c9fd9dd
Merge pull request #3063 from Skgland/ffi++
...
ffi API extension and fixes
2025-08-28 20:49:41 -07:00
Skgland
78c08b87b6
cleanup ffi error handling and use Atom instead of &str in appropriate places
2025-08-26 00:01:35 +02:00
Skgland
6f3f66c407
fix builds without ffi feature
2025-08-24 21:08:52 +02:00
Skgland
8bc8171ec7
fix define_foreign_struct
2025-08-24 19:56:26 +02:00
Skgland
176858ad42
fix map_ffi_arg
2025-08-24 19:56:26 +02:00
Skgland
eba681786d
make map_ffi_args a method and throw an instantiation error when encountering a variable
2025-08-24 19:56:25 +02:00
Skgland
f4297e365f
don't crash on empty list and differentiate list head not being string like
2025-08-24 19:56:25 +02:00
Skgland
d1356db7e3
include a culprit in ffi_error
2025-08-24 19:56:24 +02:00
Skgland
20d52c093a
add ffi:{allocate,read_ptr,deallocate}
2025-08-24 19:56:23 +02:00
Peter Mikkelsen
39cf60bc05
Don't use "readline" input functionality for the following builtins:
...
* peek_byte
* peek_char
* peek_code
* get_byte
* get_char
* get_code
* get_n_chars
2025-08-22 11:02:59 +02:00
Skgland
348c5029b3
reduce msrv back to 1.85
2025-08-18 20:52:15 +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
af3792f79a
library(numerics), special funs from crate puruspe
2025-08-10 10:01:01 -04:00
Bennet Bleßmann
b2d639b159
fix arity of prcess_wait builtin errors
2025-08-01 20:49:14 +02:00
Bennet Bleßmann
dc08a4ab11
get process_create working and add tests
2025-08-01 20:47:22 +02:00
Bennet Bleßmann
dc495f10f8
change behaviour in supposedly unreachable cases
2025-08-01 20:46:31 +02:00