-
-
Notifications
You must be signed in to change notification settings - Fork 25.9k
MAINT: specify C17 as C standard in meson.build #28980
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
Hmm, the
Not sure why the C standard would matter for that. If that's familiar to anyone reading along as unrelated to this PR please let me know, otherwise I'll try to reproduce this... |
I re-triggered the failing run that should fix the CI. You are right that this is another instance of #28820 I need to take a closer look to fix this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM if CI is green
@jeremiedbb not sure if we need to have a similar change on the conda-forge side. |
I don't think that we need it for 1.5 since 1.5 only supports python <= 3.12 |
Turns out this broke Pyodide build (Pyodide build is not run in PRs unless explicitly asked for via a commit message) see #29013 for more details. Insights more than welcome! This likely will affect Scipy inside Pyodide as well. |
Unless I'm misunderstanding the discussions about this, it looks like scipy currently doesn't build under pyodide because of missing fortran support. That must be why it was missed when scipy moved to C17. |
SciPy does build under Pyodide, though: https://github.com/pyodide/pyodide/tree/main/packages/scipy (out-of-tree support isn't implemented yet, however) |
Thanks for clarifying! I wasn't aware of the package in pyodide, just going off of issues on the scipy issue tracker. It looks like pyodide is packaging scipy 1.12.0, but Ralf changed the C standard to C17 in the 1.14 dev cycle, so presumably the pyodide package would hit this whenever it gets updated or whenever someone tried to add pyodide CI to scipy. |
Ah, I do have plans to add out-of-tree Pyodide support to SciPy, but given the complexity, it's the last on my list right now, and other Scientific Python packages are being prepared first. I am not sure how these C standard changes will be navigated, because an extensive amount of patching is required already for the in-tree builds... |
For completeness: this was an issue with Emscripten support in Meson. It was fixed by mesonbuild/meson#13221, but that fix isn't released yet. So using C11 for now (as done in gh-29015) seems like the pragmatic thing to do indeed. Upgrading to C17 should be possible after the next Meson release. |
See discussion on scikit-learn#29015 and scikit-learn#28980
Meson 1.5.0 has now been released, and it includes the fix – we should now be able to set the standard as C17 again, I have opened gh-29481 to revert the change made in gh-29015. |
Reference Issues/PRs
#28977
What does this implement/fix? Explain your changes.
Bumps the required C standard. Doing this as a PR to see how impactful it is in CI.
Any other comments?