Commit Graph
1049 Commits
Author SHA1 Message Date
Mark Thom cf9e667b50 Merge pull request #3311 from Skgland/cleanup2
some cleanup and fixes
2026-05-23 18:27:50 -06:00
Mark Thom 3f0b471227 Merge pull request #3333 from 0nkery/lazy-lock
replace lazy_static macro with std::sync::LazyLock
2026-05-23 09:51:22 -06:00
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
Skgland 0c313a0849 upgrade libffi dependency 2026-05-08 22:36:41 +02:00
Skgland b4db85c8c3 don't erase ptr type early when construction a Cons HeapCellValue
rather than passing an address as usize pass the ArenaHeader pointer
similarly don't return a u8 ptr but use a ArenaHeader pointer instead

Don't convert the pointer to a ConsPtr by going through native endian
bytes in between.
We are exploiting the fact that the 3 least significant bytes are zero
for pointer to types of alignment 8 and we expect these to line up with
the f, m, and tag field at the end of the ConsPtr struct, but using
native endiannes for this would only work on big endian systems.
2026-04-25 18:12:31 +02:00
Skgland 6765921666 fix unused import warning on windows 2026-04-25 16:19:58 +02:00
Skgland ff293a56e6 fix large enum variant size difference warning of PermVarAllocation
by wrapping BranchNumber in an Arc.
PermVarAllocation::Done had size 208 and is now down to 32.
A Box rather than an Arc would be smaller, but it looks like BranchNumber/BranchDesignator are clones a bunch so I expect it to be beneficial to reduce allocations both of the Box itself as well as its content.
2026-04-25 16:19:53 +02:00
Mark Thom 8dffd72db5 replace tabs with spaces 2026-04-21 16:22:38 -07:00
Mark Thom 703a6dddd1 dereference compare_term_test args down from stack (#3286, #3295) 2026-04-21 16:02:55 -07:00
Mark Thom 5ea262e1d3 replace tabs with spaces 2026-04-21 15:02:14 -07:00
Mark Thom 010b00f349 take Lis index from rd in copy_var (#3298) 2026-04-21 14:31:53 -07:00
Mark Thom 9cf0d8b484 Merge pull request #3274 from no382001/issue3262
fix read/1 on non-TTY stdin blocking until newline
2026-04-18 18:16:53 -06:00
Mark Thom 87f97c7e5c Merge pull request #3276 from Skgland/cleanup
remove unused file
2026-04-08 22:18:32 -06: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
Skgland bb9c1cf5a2 remove unused file 2026-04-03 00:16:59 +02:00
no382001andBennet Bleßmann 28f8da5ce9 restructure based on suggestion
Co-authored-by: Bennet Bleßmann <3877590+Skgland@users.noreply.github.com>
2026-03-31 21:14:54 +02:00
no382001 c065b52778 fix read/1 on non-TTY stdin blocking until newline #3262 2026-03-31 15:52:27 +02: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 3c9c7ade8d use checked_add to prevent silent overflow 2026-03-27 22:00:54 +01:00
Skgland 5fc21241d6 hint to the compiler/branch-predictor that
we expect p to be in bound

if we are suffiently certain that p can never be oob
unsafe get_unchecked could be used to
eliminate bounds checking all together
which should improve performance further.
2026-03-21 19:01:52 +01:00
Skgland 833c3bd77f run rustfmt 2026-03-21 14:24:13 +01:00
Skgland 153f04b72a adjust interrupt handling
we used to spend ~5.8% of the time on getting the next value of the 0..INSTRUCTIONS_PER_INTERRUPT_POLL iterator

increment on Wrapping<u8> now only takes ~0.58 of the time
2026-03-21 14:20:11 +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 79a9b950cb Merge pull request #3243 from danilp-id/master
fix http stream not being closed fully
2026-03-19 23:36:58 -07: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 4d144ea819 Merge pull request #3252 from Skgland/towards-a-crate-without-syn@1
replace custom modular_bitfields fork with update upstream
2026-03-09 22:08:28 -07: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.andBennet Bleßmann 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 7d0d61d789 remove no longer necessary allows 2026-02-20 22:45:09 +01:00
Skgland 5ef5a3f30a replace custom modular_bitfields fork with update upstream
part of #2468
2026-02-20 22:40:33 +01:00
Danil Platonov 337d9c5583 move drop to impl Drop 2026-01-26 04:57:28 -08:00
Danil Platonov 26523139a8 fix http stream not being closed fully 2026-01-25 03:16:37 -08: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 1a8c4f9b03 cargo fmt fixes 2026-01-14 20:39:48 -08:00
Mark Thom c2e1ded852 remove variant_hashing.rs and related instructions 2026-01-14 20:39:48 -08:00
Mark Thom 69a367d1c9 do not retain attributes in solutions of findall (#3020) 2026-01-14 20:39:48 -08:00
Mark Thom e2bdf59c81 fix cargo fmt 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
Mark Thom 9089f9ddb4 use branch numbers to detect branch subsumption 2026-01-14 20:34:06 -08:00
Skgland 5064760b1e fix spelling 2026-01-10 18:13:59 +01:00
Skgland eca4262be6 fix clippy lints 2026-01-10 17:52:34 +01:00
Skgland 129cca53ed throw error(resource_error(memory), []) when the list length exceeds usize. 2025-12-10 00:04:24 +01:00