Project

General

Profile

Revision:

Revisions

# Date Author Comment
76268ed6 10/13/2026 09:42 AM rhenium (Kazuki Yamaguchi)

io.c: refactor io_getpartial()

io_getpartial() and io_read_nonblock() are now almost identical.

62d2c391 10/13/2026 09:42 AM rhenium (Kazuki Yamaguchi)

io.c: ignore failure to set O_NONBLOCK in ARGF.read_nonblock

Commit 1bafa4a59b29 (Ignore failure to set nonblock mode. (#6524),
2022-10-11) changed IO#read_nonblock to work with files on Windows, but
did not make the same change to ARGF.read_nonblock. Do so for ARGF as...

b10b8048 10/13/2026 09:39 AM rhenium (Kazuki Yamaguchi)

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.

9d123b1e 10/13/2026 09:29 AM hsbt (Hiroshi SHIBATA)

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

e5e36b4e 10/13/2026 09:29 AM hsbt (Hiroshi SHIBATA)

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

c68782a2 10/13/2026 09:29 AM hsbt (Hiroshi SHIBATA)

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

4f42bb94 10/13/2026 09:29 AM hsbt (Hiroshi SHIBATA)

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....

2722027e 10/13/2026 08:05 AM git[bot]

Update default gems list at 53e7d061f90ae80236e7a917b924ea [ci skip]

53e7d061 10/13/2026 08:04 AM byroot (Jean Boussier)

[ruby/json] Release 3.1.0

https://github.com/ruby/json/commit/a15b2ba603

72afd0b0 10/13/2026 07:32 AM byroot (Jean Boussier)

[ruby/json] Refactor rfc8785_sort_keys_proc

https://github.com/ruby/json/commit/d09e383d19

ee0f83a7 10/13/2026 07:09 AM git[bot]

Update bundled gems list as of 2026-10-13

83fdd0da 10/13/2026 04:14 AM peterzhu2118 (Peter Zhu)

[ruby/mmtk] Build with LTO when able

https://github.com/ruby/mmtk/commit/2dbb8005aa

f81c2121 10/13/2026 12:46 AM hsbt (Hiroshi SHIBATA)

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 memory) instead of returning false:...

c5c692c8 10/13/2026 12:46 AM hsbt (Hiroshi SHIBATA)

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

cb86c6d7 10/13/2026 12:46 AM hsbt (Hiroshi SHIBATA)

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

c83f90c6 10/13/2026 12:27 AM hsbt (Hiroshi SHIBATA)

[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

55e03ec0 10/12/2026 08:40 PM kddnewton (Kevin Newton)

[ruby/prism] Fix buffer length append check 0

https://github.com/ruby/prism/commit/812fd04263

98fd04f7 10/12/2026 05:01 PM kddnewton (Kevin Newton)

[ruby/prism] attach_comments

Revisit how we attach comments, allowing consumers to do it in C.

https://github.com/ruby/prism/commit/eb3528e580

31ace4fd 10/12/2026 03:11 PM kddnewton (Kevin Newton)

[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 for now....

ad29ad7a 10/12/2026 02:55 PM byroot (Jean Boussier)

[ruby/json] Handle invalid encoding in JSON path keys

https://github.com/ruby/json/commit/e19f7d75a6

86f192cf 10/12/2026 02:28 PM byroot (Jean Boussier)

[ruby/json] parser.c: only update the stack once fully spilled

https://github.com/ruby/json/commit/78d6a83a3c

c5597ac4 10/12/2026 02:22 PM byroot (Jean Boussier)

[ruby/json] Fix parsing of number with out of range negative exponents

https://github.com/ruby/json/commit/6ea62016fb

817023b8 10/12/2026 01:57 PM byroot (Jean Boussier)

[ruby/json] Fix parsing of unescaped NULL bytes in strings

https://github.com/ruby/json/commit/1b67eb3db2

90e7ab3a 10/12/2026 01:51 PM byroot (Jean Boussier)

[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

36f2a8e8 10/12/2026 12:33 PM Tiago Cardoso

[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.

bb12f054 10/12/2026 11:39 AM Earlopain (Earlopain _)

[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...

9e8bf735 10/12/2026 09:45 AM peterzhu2118 (Peter Zhu)

[ruby/mmtk] Resize objects to optimal size when moving

https://github.com/ruby/mmtk/commit/6d83b67d9a

a125858d 10/12/2026 09:10 AM hsbt (Hiroshi SHIBATA)

[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

26e67c38 10/12/2026 08:55 AM hsbt (Hiroshi SHIBATA)

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....

8382f95c 10/12/2026 08:22 AM make_now_just (Hiroya Fujinami)

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...

2d1859ff 10/12/2026 08:21 AM hsbt (Hiroshi SHIBATA)

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...

f8005098 10/12/2026 08:21 AM