BLD: vendor meson-python to make the Windows builds with SIMD work#24396
BLD: vendor meson-python to make the Windows builds with SIMD work#24396rgommers merged 3 commits intonumpy:mainfrom
Conversation
Note that this is a bit messy. I tried to vendor spin's `meson.py` separately, but it's not possible to do so cleanly as far as I can tell. The import machinery is unhappy bouncing around between `bin/spin`, `.spin/cmds.py and `.spin/meson.py`. So it was either folding the `spin/cmds/meson.py` content all into cmds.py, or vendor all of the spin package. This seems to work.
|
LGTM. It will help with the backports if they are done in the correct order, so having that documented somewhere is desirable. Will all the linked OpenBLAS libraries all be 32 bits? |
Thanks for having a look. And sure, I will post a comment with an ordered list once we're ready to do them all.
No, that's just for these couple of jobs here I think. All the wheel builds are using 64-bit OpenBLAS, so there is no change compared to 1.25.0 I believe. |
|
In it goes then. On to gh-23096 |
|
This went in less than an hour after I was pinged to review, so unfortunately I didn't have time to give feedback. I think vendoring the whole of spin is almost certainly the wrong way to go, since it vastly complicates maintaining what is supposed to be a lean I'll see what I can do to clear things up in a follow-up PR. |
|
Just to understand the context here, why are we vendoring meson instead of installing it from, e.g., github? |
I'm pretty sure that it is not. I burned 1.5 days on suggestions to avoid it, without success. The problem is that both
Because we need mesonbuild/meson#11307 to add SIMD support, and that's a large PR that isn't in a released Meson version. Since Meson by design cannot be extended by a third-party plugin or some such thing, we vendor it until our changes have been upstreamed and released. |
|
Note that this is temporary, it will go away. So no worries about a long-term split of If you want the vendored content to go away asap, then there must be a way in # The numpy-vendored version of Meson
meson_cli = [sys.executable,
str(pathlib.Path(__file__).parent.parent.resolve() /
'vendorThat may be a nice feature to have in case this happens again. I had a really hard time with debugging this stuff by the way. or some such thing. Have you seen that too? You should be able to reproduce this by changing the |
|
I'll get a spin PR ready ASAP; I'm sorry to hear you lost time on this :/ |
@charris I think we're ready for the backports now, in this order:
I'd suggest then adding an |
Great, let's see how it goes. |
|
The backports went in without much trouble. |
Follow-up to gh-24379. See the end of that PR for discussion on why that PR alone was not enough on Windows.
Tested together with SIMD support in gh-24395, and looks good. I plan to merge this asap and then rebase gh-23096 on top.
This also cleans up the Windows GHA CI jobs, they were pretty messy.
mesonas a standalone executable command cannot be used anymore as long as we vendor it.