From: "tenderlovemaking (Aaron Patterson) via ruby-core" Date: 2025-02-16T21:35:32+00:00 Subject: [ruby-core:121075] [Ruby master Feature#21140] Add a method to get the address of certain JIT related functions 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/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/