General

Profile

ivoanjo (Ivo Anjo)

Issues

open closed Total
Assigned issues 0 0 0
Reported issues 6 15 21

Activity

04/17/2026

06:30 PM Ruby Bug #21993: `rb_gc_update_tbl_refs` is incorrectly documented as the dcompact pair for `rb_mark_tbl_no_pin`, and is unsafe for `st_table`s with non-VALUE keys
Yeah I think that'd be fine! To be honest I never ever knew these APIs existed, I've been researching the GC and that's how I found it, so I suspect they might not be very common? ivoanjo (Ivo Anjo)
05:12 PM Ruby Bug #21993: `rb_gc_update_tbl_refs` is incorrectly documented as the dcompact pair for `rb_mark_tbl_no_pin`, and is unsafe for `st_table`s with non-VALUE keys
I guess objects that get a finalizer don't move -- e.g. `gc_is_moveable_obj` ==> `FALSE` so that's what made the finalizer table never be affected by this detail. ivoanjo (Ivo Anjo)

04/11/2026

02:56 PM Ruby Bug #21993 (Open): `rb_gc_update_tbl_refs` is incorrectly documented as the dcompact pair for `rb_mark_tbl_no_pin`, and is unsafe for `st_table`s with non-VALUE keys
Hey!
I work for Datadog on the [Ruby profiler](https://github.com/datadog/dd-trace-rb) and I've been exploring the TypedData GC API to understand the correct patterns for writing compaction-aware extensions.
While reading through t...
ivoanjo (Ivo Anjo)

03/11/2026

04:02 PM Ruby Feature #21950: Add a built-in CPU-time profiler
The opentelemetry community project includes people from a number of companies building profilers (datadog, google, elastic, polar signals) and it's proposing a new format that's inspired by pprof but tries to solve for some of its short... ivoanjo (Ivo Anjo)

01/29/2026

01:33 PM Ruby Bug #21840: Locking a mutex can lead to starvation
Really cool! I wonder if this will end up solving https://bugs.ruby-lang.org/issues/19717 as well / https://github.com/ruby/ruby/pull/8331 is an old PR for it. ivoanjo (Ivo Anjo)

12/11/2025

09:45 AM Ruby Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
byroot (Jean Boussier) wrote in #note-24:
> > I just don't think we should support this.
> ...
To be clear, we are aware we're doing really shady weird things to get a bit less overhead / a few more features, etc and we don't expect u...
ivoanjo (Ivo Anjo)

12/04/2025

10:27 AM Ruby Feature #21722: Expose rb_gc_mark_weak API for use in extensions
> @ivoanjo (Ivo Anjo) I don't know if this would work, but what about using rb_postponed_job_trigger to delay adding the object into a WeakMap? (there would also probably need to be a temporary buffer used to mark the object until it is ... ivoanjo (Ivo Anjo)
10:09 AM Ruby Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
> I'm fine with adding MOVEOBJ, it makes sense, but I don't think it's currently necessary. ObjectSpace.trace_object_allocations handles this by subscribing both to NEWOBJ and FREEOBJ and tracking the objects in its own hash table (subsc... ivoanjo (Ivo Anjo)

12/03/2025

11:06 AM Ruby Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
> That sounds like a use case for WeakRef or ObjectSpace::WeakMap.
> ...
In retrospect I was a bit confusing there -- The key missing bit is having something that's safe to use from `NEWOBJ` tracepoint, which is what `WeakRef` and `Weak...
ivoanjo (Ivo Anjo)
09:17 AM Ruby Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
Having `MOVEDOBJ` would be very useful for being able to use the address as identity + I think it may come in handy for caches -- I think it would solve the "a) Be able to identify or reference object without preventing its GC, even if t... ivoanjo (Ivo Anjo)

Also available in: Atom