Skip to content

Commit 44980b5

Browse files
committed
Changes to BLIS for testing MSRV, since openblas is currently MSRV 1.67 and incompatible with ndarray's MSRV of 1.64
1 parent fd3ce5d commit 44980b5

File tree

4 files changed

+23
-5
lines changed

4 files changed

+23
-5
lines changed

.github/workflows/ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ jobs:
8585
- uses: rui314/setup-mold@v1
8686
- uses: Swatinem/rust-cache@v2
8787
- name: Install openblas
88-
run: sudo apt-get install libopenblas-dev gfortran
88+
run: sudo apt-get install libopenblas-dev gfortran libblis-dev
8989
- run: ./scripts/all-tests.sh "$FEATURES" ${{ matrix.rust }}
9090

9191
miri:

README.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,14 @@ there is no tight coupling to the ``blas-src`` version, so version selection is
156156
0.13 0.2.0 0.6.0
157157
=========== ============ ================ ==============
158158

159+
------------
160+
BLAS on MSRV
161+
------------
162+
163+
Although ``ndarray`` currently maintains an MSRV of 1.64.0, this is separate from the MSRV (either stated or real) of the various BLAS providers.
164+
As of the time of writing, ``openblas`` currently supports MSRV of 1.67.0.
165+
So, while ``ndarray`` and ``openblas-src`` are compatible, they can only work together with toolchains 1.67.0 or above.
166+
159167
Recent Changes
160168
--------------
161169

crates/numeric-tests/Cargo.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@ approx = { workspace = true }
1818
rand = { workspace = true }
1919
rand_distr = { workspace = true }
2020

21-
blas-src = { optional = true, version = "0.10", default-features = false, features = ["openblas"] }
21+
blas-src = { optional = true, version = "0.10", default-features = false, features = ["blis", "openblas"] }
2222
openblas-src = { optional = true, version = "0.10", default-features = false, features = ["cblas", "system"] }
23+
blis-src = { optional = true, version = "0.2.2", features = ["system"] }
2324

2425
[dev-dependencies]
2526
num-traits = { workspace = true }
2627
num-complex = { workspace = true }
2728

2829
[features]
29-
test_blas = ["ndarray/blas", "blas-src", "openblas-src"]
30+
test_openblas = ["ndarray/blas", "blas-src", "openblas-src"]
31+
test_blis = ["ndarray/blas", "blas-src", "blis-src"]

scripts/all-tests.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,16 @@ cargo test -v -p ndarray -p ndarray-rand --release --features "$FEATURES" $QC_FE
2323
# BLAS tests
2424
cargo test -p ndarray --lib -v --features blas
2525
cargo test -p blas-mock-tests -v
26-
cargo test -p blas-tests -v --features blas-tests/openblas-system
27-
cargo test -p numeric-tests -v --features numeric-tests/test_blas
26+
if [ "$CHANNEL" == "1.64.0" ]; then
27+
cargo test -p blas-tests -v --features blas-tests/blis-system
28+
else
29+
cargo test -p blas-tests -v --features blas-tests/openblas-system
30+
fi
31+
if [ "$CHANNEL" == "1.64.0" ]; then
32+
cargo test -p numeric-tests -v --features numeric-tests/test_blis
33+
else
34+
cargo test -p numeric-tests -v --features numeric-tests/test_blas
35+
fi
2836

2937
# Examples
3038
cargo test --examples

0 commit comments

Comments
 (0)