-
Notifications
You must be signed in to change notification settings - Fork 187
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
Running C extensions natively #3118
Comments
I made a lot of progress on this this week and now all C API specs pass when running extensions natively (i.e. not on Sulong, except for libtruffleruby itself)! |
One change is that loading extensions might fail early with
So while with Sulong we could afford to not define functions of the C API we did not implement yet, we have to define them with native to just load the extension, even if we just EDIT: actually we can solve this by using RTLD_LAZY instead of the default RTLD_NOW. |
The main one here is #ifndef RBASIC_FLAGS
#define RBASIC_FLAGS(obj) (RBASIC(obj)->flags)
#endif
#ifndef RBASIC_SET_FLAGS
#define RBASIC_SET_FLAGS(obj, flags_to_set) (RBASIC(obj)->flags = flags_to_set)
#endif There are also various flags macros like The reason accessing |
Merged in a9afcef. |
After 55f4a97 the size of the truffleruby native standalone as an archive goes from 183MiB to 93MiB (on linux-amd64, similar for other platforms), so half the size, a nice saving. |
* The latter cannot be supported on TruffleRuby: oracle/truffleruby#3118 (comment)
This is done. |
We want to experiment with running C extensions natively instead of on Sulong.
Similar to what GraalPython did for 23.0.
We might still run libtruffleruby on Sulong, or at least initially we would because this is much easier.
grpc
which are proving difficult to run on Sulong due to the very large amount of C/C++/etc code they run.The text was updated successfully, but these errors were encountered: