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
refactor: single DEB for header-only lib; backend selected by consumer via NUMPYCPP_STD_ONLY
- CMakeLists.txt: one DEB (numpycpp-dev-<ver>-Linux.deb) — no flavor suffix
- numpycpp-config.cmake.in: cmake config propagates -ldl (bitexact) or
-DNUMPYCPP_STD_ONLY (std) automatically based on consumer's NUMPYCPP_STD_ONLY
- CI: single package job builds one DEB
- README: document both backends with find_package examples
# DEB packaging: single DEB (header-only — backend is consumer's compile choice)
13
+
# cmake .. → numpycpp-dev-<ver>-Linux.deb
15
14
16
15
name: CI
17
16
@@ -110,31 +109,26 @@ jobs:
110
109
cd tests
111
110
python -m pytest test_all.py -q --tb=short --no-header -k "not (test_unary_math or test_dot or test_norm or test_matmul or TestEinsum or test_avx512_boundary or test_nan_passthrough or test_nan_mixed or test_domain or signed_zero or _inf or test_sign_inf)"
112
111
113
-
# ── Job 3: package both DEBs ─────────────────────────────────────────────────
112
+
# ── Job 3: package DEB ───────────────────────────────────────────────────────
114
113
package:
115
-
name: Package DEBs
114
+
name: Package DEB
116
115
runs-on: ubuntu-latest
117
116
needs: [test-bitexact, test-std]
118
117
119
118
steps:
120
119
- uses: actions/checkout@v4
121
120
122
-
- name: Build bitexact DEB
121
+
- name: Build DEB
122
+
# Header-only: both backends ship in one DEB.
123
+
# Backend is selected by the consumer at cmake configure time
|`NUMPYCPP_STD_ONLY`|**required**| Selects `std_math_backend.h` + `std_linalg_backend.h` instead of SVML/BLAS bridges. Propagated automatically when using `find_package(numpycpp)`with the std DEB. |
192
+
|`NUMPYCPP_STD_ONLY`|**required**| Selects `std_math_backend.h` + `std_linalg_backend.h` instead of SVML/BLAS bridges. Set via `cmake -DNUMPYCPP_STD_ONLY=ON` or `set(NUMPYCPP_STD_ONLY ON)`before `find_package`. |
173
193
|`-O3 -march=native`| recommended | Enables full auto-vectorisation of the C++ loops (exp/dot/gemm). Without optimisation, std backend is slow. |
174
194
|`-ffp-contract=off`|**not needed**| FMA contraction is welcome in std mode — improves precision and performance of gemm/dot. |
175
195
|`-mavx512f -mprefer-vector-width=256`|**not needed**| SVML bridge not compiled in; no ZMM-trap risk. `-march=native` selects appropriate SIMD automatically. |
0 commit comments