You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a Rust library crate (ndarray fork with HPC extensions). No external services (databases, APIs) are needed.
6
+
7
+
### Quick reference
8
+
9
+
| Action | Command |
10
+
|--------|---------|
11
+
| Build |`cargo build`|
12
+
| Lint |`cargo clippy -- -D warnings`|
13
+
| Test (lib) |`cargo test --lib -p ndarray`|
14
+
| Test (workspace) |`cargo test`|
15
+
| Test (HPC subset) |`cargo test --lib -p ndarray -- hpc::`|
16
+
| Run example |`cargo run --example life`|
17
+
| Format check |`cargo fmt -- --check`|
18
+
19
+
### Environment notes
20
+
21
+
-**Rust 1.94.1** is pinned via `rust-toolchain.toml`; rustup auto-selects it in `/workspace`.
22
+
-**No AVX-512 hardware** in Cloud Agent VMs — all test modules in `src/simd_avx512.rs` are gated with `#[cfg(all(test, target_feature = "avx512f"))]` and compile away entirely on non-AVX-512 targets. This is intentional: raw AVX-512 intrinsic tests must never run on CI/Cloud (x86-64-v3). The `simd.rs` LazyLock polyfill dispatches to `simd_avx2.rs` on these machines.
23
+
-**Feature gates**: `intel-mkl` and `openblas` are mutually exclusive and require system libraries not installed by default. The default build uses `native` (pure Rust SIMD) which needs no extra libs.
24
+
-**Build time**: ~18s cold, <1s incremental. Tests (~1776 on non-AVX-512) take ~70s.
25
+
- The workspace has sub-crates under `crates/` and `ndarray-rand/`. Default members exclude `blas-tests` and `blas-mock-tests` (they activate the `blas` feature which needs cblas-sys linking).
26
+
-`libssl-dev` is needed as a build dependency for some transitive crates.
27
+
-**`cargo fmt`**: `rustfmt.toml` uses 13+ nightly-only options (`brace_style`, `imports_granularity`, etc.). Stable rustfmt ignores them and reports massive diffs. This is a known pre-existing issue — do not attempt to fix formatting drift without coordinating with the project owner.
0 commit comments