Skgland
d50d425099
ensure pdl is pushed/popped in pairs
2026-05-17 19:48:52 +02:00
Skgland
3c9c7ade8d
use checked_add to prevent silent overflow
2026-03-27 22:00:54 +01:00
Skgland
833c3bd77f
run rustfmt
2026-03-21 14:24:13 +01: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
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
Skgland
193cfabc66
detect recursive throw_resource_error and panic instead of causing a segmentation fault
2025-12-07 21:08:17 +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
f2e044e5b8
remove interms field from MachineState
2025-11-24 22:19:36 -08:00
Skgland
e9e97fe82a
handle machine heap/stack allocation error
2025-11-19 22:17:24 +01:00
Thierry Marianne
8afcc7742b
handle Stream variants qualified as input stream by is_input_stream
...
Signed-off-by: Thierry Marianne <thierry@marianne.io >
2025-09-15 08:33:47 +02:00
Thierry Marianne
e9834ffa3e
throw permission_error when non-input stream is read
...
Signed-off-by: Thierry Marianne <thierry@marianne.io >
2025-09-15 08:28:23 +02:00
Thierry Marianne
28ec457159
merge if let, match structures
...
Signed-off-by: Thierry Marianne <thierry@marianne.io >
2025-09-14 20:10:44 +02: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
fdbaf6ac9d
handle named tcp and http read stream on term reading from user input
2025-09-14 17:02:09 +02:00
Thierry Marianne
5c341ce371
handle input file stream on term reading from user input
2025-09-14 17:02:09 +02: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
80bf276e09
run rustfmt
2025-08-24 19:57:54 +02:00
Skgland
20d52c093a
add ffi:{allocate,read_ptr,deallocate}
2025-08-24 19:56:23 +02:00
Mark Thom
39d02a0caf
clear rustc warnings ( #3051 )
2025-08-23 14:34:49 -07:00
Bennet Bleßmann
6885074006
fix clippy::unit_arg
2025-07-31 21:47:07 +02:00
Mark Thom
1332611f83
use OffsetTableImpl without synchronization by default
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
Mark Thom
d6b6eda77d
fix cont function crashes ( #2920 )
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
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
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
f7bbdfe73a
variable revision
2025-07-07 21:54:08 -07:00
Mark Thom
1ef681bd21
remove Term
2025-07-07 21:54:08 -07:00
Bennet Bleßmann
058b9c5e51
switch invalid term from type to domain error
2024-08-05 21:25:44 +02:00
Bennet Bleßmann
5a0abd713e
change declaration to directive
2024-08-05 21:25:43 +02:00
Bennet Bleßmann
df33da111e
ajust/add devlaration errors to be more standard compliant
2024-08-05 21:25:43 +02:00
Bennet Bleßmann
880e22d164
adjust errors to be more standard compliant
2024-08-05 21:25:42 +02:00
Bennet Bleßmann
0284a2092d
reduce span of unsafe block
2024-07-07 11:30:37 +02:00
Mark
3841b29db8
fix copy_term/2 variable copying bug in lists ( #923 , #2127 )
2023-11-21 14:52:35 -07:00
Mark
54166b91eb
add global_count inference counter that is always incremented ( #2009 )
2023-11-20 16:24:31 -07:00
infogulch
9444e62df9
Resolve lints and format
2023-11-04 02:16:54 -05:00
Nicolas Luck
ee1bd9e006
Merge branch 'master' into library-use-case
2023-11-02 11:12:54 +01:00
Mark
dfd9e43405
correct (\+)/1 ( #2141 )
2023-10-31 23:58:59 -06:00
Nicolas Luck
640c637ca8
Merge branch 'master' into library-use-case
...
# Conflicts:
# Cargo.lock
# Cargo.toml
# src/http.rs
# src/machine/mock_wam.rs
# src/machine/mod.rs
# src/machine/system_calls.rs
2023-10-05 12:06:47 +02:00
Mark
6fa00b5b55
get rid of inference_limit_exceeded(B) as an error term ( #2023 )
2023-09-30 22:35:46 -06:00
Mark
62c23166fa
implement ListElisionPolicy to restore previous printer behavior
2023-09-30 16:00:15 -06:00
Nicolas Luck
4968fa0024
Remove debugging println!
2023-09-18 19:31:56 +02:00
Nicolas Luck
136463c92e
Merge branch 'master' into library-use-case
...
# Conflicts:
# Cargo.toml
# src/atom_table.rs
# src/bin/scryer-prolog.rs
# src/http.rs
# src/machine/mock_wam.rs
# src/machine/mod.rs
# src/machine/system_calls.rs
2023-09-13 18:13:14 +02:00
Fayeed Pawaskar
7f0536b51d
Merge branch 'master' into dashu-fixes
2023-09-10 21:51:02 +05:30
Fayeed Pawaskar
af76659830
Removed value method and use deref to get type
2023-09-10 21:40:22 +05:30
Bennet Bleßmann
01aeb7515d
[WIP] move towards lockless AtomTable
2023-09-05 19:39:46 +02:00
Bennet Bleßmann
13cbff7eab
[WIP] fix deadlock in AtomTable::build_with
2023-09-05 19:12:22 +02:00