Skip to content
Merged
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
30 changes: 30 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,35 @@ jobs:
- name: cargo check (v4 / AVX-512 + hpc-extras)
run: cargo check --target=x86_64-unknown-linux-gnu -p ndarray --features approx,serde,rayon,hpc-extras

nightly-simd-polyfill:
# TD-SIMD-9 from .claude/knowledge/simd-dispatch-architecture.md.
# Exercises the `feature = "nightly-simd"` dispatch arm in
# `src/simd.rs` (added in Phase 2 / PR #173) so the portable
# `core::simd::*` backend doesn't bit-rot between PRs.
#
# Why nightly: `src/simd_nightly/*` uses `#![feature(portable_simd)]`
# which only compiles on nightly rustc. The stable `cargo check`
# paths in tests/clippy never reach this arm.
#
# `cargo check` rather than full build/test — pure type/borrow/cfg
# verification. Catches arm shadowing bugs and the kind of API-break
# codex flagged on PR #173 (lowercase aliases dropped).
#
# Runs only on merge_group + push (not every PR) to keep nightly
# toolchain pulls out of the per-PR critical path. Mirrors the
# `miri` job's gating strategy.
if: github.event_name == 'merge_group' || github.event_name == 'push'
runs-on: ubuntu-latest
name: nightly-simd-polyfill
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
- name: cargo check (nightly + nightly-simd feature)
run: cargo check -p ndarray --features approx,serde,rayon,nightly-simd
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Disable default features in first nightly-simd check

The first command in this job does not test a distinct feature set: cargo check --features ... nightly-simd still activates default features, and this crate’s Cargo.toml defines default = ["std", "hpc-extras"], so this run already includes hpc-extras; the second command then checks effectively the same configuration again. This leaves the intended non-hpc-extras nightly-simd configuration unvalidated (important for downstream users building with default-features = false) while adding redundant CI time.

Useful? React with 👍 / 👎.

- name: cargo check (nightly + nightly-simd + hpc-extras)
run: cargo check -p ndarray --features approx,serde,rayon,nightly-simd,hpc-extras

blas-msrv:
runs-on: ubuntu-latest
name: blas-msrv
Expand Down Expand Up @@ -310,6 +339,7 @@ jobs:
- native-backend
- hpc-stream-parallel
- tier4-avx512-check
- nightly-simd-polyfill
- miri
- cross_test
- cargo-careful
Expand Down
Loading