ENH: fix wasm32 runtime type error in numpy._core #27669
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport of #27663.
As per python spec getters accept two arguments, second being closure context.
In descriptor.c numpy follows it, while in patched file it did not.
Why is it important? I was compiling for wasm32-wasip1 (I know that it is not supported), and expression
str(np.dtype("float32"))
gives runtime error due to incompatible function pointer type (omitting an argument), because it boils down to calling._legacy
getter. After this patch the snippet works. This issue is (probably) not observable in emscripten due toifdef
in the place that handles getters in cpython