General

Profile

byroot (Jean Boussier)

Issues

open closed Total
Assigned issues 0 28 28
Reported issues 28 136 164

Projects

Project Roles Registered on
Ruby Committer 09/27/2021

Activity

04/25/2026

03:59 AM Ruby Bug #22013 (Closed): Array#| deduplication via eql? breaks when total element count exceeds ~16
Applied in changeset commit:git|97c070c244ebd76cbf4d9a5b81dca08f4bda6f05.
----------
[DOC] Clarify array methods using `eql?`
[Bug #22013]
Up to a certain size, only `eql?` is used, but for larger arrays
a Hash is used an `#hash` beco...
byroot (Jean Boussier)
02:39 AM Ruby Bug #22013: Array#| deduplication via eql? breaks when total element count exceeds ~16
> It would help to add a note similar to Object#eql? docs
Yes that is what I said.
https://github.com/ruby/ruby/pull/16786
byroot (Jean Boussier)
03:59 AM Ruby Revision 97c070c2 (git): [DOC] Clarify array methods using `eql?`
[Bug #22013]
Up to a certain size, only `eql?` is used, but for larger arrays
a Hash is used an `#hash` becomes necessary.
We could consider always checking `#hash` for consistency, but
that would decrease performance.
At the very lea...
byroot (Jean Boussier)

04/23/2026

10:48 PM Ruby Feature #22011: Hash tables with swiss table
Just a side note, enlarging `struct st_table` by 16B as some consequence for various objects sizes (e.g. Hash goes from pool 80 to pool 96, but a bunch of other structs embed `struct st_table`).
I had a vague plan to collocate the `bi...
byroot (Jean Boussier)
10:38 PM Ruby Bug #22013: Array#| deduplication via eql? breaks when total element count exceeds ~16
You are missing the corresponding `hash` method:
```ruby
def hash
[self.class, id].hash
end
```
It is somewhat implied by the mention of `#eql?` (hash based equality) but the documentation could be more explicit of cour...
byroot (Jean Boussier)

04/21/2026

11:50 PM Ruby Revision 5bd3e85e (git): Make `rb_enc_str_coderange` inlinable by default
This is a generalization of the optimization done in re.c
as part of d0fbdb005cecd8513aeacb234365d71f9a9b521e.
Code that deal with coderange can benefit significantly from
avoiding that function call, assuming coderange is often already...
byroot (Jean Boussier)
07:30 AM Ruby Revision 47e06127 (git): class.c: Make cvc_tbl a managed object
[Bug #21952]
Solves the double-free or use after-free concern with boxes.
Now entries can safely be used for copy-on-write.
Also is likely necessary to make it save to read cvar from
secondary ractors, as allowed since: ab32c0e690b805c...
byroot (Jean Boussier)

04/18/2026

10:32 PM Ruby Feature #21962: Add deep_freeze for recursive freezing
I don't have a strong opinion here, but one argument I could see for inclusion in core is to optimize frozen constants, e.g.
```ruby
SCHEMA = [
{ type: :foo, tags: ["a", "b"] },
{ type: :bar, tags: ["c", "d"] },
...
].deep_...
byroot (Jean Boussier)
09:06 PM Ruby Revision 7ba00509 (git): [ruby/json] Release 2.19.4
https://github.com/ruby/json/commit/6688a814bf byroot (Jean Boussier)
08:59 PM Ruby Bug #22007: Inconsistent type checking on rescue
Eregon (Benoit Daloze) wrote in #note-2:
> I think any expression should be allowed and just call `===` on them.
Agreed. To me `rescue` is just a shorthand for `rescue e; case e; when ` but that is strangely limited.
I suspect rem...
byroot (Jean Boussier)

Also available in: Atom