[#120855] [Ruby master Bug#21104] Net::HTTP connections failing in Ruby >= 3.4.0 on macOS with Happy Eyeballs enabled — "mjt58 (Mike Thompson) via ruby-core" <ruby-core@...>

Issue #21104 has been reported by mjt58 (Mike Thompson).

14 messages 2025/02/01

[#120873] [Ruby master Bug#21111] RbConfig::CONFIG['CXX'] quietly set to "false" when Ruby cannot build C++ programs — "stanhu (Stan Hu) via ruby-core" <ruby-core@...>

Issue #21111 has been reported by stanhu (Stan Hu).

10 messages 2025/02/03

[#120884] [Ruby master Bug#21115] Etc.getgrgid is not Ractor-safe but is marked as such — "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>

Issue #21115 has been reported by Eregon (Benoit Daloze).

7 messages 2025/02/05

[#120897] [Ruby master Bug#21119] Programs containing `Dir.glob` with a thread executing a CPU-heavy task run very slowly. — "genya0407 (Yusuke Sangenya) via ruby-core" <ruby-core@...>

Issue #21119 has been reported by genya0407 (Yusuke Sangenya).

6 messages 2025/02/06

[#121054] [Ruby master Bug#21139] Prism and parse.y parses `it = it` differently — "tompng (tomoya ishida) via ruby-core" <ruby-core@...>

Issue #21139 has been reported by tompng (tomoya ishida).

19 messages 2025/02/14

[#121060] [Ruby master Feature#21140] Add a method to get the address of certain JIT related functions — "tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>

Issue #21140 has been reported by tenderlovemaking (Aaron Patterson).

23 messages 2025/02/14

[#121077] [Ruby master Misc#21143] Speficy order of execution const_added vs inherited — "fxn (Xavier Noria) via ruby-core" <ruby-core@...>

Issue #21143 has been reported by fxn (Xavier Noria).

15 messages 2025/02/17

[#121142] [Ruby master Misc#21154] Document or change Module#autoload? — "fxn (Xavier Noria) via ruby-core" <ruby-core@...>

Issue #21154 has been reported by fxn (Xavier Noria).

32 messages 2025/02/23

[#121172] [Ruby master Feature#21157] Comparison operator <> — lpogic via ruby-core <ruby-core@...>

SXNzdWUgIzIxMTU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGxwb2dpYyAoxYF1a2FzeiBQb21pZXTF

11 messages 2025/02/26

[ruby-core:121069] [Ruby master Feature#21140] Add a method to get the address of certain JIT related functions

From: "tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>
Date: 2025-02-15 18:27:52 UTC
List: ruby-core #121069
Issue #21140 has been updated by tenderlovemaking (Aaron Patterson).


nobu (Nobuyoshi Nakada) wrote in #note-2:
> I think the functions belong to built-in classes can be exported simply, i.e., other than related to VM.
> I want to manage that list least as possible.

I understand.  I think though, if YJIT uses some function, then I think we should make that function available for 3rd party JITs.  Can we use YJIT's bindgen code to generate the list?  Then we don't have to specifically maintain a separate list.

I made a list of symbols that RJIT uses but are not available:

```
"rb_ary_entry_internal"
"rb_ary_tmp_new_from_values"
"rb_ary_unshift_m"
"rb_ec_ary_new_from_values"
"rb_ec_str_resurrect"
"rb_ensure_iv_list_size"
"rb_fix_aref"
"rb_fix_div_fix"
"rb_fix_mod_fix"
"rb_fix_mul_fix"
"rb_get_symbol_id"
"rb_gvar_get"
"rb_hash_new_with_size"
"rb_hash_resurrect"
"rb_obj_as_string_result"
"rb_reg_new_ary"
"rb_str_bytesize"
"rb_str_concat_literals"
"rb_str_eql_internal"
"rb_str_getbyte"
"rb_sym_to_proc"
"rb_vm_bh_to_procval"
"rb_vm_concat_array"
"rb_vm_defined"
"rb_vm_get_ev_const"
"rb_vm_getclassvariable"
"rb_vm_ic_hit_p"
"rb_vm_opt_newarray_hash"
"rb_vm_opt_newarray_max"
"rb_vm_opt_newarray_min"
"rb_vm_opt_newarray_pack"
"rb_vm_set_ivar_id"
"rb_vm_setclassvariable"
"rb_vm_setinstancevariable"
"rb_vm_splat_array"
"rb_vm_throw"
"rb_vm_yield_with_cfunc"
```

We could probably export many of these functions, but I guess there are a significant number of `rb_vm_*` functions.  If we could reuse YJIT's bindgen code, that might make maintenance easier.

----------------------------------------
Feature #21140: Add a method to get the address of certain JIT related functions
https://bugs.ruby-lang.org/issues/21140#change-111987

* 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/


In This Thread