Skip to content

[pull] master from ruby:master#1192

Merged
pull[bot] merged 12 commits into
turkdevops:masterfrom
ruby:master
Jul 8, 2026
Merged

[pull] master from ruby:master#1192
pull[bot] merged 12 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Jul 8, 2026

Copy link
Copy Markdown

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 : )

BurdetteLamar and others added 12 commits July 8, 2026 00:26
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
Guard the `RUBY_NO_FREE` environment variable which disables `xfree`
behind a compile-time flag `-DRUBY_NO_FREE`.  It is a debugging feature,
and should not exist in production environment.
Now that the shape contains the slot capacity, we should update
the shape for all objects when moving them, not just T_OBJECT.
`rb_gc_obj_slot_size` has to check the page metadata to
get the slot size, which likely cause cache misses.

`rb_obj_shape_slot_size` does simple arithmetic using
only a few shape bits.

```
compare-ruby: ruby 4.1.0dev (2026-07-08T03:48:16Z master 01c5b2e) +PRISM [arm64-darwin25]
built-ruby: ruby 4.1.0dev (2026-07-08T10:17:41Z gc-changed-slot-size 08029b0) +PRISM [arm64-darwin25]
warming up.
```

|                        |compare-ruby|built-ruby|
|:-----------------------|-----------:|---------:|
|binary_concat_embedded  |      5.262M|    5.707M|
|                        |           -|     1.08x|
Expand the room for all items at once before unpacking them, instead
of extending it one by one.
Convert optional argument `offset` after the mandatory arguments have
done.
@pull pull Bot locked and limited conversation to collaborators Jul 8, 2026
@pull pull Bot added the ⤵️ pull label Jul 8, 2026
@pull pull Bot merged commit 1f65735 into turkdevops:master Jul 8, 2026
1 check was pending
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.

6 participants