Closed necrashter closed 1 year ago
CC @aaronfranke
I suggest reverting that addition for 3.x
, it wasn't particularly requested by anyone and if it's breaking GDNative, then it's a net negative.
Alternatively, it needs to be added to a new CORE_1_4
dictionary here: https://github.com/aaronfranke/godot/blob/141783d90f852cf008b0d11c907f14296633a6f0/modules/gdnative/gdnative_api.json#L26
It was an oversight from me not to flag the compat breakage by adding a new method in an already released core API.
Sure, we can remove it in 3.x. I have nothing against doing that. It is a bit unfortunate though :(
EDIT: Oh, I see that you already added determinant to a new Core API 1.4, I guess that is preferred?
I don't think we need to remove it since #77387 fixes this issue by moving it to a new API version. I think other new functions can be introduced similarly in Core API 1.4 until it's released.
Fixed by #77387.
Godot version
83e91ab818d81c6b660a46d571c9c63c201d189a and all subsequent commits in 3.x branch
System information
Ubuntu 20.04
Issue description
Commit 83e91ab818d81c6b660a46d571c9c63c201d189a #76323 exposed a
determinant
method in Transpose2D, and added this to GDNative API.However, all Godot builds from 83e91ab818d81c6b660a46d571c9c63c201d189a or the subsequent commits cause the following crash when used with a GDNative library built with Rust bindings:
I've updated
api.json
,gdnative_api.json
, and used the latest headers fromgodot/modules/gdnative/include
but to no avail.I've opened an issue in the repository of GDNative Rust bindings. But please note that the issue persists after updating the API
.json
files and headers. On Discord, one of the developers @chitoyuu hypothesized the following:Steps to reproduce
3.x
from a commit earlier than 83e91ab818d81c6b660a46d571c9c63c201d189a (e.g. the previous commit 571e4189fd1c9110850d49b0056fe2d4ae820af5).api.json
andgdnative_api.json
in Rust bindings. Copy the latest headers fromgodot/modules/gdnative/include
.cargo clean
andcargo build
).I don't know whether this issue occurs with GDNative C/C++ bindings.
Minimal reproduction project
Any Godot project with a GDNative library created with Rust bindings.