Project

General

Profile

Activity

From 10/07/2026 to 10/13/2026

Today

09:39 AM Ruby Revision b10b8048 (git): io_buffer.c: use rb_off_t consistently
Fix an rb_off_t value being implicitly converted to off_t and then back
to rb_off_t.
rhenium (Kazuki Yamaguchi)
09:29 AM Ruby Revision 9d123b1e (git): Saturate parser columns at INT_MAX
Token columns are int, so a token past column INT_MAX got a negative column, and the excerpt shown for a syntax error there was read from before the line.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
09:29 AM Ruby Revision e5e36b4e (git): Range-check parser columns with rb_len2int
rb_long2int is a plain cast where int and long have the same width, so on 64-bit mswin a column past INT_MAX wrapped instead of raising RangeError as it does on LP64.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
09:29 AM Ruby Revision c68782a2 (git): Hold heredoc offsets in rb_len_t
Where rb_len_t is wider than long, a heredoc opener past column LONG_MAX made the long offset negative, and the identifier and the restored lexer position were read from before the line.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropi...
hsbt (Hiroshi SHIBATA)
09:29 AM Ruby Revision 4f42bb94 (git): Hold parser string lengths in rb_len_t
rb_parser_string_t kept its length in a long, so rb_str_to_parser_string had to reject a String longer than LONG_MAX where rb_len_t is wider than long. Now the parser string holds the whole length and the check is gone.
Co-Authored-By: ...
hsbt (Hiroshi SHIBATA)
08:05 AM Ruby Revision 2722027e (git): Update default gems list at 53e7d061f90ae80236e7a917b924ea [ci skip]
git[bot]
08:04 AM Ruby Revision 53e7d061 (git): [ruby/json] Release 3.1.0
https://github.com/ruby/json/commit/a15b2ba603 byroot (Jean Boussier)
07:32 AM Ruby Revision 72afd0b0 (git): [ruby/json] Refactor `rfc8785_sort_keys_proc`
https://github.com/ruby/json/commit/d09e383d19 byroot (Jean Boussier)
07:09 AM Ruby Revision ee0f83a7 (git): Update bundled gems list as of 2026-10-13
git[bot]
06:29 AM Ruby Feature #22431: Add `IO#unpack` and `IO#unpack1`
The current `String#unpack` has its signature as:
```
String#unpack(template, offset: 0, &block)
```
The concern for unbounded IO read can be potentially solved by having a `maxlen` option:
```
IO#unpack(template, maxlen = n...
ntkme (Natsuki Natsume)
03:14 AM Ruby Feature #22431: Add `IO#unpack` and `IO#unpack1`
I understand the motivation and have wanted this myself, but there seem to be many things to consider. `unpack` has specifiers like `X` and `@` that do not fit streams. We would also need to decide how to handle specifiers with unbounded... mame (Yusuke Endoh)
04:14 AM Ruby Revision 83fdd0da (git): [ruby/mmtk] Build with LTO when able
https://github.com/ruby/mmtk/commit/2dbb8005aa peterzhu2118 (Peter Zhu)
02:09 AM Ruby Bug #22432 (Open): Range#include? returns true for the end of an empty range of single-character Strings
A Range whose ends are both single ASCII characters reports that it includes its end even when the range is empty.
```ruby
r = "z".."a"
r.to_a #=> []
r.include?("a") #=> true
r.member?("a") #=> true
r.cover?("a") #=> ...
sferik (Erik Berlin)
12:46 AM Ruby Revision f81c2121 (git): Index the regexp match cache by OnigPosition
The match cache index, the fail count and the threshold to enable the cache grow with the string length times the number of cache points, but were long, which is 32-bit on mswin. There the following raised RegexpError (failed to allocate... hsbt (Hiroshi SHIBATA)
12:46 AM Ruby Revision c5c692c8 (git): Traverse shareable Arrays by rb_len_t
RARRAY_LENINT raises RangeError for an Array longer than INT_MAX. Ractor.make_shareable failed on one after freezing it, and so did Ractor.shareable? and Ractor.make_shareable(copy: true).
Co-Authored-By: Claude Opus 5.5 <noreply@anthro...
hsbt (Hiroshi SHIBATA)
12:46 AM Ruby Revision cb86c6d7 (git): Count the Array#product positions in rb_len_t
An int counter overflows once an array has more than INT_MAX elements. On LP64, product with a block then yielded the element at index 1 after the one at INT_MAX, instead of the one at 2**31.
Co-Authored-By: Claude Opus 5.5 <noreply@ant...
hsbt (Hiroshi SHIBATA)
12:27 AM Ruby Revision c83f90c6 (git): [ruby/zlib] Return the full input length from Zlib::ZStream#avail_in
The int cast turned a remainder longer than INT_MAX into a wrong or negative number.
https://github.com/ruby/zlib/commit/d23d925f67
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)

10/12/2026

10:43 PM Ruby Feature #22431 (Open): Add `IO#unpack` and `IO#unpack1`
I would like to have ruby add `IO#unpack` and `IO#unpack1` that effectively does both `IO#read(...)` and `String#unpacking(...)` in one call.
This can significantly improve the performance of consuming data in a variable-length encodi...
ntkme (Natsuki Natsume)
08:40 PM Ruby Revision 55e03ec0 (git): [ruby/prism] Fix buffer length append check 0
https://github.com/ruby/prism/commit/812fd04263 kddnewton (Kevin Newton)
05:01 PM Ruby Revision 98fd04f7 (git): [ruby/prism] attach_comments
Revisit how we attach comments, allowing consumers to do it in C.
https://github.com/ruby/prism/commit/eb3528e580
kddnewton (Kevin Newton)
03:11 PM Ruby Revision 31ace4fd (git): [ruby/prism] Use SSE2, not SSSE3
Pre-compilation could potentially enable SSSE3, when the target
the code is being installed on might not actually have it. In
order to use more modern instruction sets, we need runtime
detection. It's simpler just to rely on the baseline...
kddnewton (Kevin Newton)
02:55 PM Ruby Revision ad29ad7a (git): [ruby/json] Handle invalid encoding in JSON path keys
https://github.com/ruby/json/commit/e19f7d75a6 byroot (Jean Boussier)
02:28 PM Ruby Revision 86f192cf (git): [ruby/json] parser.c: only update the stack once fully spilled
https://github.com/ruby/json/commit/78d6a83a3c byroot (Jean Boussier)
02:22 PM Ruby Revision c5597ac4 (git): [ruby/json] Fix parsing of number with out of range negative exponents
https://github.com/ruby/json/commit/6ea62016fb byroot (Jean Boussier)
01:57 PM Ruby Revision 817023b8 (git): [ruby/json] Fix parsing of unescaped NULL bytes in strings
https://github.com/ruby/json/commit/1b67eb3db2 byroot (Jean Boussier)
01:51 PM Ruby Revision 90e7ab3a (git): [ruby/json] ResumableParser: fix handling of incomplete unicode escape
`spe` is the string end, so if the escape is incomplete, it doesn't
mean we reached the end of stream, hence it's a syntax error, not
an EOS error.
https://github.com/ruby/json/commit/c1a4372837
byroot (Jean Boussier)
01:40 PM Ruby Bug #22427: `--enable=zjit` does not enable ZJIT
Thanks, Proposed fix in https://github.com/ruby/ruby/pull/19307 eightbitraptor (Matt V-H)
04:59 AM Ruby Bug #22427 (Open): `--enable=zjit` does not enable ZJIT
`ruby --help` lists `zjit` under "Features" (`zjit Method-based JIT compiler (default: disabled).`), but `--enable=zjit` alone does not enable ZJIT, while `--enable=yjit` does enable YJIT.
```
$ ruby -v
ruby 4.0.7 (2026-09-15 revis...
znz (Kazuhiro NISHIYAMA)
12:34 PM Ruby Feature #13677 (Closed): Add more details to error "Name or service not known (SocketError)"
Applied in changeset commit:git|36f2a8e807a44dc3761e023498887f92a12e7735.
----------
[Feature #13677] Add host to addrinfo resolution errors
hostname is added as a suffix to getaddrinfo error messages. for
example, a "name or service n...
Anonymous
12:33 PM Ruby Revision 36f2a8e8 (git): [Feature #13677] Add host to addrinfo resolution errors
hostname is added as a suffix to getaddrinfo error messages. for
example, a "name or service not known" error message becomes "name or
service not known for `invalidthost.com`.
Tiago Cardoso
11:39 AM Ruby Revision bb12f054 (git): [ruby/prism] Initialize `filepath` option to the empty string
Same as `current_string`, set it to be empty.
Similarly, when populating user-provided options, we need to check the lengh, same as for `encoding`.
Closes https://github.com/ruby/prism/issues/4249
https://github.com/ruby/prism/commit/c...
Earlopain (Earlopain _)
09:45 AM Ruby Revision 9e8bf735 (git): [ruby/mmtk] Resize objects to optimal size when moving
https://github.com/ruby/mmtk/commit/6d83b67d9a peterzhu2118 (Peter Zhu)
09:35 AM Ruby Bug #22430 (Open): regex counted group with a zero-width iteration misses a match
repro:
```ruby
/\A(?:a|^){2}\z/.match?("a") # true
/\A(?:a|^){2,3}\z/.match?("a") # false
/\A(?:\B|a){3}\z/.match?("aa") # false
/\A(?:^a*){2,3}\z/.match?("a") # false
```
Perl and Python return true for all four. Possib...
robertmorelli (Robert Morelli)
09:33 AM Ruby Bug #22429 (Open): regex empty capture group in a counted loop prevents a match
repro:
```ruby
/\A(?:(){1,2}?a)+\z/.match?("aa") # false
/\A(?:(?:){1,2}?a)+\z/.match?("aa") # true
/\A(?:(){1,2}a)+\z/.match?("aa") # true
```
An empty capture `()` behaves differently from `(?:)`. Perl, Python and Onig...
robertmorelli (Robert Morelli)
09:10 AM Ruby Revision a125858d (git): [ruby/digest] Limit the hexencode and bubblebabble results by RB_LEN_MAX
The result is a String, whose length can exceed LONG_MAX on mswin.
https://github.com/ruby/digest/commit/de4c1f26d7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
08:55 AM Ruby Revision 26e67c38 (git): Use the default timeout in test_super_in_refined_prepended_module_method_in_thread
The 1 second timeout expired on the Windows runners, although the child had finished all its assertions without an error. Use the default like the other tests in this file.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
08:22 AM Ruby Revision 8382f95c (git): Prevent double free for too big repetition quantifiers (#13332)
Prevent double free for too big repetition quantifiers
The previous implementation calls `free(node)` twice (on parsing and compiling a
regexp) when it has an error, so it leads to a double-free issue. This
commit enforces `free(node)` ...
make_now_just (Hiroya Fujinami)
08:22 AM Ruby Bug #22428 (Open): Fiber scheduler: rb_nogvl returns as if the function ran when an offloaded operation is cancelled before execution
## Description
When a fiber scheduler cancels an offloaded blocking operation before a worker starts it, `rb_nogvl` returns normally even though the function never ran. It returns the zero-initialized result, so the caller cannot dist...
watson1978 (Shizuo Fujita)
08:21 AM Ruby Revision 2d1859ff (git): Reject a compiled program too big for its offset type
Concatenated large repeats reach a program past INT_MAX from a few hundred
kilobytes of source, and the offsets emitted into it wrap. Cap the size
while the program is emitted, which does not depend on the length pass that
overflows alo...
hsbt (Hiroshi SHIBATA)
08:21 AM Ruby Revision f8005098 (git): Avoid overflow in the quantifier expansion size check
Nested bounded repeats let the int product tlen * qn->lower overflow, so
the check that keeps the compiler from unrolling a large repeat could pass
for an enormous one, hanging the compile or emitting wrapped jump offsets.
Compare agains...
hsbt (Hiroshi SHIBATA)
08:15 AM Ruby Revision 0e01c2a8 (git): [ruby/json] More hardening against adversarial `encode` methods
https://github.com/ruby/json/commit/429c109458 byroot (Jean Boussier)
08:11 AM Ruby Revision 78a31f67 (git): [ruby/json] Index the generated JSON array by rb_len_t
An int index overflows on an Array longer than INT_MAX, which LP64 and now mswin can hold.
https://github.com/ruby/json/commit/8df32ab074
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
07:31 AM Ruby Revision 3edde2d2 (git): Size the CGI.escapeHTML overflow test by rb_len_t
The test assumed the length is narrower than size_t wherever unsigned long is, which stops holding once rb_len_t widens on mswin. It keeps running on mingw.
https://bugs.ruby-lang.org/issues/22400
Co-Authored-By: Claude Opus 5.5 <norep...
hsbt (Hiroshi SHIBATA)
07:31 AM Ruby Revision 08a554ec (git): Accept the long long conversion error in the IO::Buffer.string spec
The size is converted to rb_len_t, and the message names long long instead of long once rb_len_t widens on mswin.
https://bugs.ruby-lang.org/issues/22400
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
07:31 AM Ruby Revision 29c5e0bc (git): Check the Array#product size against the rb_len_t range
MUL_OVERFLOW_LONG_P falls back to LONG_MIN and LONG_MAX without the overflow builtin, so once rb_len_t widens on mswin it would reject a product of 2**31 or more that the result array can hold.
https://bugs.ruby-lang.org/issues/22400
C...
hsbt (Hiroshi SHIBATA)
07:31 AM Ruby Revision 3d73c09f (git): Keep the branch target count of the coverage cache as rb_len_t
LONG2FIX and FIX2LONG would narrow it to long once rb_len_t widens on mswin, where Fixnum is also only 31 bits.
https://bugs.ruby-lang.org/issues/22400