General

Profile

Eregon (Benoit Daloze)

  • Login: Eregon
  • Registered on: 07/30/2009
  • Last sign in: 10/20/2026

Issues

open closed Total
Assigned issues 4 72 76
Reported issues 31 209 240

Projects

Project Roles Registered on
Ruby Committer 08/02/2012

Activity

Today

04:57 PM Ruby Bug #22477: rb_ec_clear_vm_stack() can still clear the VM stack before ec->cfp = NULL on aarch64
PRs:
master: https://github.com/ruby/ruby/pull/19561
4.0: https://github.com/ruby/ruby/pull/19562
3.4: https://github.com/ruby/ruby/pull/19563
3.3: https://github.com/ruby/ruby/pull/19564
Eregon (Benoit Daloze)
04:37 PM Ruby Bug #22477 (Open): rb_ec_clear_vm_stack() can still clear the VM stack before ec->cfp = NULL on aarch64
The fix for #21441 (e3ec101cc2) sets `ec->cfp = NULL` before `rb_ec_set_vm_stack(ec, NULL, 0)` in `rb_ec_clear_vm_stack()`.
That way, `thread_profile_frames()` called from a signal handler returns early instead of walking a stack that i...
Eregon (Benoit Daloze)
03:27 PM Ruby Bug #22476: rb_profile_frames() called from a signal handler segfaults while vm_make_env_each() is escaping a chain of frames
PR to fix this: https://github.com/ruby/ruby/pull/19559
I'll create backport PRs after this one is merged.
Eregon (Benoit Daloze)
01:16 PM Ruby Bug #22476: rb_profile_frames() called from a signal handler segfaults while vm_make_env_each() is escaping a chain of frames
I'm working on a fix, will post the PR when it's ready here, as well as create backport PRs. Eregon (Benoit Daloze)
01:08 PM Ruby Bug #22476 (Open): rb_profile_frames() called from a signal handler segfaults while vm_make_env_each() is escaping a chain of frames
Sampling profilers (like StackProf, Vernier, Datadog) call `rb_profile_frames()` from a signal handler.
Datadog uses a slight variant of `rb_profile_frames()` but it does not matter, it reproduces either way.
`rb_profile_frames()` segf...
Eregon (Benoit Daloze)

10/22/2026

08:10 AM Ruby Bug #19172: `ruby_thread_has_gvl_p` is innacurate sometimes -- document or change?
I can see that point of view and I would agree for most functions, but not for `ruby_thread_has_gvl_p()` and not for `ruby_native_thread_p()`.
Both of these functions, unlike almost all others, can be called without the GVL. If they cou...
Eregon (Benoit Daloze)

10/20/2026

10:20 AM Ruby Bug #22396: Using rb_postponed_job_trigger causes YJIT/ZJIT compiled methods side exits
alanwu (Alan Wu) wrote in #note-5:
> interrupt checking is also used for thread switching internally
Interesting.
I could reproduce a very similar issue but with no profiler or postponed job at all:
```
$ ruby -v --yjit --yjit-c...
Eregon (Benoit Daloze)

10/19/2026

08:31 PM Ruby Feature #22437: Speed up creation and basic operations of Struct / Data
And BTW the base `Data#initialize` needs to be kept because `Psych` relies on that to create Data instances (https://github.com/ruby/psych/pull/765).
That one would remain rather slow, but is used more rarely so matters less.
Eregon (Benoit Daloze)
08:28 PM Ruby Feature #22437: Speed up creation and basic operations of Struct / Data
I think the approach to define an `initialize` per subclass is the most promising, and where there is the most performance to gain.
TruffleRuby already generates an `initialize` per Struct subclass (with Ruby code) in some cases:
https:...
Eregon (Benoit Daloze)
07:25 PM Ruby Bug #22452: `rb_equal` returns true for `NaN == NaN`
There is also `equal?`:
```ruby
irb(main):003> RUBY_DESCRIPTION
=> "ruby 4.0.7 (2026-09-15 revision 229531a6cf) +PRISM [x86_64-linux]"
irb(main):001> Float::NAN == Float::NAN
=> false
irb(main):002> Float::NAN.equal?(Float::NAN)
=> true
...
Eregon (Benoit Daloze)

Also available in: Atom