-
-
Notifications
You must be signed in to change notification settings - Fork 10.9k
BLD: vendor meson-python to make the Windows builds with SIMD work #24396
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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() /
'vendor That 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.
meson
as a standalone executable command cannot be used anymore as long as we vendor it.