Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,11 @@ jobs:
- powerpc64-unknown-linux-gnu
# - mips64-unknown-linux-gnuabi64
- riscv64gc-unknown-linux-gnu
- wasm32-unknown-unknown
# - wasm32-unknown-unknown
- wasm32-unknown-emscripten
- wasm32-wasi
- wasm32-wasip1
- wasm32-wasip1-threads
- wasm32-wasip2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -104,7 +106,7 @@ jobs:
- name: cargo build --target ${{ matrix.target }}
run: |
rustup target add ${{ matrix.target }}
cargo build --target ${{ matrix.target }}
cargo build --target ${{ matrix.target }} --no-default-features --features std

build:
name: build
Expand Down
20 changes: 10 additions & 10 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "skl"
version = "0.22.16"
version = "0.22.17"
edition = "2021"
rust-version = "1.81.0"
repository = "https://github.com/al8n/skl"
Expand Down Expand Up @@ -37,28 +37,29 @@ required-features = ["memmap"]

[features]
default = ["std"]
alloc = ["rarena-allocator/alloc", "dbutils/alloc"]
alloc = ["rarena-allocator/alloc", "dbutils/alloc", "rand/os_rng"]
memmap = ["rarena-allocator/memmap", "std"]
std = ["rand/default", "either/default", "dbutils/default", "rarena-allocator/std", "memchr?/default", "among/default"]
tracing = ["dep:tracing", "rarena-allocator/tracing"]

experimental = ["memchr"]

[target.'cfg(target_family = "wasm")'.dependencies]
getrandom = { version = "0.2", features = ["js"] }
[target.'cfg(target = "wasm32-unknown-unknown")'.dependencies]
getrandom = { version = "0.3", features = ["wasm_js"] }

[dependencies]
among = { version = "0.1", default-features = false, features = ["either"] }
arbitrary-int = { version = "1.2", default-features = false }
arbitrary-int = { version = "1", default-features = false }
bitflags = "2"
dbutils = { version = "0.12", default-features = false }
dbutils = { version = "0.14", default-features = false }
# dbutils = { version = "0.12", path = "../layer0/dbutils", default-features = false }

rand = { version = "0.9", default-features = false, features = ["os_rng"] }
either = { version = "1", default-features = false }
memchr = { version = "2", default-features = false, optional = true }
rand = { version = "0.8", default-features = false, features = ["getrandom"] }
# rarena-allocator = { version = "0.4", default-features = false, path = "../arena/rarena-allocator" }
rarena-allocator = { version = "0.4", default-features = false }

# rarena-allocator = { version = "0.5", default-features = false, path = "../arena/rarena-allocator" }
rarena-allocator = { version = "0.5", default-features = false }
viewit = "0.1.5"
paste = "1"

Expand All @@ -69,7 +70,6 @@ criterion = "0.5"
tempfile = "3"
parking_lot = "0.12"


