Skip to content

fix(no_std): use core::slice in bitmap_store.rs #452

fix(no_std): use core::slice in bitmap_store.rs

fix(no_std): use core::slice in bitmap_store.rs #452

Workflow file for this run

on:
push:
branches:
- staging
- trying
pull_request:
branches:
- main
name: Continuous integration
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- stable
- beta
- nightly
- 1.71.1
env:
RUSTFLAGS: "-C target-cpu=native -C opt-level=3"
steps:
- name: Checkout roaring-rs
uses: actions/checkout@v4
- name: Initialize rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
components: rustfmt, clippy
- name: Check
working-directory: roaring
# clippy will also do a build check
# so we don't need to run `cargo check` or `cargo build`
# use different features to check if everything is fine
# the incremental compilation will make this faster
run: |
cargo clippy --all-targets --no-default-features -- -D warnings
cargo clippy --all-targets --features serde -- -D warnings
- name: Check SIMD
if: matrix.rust == 'nightly'
working-directory: roaring
run: cargo clippy --all-targets --all-features -- -D warnings
- name: Check formatting
run: cargo fmt --all -- --check
test:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
rust:
- stable
- beta
- nightly
- 1.71.1
features:
- default
- no-std
include:
- rust: nightly
features: simd
env:
RUSTFLAGS: "-C target-cpu=native -C opt-level=3"
steps:
- name: Checkout roaring-rs
uses: actions/checkout@v4
- name: Initialize rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Test
if: matrix.features == 'default'
working-directory: roaring
run: cargo test --features serde
- name: Test no default features
if: matrix.features == 'no-std'
working-directory: roaring
run: cargo test --no-default-features
- name: SIMD test
if: matrix.rust == 'nightly' && matrix.features == 'simd'
working-directory: roaring
run: cargo +nightly test --features simd
miri:
runs-on: ubuntu-latest
needs: build
env:
# warning: Miri does not support optimizations: the opt-level is ignored.
RUSTFLAGS: "-C target-cpu=native"
steps:
- name: Checkout roaring-rs
uses: actions/checkout@v4
- name: Initialize rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: miri
- name: Setup miri
run: cargo miri setup
- name: Test bit endian
run: cargo miri test --target s390x-unknown-linux-gnu --package roaring --lib -- bitmap::serialization::test::test_from_lsb0_bytes
bench:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
rust:
- stable
- nightly
features:
- default
include:
- rust: nightly
features: simd
env:
RUSTFLAGS: "-C target-cpu=native -C opt-level=3"
ROARINGRS_BENCH_OFFLINE: "true"
steps:
- name: Checkout roaring-rs
uses: actions/checkout@v4
- name: Checkout benchmark datasets
uses: actions/checkout@v4
with:
repository: "RoaringBitmap/real-roaring-datasets"
path: "benchmarks/real-roaring-datasets"
- name: Initialize rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Bench
run: cargo bench --features "${{ matrix.features }}"