From: "ufuk (Ufuk Kayserilioglu) via ruby-core" Date: 2025-02-18T18:43:08+00:00 Subject: [ruby-core:121108] [Ruby master Feature#21140] Add a method to get the address of certain JIT related functions Issue #21140 has been updated by ufuk (Ufuk Kayserilioglu). maximecb (Maxime Chevalier-Boisvert) wrote in #note-10: > if 5 years from now we make some CRuby change and 3 gems that Shopify depends on blow up. What do we do then? We would fix them forward. That's why we have our daily Ruby-head CI running, so that we can catch these kinds of changes as early as possible and fix any code that needs changing. This is something we've been doing for the last 3 years and we've fixed many similar incompatibilities in our codebase and/or our dependencies as appropriate. > My recommendation: guard this API behind a special configure flag that is separate from YJIT's. Something like `--enable-jit-gem-api`. I think that would result in RJIT and any other experimental JIT related project being completely irrelevant and kill any kind of experimentation on the platform. Ruby has always been a language of folks running with scissors, and I don't think we should stop doing that now. ---------------------------------------- Feature #21140: Add a method to get the address of certain JIT related functions https://bugs.ruby-lang.org/issues/21140#change-112028 * 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/