Skip to content

Comments

[pull] master from ruby:master#798

Merged
pull[bot] merged 1 commit intoturkdevops:masterfrom
ruby:master
Feb 21, 2026
Merged

[pull] master from ruby:master#798
pull[bot] merged 1 commit intoturkdevops:masterfrom
ruby:master

Conversation

@pull
Copy link

@pull pull bot commented Feb 21, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

…#16176)

Anonymous modules/classes get names like `"#<Module:0x00007f...>"` from `rb_class2name`, which include a memory address that changes between runs. This makes stat keys unstable for diffing across runs and is less informative than it could be for display.

Add three variants for class naming:
- get_class_name: raw rb_class2name (unchanged, for internal use)
- get_stable_class_name: strips addresses, includes superclass for anonymous classes (e.g. `"#<Class(String)>"`). For stat keys.
- get_debug_class_name: like stable but preserves address when the name can't be fully resolved (e.g. `"#<Class(String):0x...>"`, `"#<Module:0x...>"`). For display where disambiguation matters.

Use get_stable_class_name in stat key paths (qualified_method_name and count_call_to). Use get_stable_class_name in display paths that already have a separate pointer via ptr_map. Use get_debug_class_name in display paths without a separate pointer (type specializations, unreachable messages).

I did this when trying to identify the source of the `#<Module:0x...>#object_id` stat we get from lobsters.  None of these cases handled that (which as we identified was Tempfile using Delegate), so I'm not sure how useful it might be, but it still seemed potentially useful enough to propose and discuss.
@pull pull bot locked and limited conversation to collaborators Feb 21, 2026
@pull pull bot added the ⤵️ pull label Feb 21, 2026
@pull pull bot merged commit 727612b into turkdevops:master Feb 21, 2026
1 of 2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant