Enable Nanobind split build - #1063
Conversation
I used Claude Opus 5.0 to sketch out this commit.
|
https://github.com/FEniCS/basix/actions/runs/32352423277 - seems to work well. |
|
I propose merging once nanobind 1.0.0 goes final. |
|
Looks good to me. I think it is ok to keep it optional for now, until we see clear benefits of the split approach. |
|
The feature is aimed at package builders/distributors. There is no benefit of a split build for people building their own Basix - it should always remain optional. |
|
Neat! Nanobind 3.0.0 is out now. |
|
Regarding
You should not see any functional or performance difference. Split mode is designed so that nanobind behaves exactly the same. The only obvious benefit is that the wheel matrix/(tensor?) collapses along one dimension, making the final number of wheels ~5x smaller. |
This beta initiative in nanobind allows for split mode builds, fully described: https://nanobind.readthedocs.io/en/latest/split_mode.html
Stable API and targeted/optimised API builds are still supported.
The
scikit-build-coreend is not totally smooth, not a big fan of dynamic metadata - I guess this will be improved upstream.I used Claude Opus 5.0 to sketch out this commit and I agree to the default disclaimer.