ci: wire up CI, fix no_std build, fix stale package names in scripts
CI / test (push) Failing after 15s
CI / test (push) Failing after 15s
- Add .gitea/workflows/ci.yml running scripts/ci-test.sh (fmt, clippy,
test, no_std check) on push/PR to main.
- Fix stale rustyhdf5-py/rustyhdf5-format package names in
ci-test.sh/check-nostd.sh, which had been silently no-op'ing those
checks (cargo warns but doesn't fail on an unknown --exclude/-p
target).
- With those checks actually running, fix the real issues they surface:
- clippy: useless_conversion in chunked_write.rs, byte_char_slices in
global_heap.rs/object_header.rs.
- cargo fmt: apply formatting across the workspace (whitespace only).
- no_std (thumbv7em-none-eabihf) build errors in clawhdf5-format:
core::sync::atomic::AtomicU64 doesn't exist on that target (no
native 64-bit atomics) — switch profiling.rs's counters to
portable-atomic, which falls back to a CAS-based emulation there
and is a no-op wrapper elsewhere. Add missing alloc imports for
Box (filters.rs), Vec (filters_szip.rs), and format! (dict_encoding.rs)
on no_std paths. Replace f64::powi (std/libm-only) with a small
local exponentiation-by-squaring helper in the scale-offset filter.
This commit is contained in:
@@ -41,11 +41,7 @@ fn bench_metadata_attrs_write(c: &mut Criterion) {
|
||||
let path = tmp.path().join("attrs_libhdf5.h5");
|
||||
b.iter(|| {
|
||||
let file = hdf5::File::create(&path).unwrap();
|
||||
let ds = file
|
||||
.new_dataset::<f64>()
|
||||
.shape([3])
|
||||
.create("data")
|
||||
.unwrap();
|
||||
let ds = file.new_dataset::<f64>().shape([3]).create("data").unwrap();
|
||||
ds.write(&[1.0f64, 2.0, 3.0]).unwrap();
|
||||
for i in 0..k {
|
||||
ds.new_attr::<i64>()
|
||||
@@ -258,11 +254,7 @@ fn bench_metadata_open_from_disk(c: &mut Criterion) {
|
||||
let libhdf5_path = tmp.path().join("open_libhdf5.h5");
|
||||
{
|
||||
let file = hdf5::File::create(&libhdf5_path).unwrap();
|
||||
let ds = file
|
||||
.new_dataset::<f64>()
|
||||
.shape([3])
|
||||
.create("data")
|
||||
.unwrap();
|
||||
let ds = file.new_dataset::<f64>().shape([3]).create("data").unwrap();
|
||||
ds.write(&[1.0f64, 2.0, 3.0]).unwrap();
|
||||
ds.new_attr::<i64>()
|
||||
.create("label")
|
||||
@@ -307,13 +299,17 @@ fn bench_metadata_parse_in_memory(c: &mut Criterion) {
|
||||
fb.finish().unwrap()
|
||||
};
|
||||
|
||||
group.bench_with_input(BenchmarkId::new("clawhdf5", "in_memory"), &bytes, |b, raw| {
|
||||
b.iter(|| {
|
||||
let file = File::from_bytes(raw.clone()).unwrap();
|
||||
let ds = file.dataset("data").unwrap();
|
||||
ds.attrs().unwrap()
|
||||
});
|
||||
});
|
||||
group.bench_with_input(
|
||||
BenchmarkId::new("clawhdf5", "in_memory"),
|
||||
&bytes,
|
||||
|b, raw| {
|
||||
b.iter(|| {
|
||||
let file = File::from_bytes(raw.clone()).unwrap();
|
||||
let ds = file.dataset("data").unwrap();
|
||||
ds.attrs().unwrap()
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
group.finish();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user