Skip to content
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

[GR-48942] Run C extensions natively #3286

Merged
merged 50 commits into from
Nov 16, 2023
Merged

[GR-48942] Run C extensions natively #3286

merged 50 commits into from
Nov 16, 2023

Conversation

graalvmbot
Copy link
Collaborator

No description provided.

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Oct 6, 2023
@graalvmbot graalvmbot changed the title [WIP] Run C extensions natively [GR-48942] Run C extensions natively Oct 6, 2023
@graalvmbot graalvmbot force-pushed the bd/native-cexts branch 5 times, most recently from 3153a33 to ec86536 Compare October 9, 2023 19:15
@graalvmbot graalvmbot force-pushed the bd/native-cexts branch 15 times, most recently from 5847119 to 17b439b Compare October 26, 2023 13:45
@graalvmbot graalvmbot force-pushed the bd/native-cexts branch 6 times, most recently from e8166b2 to 7dcc430 Compare November 1, 2023 17:31
eregon and others added 23 commits November 13, 2023 12:24
* It is not accepted by gcc.
* It's much faster, 0.055s vs 0.677s and even 1.468s before --disable-gems
* Otherwise `system RbConfig::CONFIG['CC'], *args` fails.
* We could define ruby/spec-specific macros for this but it's easier to just reuse what's in ruby headers.
* So macOS actually looks in rpath instead of ignoring it...
* .../languages/ruby/lib/cext/include/truffleruby/truffleruby.h:48:59:
warning: token pasting of ',' and __VA_ARGS__ is a GNU extension
[-Wgnu-zero-variadic-macro-arguments]
  rb_exc_raise(rb_exc_new_str(EXCEPTION, rb_sprintf(FORMAT, ##__VA_ARGS__)))
                                                          ^
* struct by value arguments are not well supported from NFI to Sulong,
  sometimes it works by chance due to how it is compiled to bitcode.
* This is the only struct-by-value argument in the C API subset we implement.
* Remove entry about the LLVM toolchain since it is no longer relevant for users.
* Fixes the missing definition of NO_SANITIZE on linux-aarch64 with GCC 7.3.1.
  With the devtoolset it's GCC 10.2.1 on linux-aarch64.
@eregon eregon merged commit a9afcef into master Nov 16, 2023
14 checks passed
@graalvmbot graalvmbot deleted the bd/native-cexts branch November 16, 2023 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCA Verified All contributors have signed the Oracle Contributor Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants