ndarray-linalg
ndarray-linalg copied to clipboard
Install netlib into Windows for testing netlib-system feature
I'd like to try working on this and have a windows machine to test.
@termoshtt
Welcome :)
Background
- ndarray-linalg links to the netlib's reference implementation of LAPACK through blas-lapack-rs/netlib-src
- netlib-src crate only responsible for linking. FFI definitions for LAPACK (implemented in Fortran) is placed at lapack-sys because it is common though another LAPACK implementations e.g. OpenBLAS and Intel MKL.
- netlib-src tries to compile reference LAPACK in build.rs if
systemfeature is not specified.- ndarray-linalg's
netlib-staticfeature uses this, and tested in CI for Linux
- ndarray-linalg's
- If
systemfeature is set, netlib-src does not compile the reference LAPACK, and tries to link system's LAPACK. Most Linux system has LAPACK package in its package registry, e.g. in Ubuntuapt install liblapack-devinstalls/lib/x86_64-linux-gnu/liblapack.so.3.- ndarray-linalg's
netlib-systemfeature uses this, and tested in CI for Linux
- ndarray-linalg's
Goal
- Setup CI for Windows with
netlib-systemfeature like intel-mkl-system does
How
- For Windows, Rust has two target, i.e.
x86_64-pc-windows-msvcandx86_64-pc-windows-gnu.- For GNU toolchain, there is mingw-w64-x86_64-lapack. This can be suitable for this issue.
- For MSVC toolchain, it has no official Fortran compiler, and I do not know any compiled binary distribution of the reference LAPACK. Thus, this will be harder than GNU case.
- GitHub Actions has Windows runner. This can be used for our purpose.
Problem
- We need to setup msys2 environment on CI to use the above package.
- Setup MSYS2 looks helpful for it, but I've never tested it.
This is what I recognize about this issue. Feel free to ask me any question.