
Issue #21140 has been updated by tenderlovemaking (Aaron Patterson). I made a patch [here](https://github.com/tenderlove/ruby/pull/new/rjit-addr). It generates a function based on YJIT's bindgen file. Whatever functions YJIT exposes in bindgen are also available via the API. I named the method: ```ruby RubyVM::Internals.address_of(:rb_vm_ci_argc) ``` I don't have any particular opinion on what the name should be, but I think `address_of` makes sense. Also I chose `RubyVM::Internals` because I don't think it should be specific to RJIT (I would like to use this in my own JIT compilers). ---------------------------------------- Feature #21140: Add a method to get the address of certain JIT related functions https://bugs.ruby-lang.org/issues/21140#change-111992 * 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/t...) which are the ones required by RJIT. -- https://bugs.ruby-lang.org/