Skip to content

[pull] master from ruby:master - #1399

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

[pull] master from ruby:master#1399
pull[bot] merged 8 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Sep 11, 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 : )

youdie006 and others added 8 commits September 11, 2026 12:54
…is given

The C extension walks the given hash and writes only the keys present
(generator.c:1860), and since #1076 the pure generator does the same.
The Java one re-wrote every option with its class default, so any
configure or merge silently reset max_nesting, allow_nan, ascii_only,
script_safe, strict, buffer_initial_length, allow_duplicate_key,
as_json and sort_keys.

Re-enables the two tests #1076 marked pending on JRuby.

ruby/json@bbc73fb69d
escape.c documents html_escape as converting with #to_s "only if it's
not T_STRING", and the C extension implements that. The pure fallback
converted unconditionally, so a String subclass overriding to_s
escaped different bytes on JRuby than on CRuby.

ruby/erb@0f8b6ce9ce
Other code size metrics such as `code_region_bytes` use the `_bytes`
suffix and `side_exit_size` was the odd one out.
[Feature #22297]

When generating code dynamically, you often need to check whether
the method already exists, regardless of visibility.

Currently it requires two method calls and two method lookups:

```ruby
mod.method_defined?(name) || mod.private_method_defined?(name)
```

This is both inconvenient and wastefull in hotspots.

You can now match all methods regardless of visibility with
a single lookup:

```ruby
mod.method_defined?(name, true, true)
```
In builds with RUBY_DEBUG on and we reach a crash like:

```
[BUG] buffer 0x00007b53c94d6548 freed with old_size=19, but was allocated with size=135599789796672
```

Show the type info for the Ruby object we're currently freeing, if any.

The new error message is like:

```
[BUG] buffer 0x00007b53c94d6548 freed with old_size=19, but was allocated with size=135599789796672 while freeing 0x00000001082b0040 T_DATA:VM/cc_refinement_set
```

This is very useful when debugging crashes like this.
This way it works on MMTk. The voodo tied to default GC details for
promotions and write-barriers don't test effectively on any other GC but
at least the test completes.
@pull pull Bot locked and limited conversation to collaborators Sep 11, 2026
@pull pull Bot added the ⤵️ pull label Sep 11, 2026
@pull
pull Bot merged commit 7c66bea into turkdevops:master Sep 11, 2026
0 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.

5 participants