From: "Eregon (Benoit Daloze) via ruby-core" Date: 2025-02-18T19:11:06+00:00 Subject: [ruby-core:121110] [Ruby master Feature#21140] Add a method to get the address of certain JIT related functions Issue #21140 has been updated by Eregon (Benoit Daloze). Would this API be needed for e.g. a JIT in the FFI gem? (https://railsatscale.com/2025-02-12-tiny-jits-for-a-faster-ffi/) Looking at the PoC I'm unsure but I think not. I think it's a good idea to have this API not accessible by default because it is deep internals which are meant for experimentation and nothing else. If there is a convincing non-experimental use case that needs it, then it's a feature it's not enabled by default, because we would actually want to re-discuss and potentially expose the needed parts properly. > This information can be recovered via dlsym Why not just use dlsym() then? (e.g. after `dlopen(NULL, flags)`) It seems basically equivalent to this API (it also takes a function name and returns an integer), and anyway one needs to ability to call native functions to use this API. ---------------------------------------- Feature #21140: Add a method to get the address of certain JIT related functions https://bugs.ruby-lang.org/issues/21140#change-112032 * Author: tenderlovemaking (Aaron Patterson) * Status: Open ---------------------------------------- Feature #21116 extracted RJIT as a gem. But RJIT accesses certain internal functions which it cannot access as a gem. For example it used the `rb_str_bytesize` function, but this symbol is not exported, so we cannot access it (even from a C extension). Instead of exporting these symbols, I would like to propose an API for getting access to their addresses in Ruby. For example ```ruby RubyVM::RJIT.address_of(:rb_str_bytesize) # => 123456 ``` I would like to limit the addresses to [this list](https://github.com/ruby/ruby/blob/f32d5071b7b01f258eb45cf533496d82d5c0f6a1/tool/rjit/bindgen.rb#L510-L578) which are the ones required by RJIT. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/