[profile.bench]
opt-level = 3
debug = false
Expand Down
16 changes: 8 additions & 8 deletions benches/bench.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,14 @@ fn bench_read_write_fixed_skiplist_frac(b: &mut Bencher<'_>, frac: &usize) {
let s = stop.clone();
let v = value.clone();
let j = thread::spawn(move || {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
while !s.load(Ordering::SeqCst) {
let key = random_key(&mut rng);
let case = (key, frac > rng.gen_range(0..11));
fixed_skiplist_round(&l, &case, &v);
}
});
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
b.iter_batched_ref(
|| (random_key(&mut rng), frac > rng.gen_range(0..11)),
|case| fixed_skiplist_round(&list, case, &value),
Expand Down Expand Up @@ -106,14 +106,14 @@ fn bench_read_write_fixed_map_frac(b: &mut Bencher<'_>, frac: &usize) {

let v = value.clone();
let h = thread::spawn(move || {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
while !s.load(Ordering::SeqCst) {
let f = rng.gen_range(0..11);
let case = (random_key(&mut rng), f < frac);
map_round(&m, &case, &v);
}
});
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
b.iter_batched_ref(
|| {
let f = rng.gen_range(0..11);
Expand Down Expand Up @@ -146,15 +146,15 @@ fn bench_write_fixed_map(c: &mut Criterion) {
let s = stop.clone();
let v = value.clone();
let j = thread::spawn(move || {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let l = l.clone();
while !s.load(Ordering::SeqCst) {
let l = l.clone();
let case = (random_key(&mut rng), false);
fixed_map_round(l, &case, &v);
}
});
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
c.bench_function("fixed_map_write", |b| {
b.iter_batched(
|| random_key(&mut rng),
Expand All @@ -180,13 +180,13 @@ fn bench_write_fixed_skiplist(c: &mut Criterion) {
let s = stop.clone();
let v = value.clone();
let j = thread::spawn(move || {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
while !s.load(Ordering::SeqCst) {
let case = (random_key(&mut rng), false);
fixed_skiplist_round(&l, &case, &v);
}
});
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
c.bench_function("fixed_skiplist_write", |b| {
b.iter_batched(
|| random_key(&mut rng),
Expand Down
12 changes: 7 additions & 5 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,9 @@ struct FindResult<P> {
/// Utility function to generate a random height for a new node.
#[cfg(feature = "std")]
pub fn random_height(max_height: Height) -> Height {
use rand::{thread_rng, Rng};
let mut rng = thread_rng();
let rnd: u32 = rng.gen();
use rand::{rng, Rng};
let mut rng = rng();
let rnd: u32 = rng.random();
let mut h = 1;
let max_height = max_height.to_usize();

Expand All @@ -169,10 +169,12 @@ pub fn random_height(max_height: Height) -> Height {
/// Utility function to generate a random height for a new node.
#[cfg(not(feature = "std"))]
pub fn random_height(max_height: Height) -> Height {
use rand::{rngs::OsRng, Rng};
use rand::{rngs::OsRng, TryRngCore};

let max_height = max_height.to_usize();
let rnd: u32 = OsRng.gen();
let rnd: u32 = OsRng
.try_next_u32()
.expect("failed to generate random number through OsRng");
let mut h = 1;

while h < max_height && rnd <= PROBABILITIES[h] {
Expand Down
4 changes: 2 additions & 2 deletions src/tests/dynamic/map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1114,7 +1114,7 @@ where
.map_mut::<M, _>(&p)
.unwrap();
let mut data = (0..1000).collect::<::std::vec::Vec<usize>>();
data.shuffle(&mut rand::thread_rng());
data.shuffle(&mut rand::rng());
for i in &data {
let i = *i;
l.get_or_insert(key(i).as_slice(), new_value(i).as_slice())
Expand All @@ -1138,7 +1138,7 @@ where
.unwrap();
assert_eq!(1000, l.len());
let mut data = (0..1000).collect::<::std::vec::Vec<usize>>();
data.shuffle(&mut rand::thread_rng());
data.shuffle(&mut rand::rng());
for i in data {
let k = key(i);
let ent = l.get(k.as_slice()).unwrap();
Expand Down
4 changes: 2 additions & 2 deletions src/tests/dynamic/multiple_version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1761,7 +1761,7 @@ where
.map_mut::<M, _>(&p)
.unwrap();
let mut data = (0..1000).collect::<::std::vec::Vec<usize>>();
data.shuffle(&mut rand::thread_rng());
data.shuffle(&mut rand::rng());
for i in &data {
let i = *i;
l.get_or_insert(i as u64, key(i).as_slice(), new_value(i).as_slice())
Expand All @@ -1788,7 +1788,7 @@ where
.unwrap();
assert_eq!(1000, l.len());
let mut data = (0..1000).collect::<::std::vec::Vec<usize>>();
data.shuffle(&mut rand::thread_rng());
data.shuffle(&mut rand::rng());
for i in data {
let k = key(i);
let ent = l.get(i as u64, k.as_slice()).unwrap();
Expand Down
4 changes: 2 additions & 2 deletions src/tests/generic/map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1099,7 +1099,7 @@ where
.map_mut::<M, _>(&p)
.unwrap();
let mut data = (0..1000).collect::<::std::vec::Vec<usize>>();
data.shuffle(&mut rand::thread_rng());
data.shuffle(&mut rand::rng());
for i in &data {
let i = *i;
l.get_or_insert(key(i).as_slice(), new_value(i).as_slice())
Expand All @@ -1123,7 +1123,7 @@ where
.unwrap();
assert_eq!(1000, l.len());
let mut data = (0..1000).collect::<::std::vec::Vec<usize>>();
data.shuffle(&mut rand::thread_rng());
data.shuffle(&mut rand::rng());
for i in data {
let k = key(i);
let ent = l.get(k.as_slice()).unwrap();
Expand Down
4 changes: 2 additions & 2 deletions src/tests/generic/multiple_version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1711,7 +1711,7 @@ where
.map_mut::<M, _>(&p)
.unwrap();
let mut data = (0..1000).collect::<::std::vec::Vec<usize>>();
data.shuffle(&mut rand::thread_rng());
data.shuffle(&mut rand::rng());
for i in &data {
let i = *i;
l.get_or_insert(i as u64, key(i).as_slice(), new_value(i).as_slice())
Expand All @@ -1738,7 +1738,7 @@ where
.unwrap();
assert_eq!(1000, l.len());
let mut data = (0..1000).collect::<::std::vec::Vec<usize>>();
data.shuffle(&mut rand::thread_rng());
data.shuffle(&mut rand::rng());
for i in data {
let k = key(i);
let ent = l.get(i as u64, k.as_slice()).unwrap();
Expand Down
Loading