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
Skgland
5064760b1e
fix spelling
2026-01-10 18:13:59 +01:00
Skgland
e9e97fe82a
handle machine heap/stack allocation error
2025-11-19 22:17:24 +01:00
Skgland
119761ad10
ignore unused_parens warning
...
parens are generated by external macro
2025-11-18 21:42:00 +01:00
Bennet Bleßmann
ae3019d923
fix unecessary reference/dereference
2025-07-31 21:46:51 +02:00
bakaq
a9847eef65
Migrate to strict and exposed provenance
2025-07-07 22:38:12 -07:00
Mark Thom
1297a24469
ensure '\0' atom is static & never inlined ( #2880 )
2025-07-07 22:38:12 -07:00
Mark Thom
98dae9aecc
do not allow strings containing null characters to be inlined ( #2848 )
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
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
bakaq
d32f3ee2f3
Fix warnings
2024-09-06 18:42:31 -03:00
bakaq
ada9ba98cc
Make macros private
2024-09-06 17:17:04 -03:00
Bennet Bleßmann
17a816eff4
impl PartialEq<str> and PartialEq<&str> for Atom
2024-08-05 21:25:42 +02:00
Bennet Bleßmann
d87400afa0
switch Rcu to the arcu crate
...
The arcu crate is a more general implementation of the Rcu I implemented in here in scryer. It contains some bug-fixes regarding race-conditions in the Rcu update function, which could cause leaks and uses after free.
Source of the problem was the Relaxed load/strore/update of the reference count in side the Arc not being properly ordered with other load/stores.
2024-07-06 14:49:19 +02:00
Bennet Bleßmann
1ff995fedb
clippy: allow new without default
2024-07-06 13:04:55 +02:00
Bennet Bleßmann
91253917b4
remove rust_beta_channel feature
...
- the msrv (i.e. rust-version in Cargo.toml) is high enough that all gated code can now be used on stabe
2024-07-06 02:24:26 +02:00
Bennet Bleßmann
b8a3067744
resolve miri error for pstr_iter_tests in atom_table
...
relevant to mthom/scryer-prolog#2438
2024-07-06 01:21:03 +02:00
Bennet Bleßmann
7509cc1a07
adjust alignment calculation
...
- I think this used to overallocate when the alignment was already met
2024-07-06 00:13:46 +02:00
Mark
b70f121e46
use scryer-modular-bitfield on github, version bump
CI / build-test (ubuntu-22.04, true, stable, x86_64-unknown-linux-gnu) (push) Has been cancelled
CI / build-test (windows-latest, true, stable, x86_64-pc-windows-msvc) (push) Has been cancelled
CI / logtalk-test (push) Has been cancelled
CI / style (push) Has been cancelled
CI / build-test (--no-default-features, ubuntu-22.04, true, nightly, wasm32-unknown-unknown, --no-run --no-default-features) (push) Has been cancelled
CI / build-test (macos-11, true, stable, x86_64-apple-darwin) (push) Has been cancelled
CI / build-test (ubuntu-20.04, true, stable, x86_64-unknown-linux-gnu) (push) Has been cancelled
CI / build-test (ubuntu-22.04, 1.70, x86_64-unknown-linux-gnu) (push) Has been cancelled
CI / build-test (ubuntu-22.04, beta, x86_64-unknown-linux-gnu) (push) Has been cancelled
CI / build-test (ubuntu-22.04, nightly, x86_64-unknown-linux-gnu) (push) Has been cancelled
CI / build-test (ubuntu-22.04, true, stable, i686-unknown-linux-gnu) (push) Has been cancelled
CI / report (push) Has been cancelled
CI / release (push) Has been cancelled
Docker Publish / build (push) Has been cancelled
2024-02-29 10:08:14 -07:00
bakaq
f02c0eacd8
Make "cargo miri test" actually run
2024-01-09 04:38:53 -03:00
infogulch
9444e62df9
Resolve lints and format
2023-11-04 02:16:54 -05:00
Nicolas Luck
2776beb842
Use std::sync::RwLock instead of tokio::sync::RwLock (by @aarroyoc)
2023-10-16 14:59:06 +02:00
Rujia Liu
b6ce6b7cdb
Basic WebAssembly support with minimal Javascript API #615 . Currently 6/12 crypto functions supported. Tested in browser with all default features disabled.
2023-09-08 17:27:22 +08:00
Bennet Bleßmann
c7ec5a13a5
remove locks from AtomTable
...
there are technically still two locks
- the Mutex to serialize consurrent updates to the AtomTable
- the RwLock as part of GLOBAL_ATOM_TABLE
the former is the age lock of RESIZE ATOM TABLE in <https://arxiv.org/pdf/1608.00989.pdf >, though we use it for the whole update as we don't match the whole structure and can't reserve an atom slot as is, so we need to also lock concurrent updates without resizing
the later should be uncontendet as we only write AtomTable::new iff the current value is a dangling Weak
2023-09-05 19:39:59 +02:00
Bennet Bleßmann
01aeb7515d
[WIP] move towards lockless AtomTable
2023-09-05 19:39:46 +02:00
Skgland
d24e6100a7
fix rust_beta_channel feature
2023-09-05 19:12:23 +02:00
Skgland
a95c5e26e6
add comment why blocking_write is not used
2023-09-05 19:12:23 +02:00
Bennet Bleßmann
13cbff7eab
[WIP] fix deadlock in AtomTable::build_with
2023-09-05 19:12:22 +02:00
Skgland
86166dbf25
[WIP] make AtomTable concurrentcy ready
2023-09-05 19:12:22 +02:00
Skgland
b2130c2a48
run cargo fmt
2023-09-05 19:12:17 +02:00
Rujia Liu
4fd059be5f
32-bit system support, addressing all (at most) 4GB addresses of RAM.
2023-08-24 20:05:40 +08:00
Rujia Liu
f6d3b2f896
Make Atom 64-bit regardless of architecture
2023-08-20 19:43:13 +08:00
Bennet Bleßmann
a70157003b
fix spelling
2023-07-29 13:11:00 +02:00
Bennet Bleßmann
6aa3c7d5d6
handle atom table resize
...
* bumping serial_test dev-dependency due to broken should_panic handling in old version
2023-07-29 11:22:25 +02:00
Bennet Bleßmann
4ef8c5c47d
detect and prevent² concurrent AtomTable use
...
²in the case of `#[cfg(not(test))]` there is still a toctou race as I am not sufficently familiar with Atomics
2023-07-27 23:37:03 +02:00
Skgland
a5de329712
don't genrate code in src/
...
[Outputs of Build Script](https://doc.rust-lang.org/cargo/reference/build-scripts.html#outputs-of-the-build-script ) states that only files in $OUT_DIR may be modified
2022-01-10 21:19:18 +01:00
Mark Thom
0404c3bd94
use new heap term representation
2022-01-06 21:44:38 -07:00