From: "maximecb (Maxime Chevalier-Boisvert) via ruby-core" Date: 2025-02-19T01:21:01+00:00 Subject: [ruby-core:121117] [Ruby master Feature#21140] Add a method to get the address of certain JIT related functions Issue #21140 has been updated by maximecb (Maxime Chevalier-Boisvert). > That's why I wanted to use the set that RJIT/YJIT use already. I assume it's not just using the function "for fun" and actually has a purpose. It's tough because the set of functions a JIT needs tends to grow over time. For example, YJIT never did much to optimize hash access, but in the future we would probably want to do that, so we would need to expose more functions. As such I don't think it makes sense to have some kind of a fixed list. Benoit is making the same argument I've made, which is that it's fragile to expose such a large set of internal functions without any safeguards. I think this point is 100% valid. I know that you would prefer no safeguards because it seems more convenient slash fun to play with in the short term, but IMO it's only reasonable to ask for either a configure flag or a command-line flag. It probably should be a configure flag. ---------------------------------------- Feature #21140: Add a method to get the address of certain JIT related functions https://bugs.ruby-lang.org/issues/21140#change-112040 * 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/