1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266
|
-*- coding: utf-8 -*-
base-url = https://github.com/ruby/ruby
commit 76cca827ab52ab1d346a728f068d5b8da3e2952b
Author: nagachika <nagachika@ruby-lang.org>
AuthorDate: 2026-03-11 18:51:47 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-03-11 18:51:47 +0900
Bump v3.4.9
commit 3e9494c70bb7b23a5982e8b21087938e8a753b91
Author: nagachika <nagachika@ruby-lang.org>
AuthorDate: 2026-03-07 14:13:14 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-03-07 14:50:06 +0900
Bump zlib version to 3.2.3.
commit 0097b87b1e2c6aa60489527e421e8bf2e2791d69
Author: Mike Dalessio <mike@37signals.com>
AuthorDate: 2026-02-11 02:10:21 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-03-07 14:41:17 +0900
Fix UnboundMethod#== for methods from included/extended modules [Backport #21873]
Method#unbind clones the method entry, preserving its defined_class.
For methods mixed in via include/extend, defined_class is an ICLASS,
causing UnboundMethod#== to return false when comparing against the
same method obtained via Module#instance_method.
Resolve ICLASS defined_class in method_eq.
[Bug #21873]
commit 153fa85994f3f06c93e2b10726c98b6f3b824225
Author: John Hawthorn <john@hawthorn.email>
AuthorDate: 2026-02-10 11:39:51 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-03-07 14:17:15 +0900
objspace_dump: Skip invalid CME when dumping CCs
When a CC is invalidated only the klass field is set to 0. After it's
invalidated it isn't safe to access the CME, as it may have been freed.
I made a similar change in Ruby 4.0 in
640a2f1dc77c0ecf226dbd71cf7a1eb876a1f037, but assumed it was due to the
changes we'd made to callcaches making klass a weak-reference.
Co-authored-by: Christian Bruckmayer <christian.bruckmayer@shopify.com>
commit 43771bb0efcd139acd9112a770e8b8d719118dce
Author: Jean Boussier <jean.boussier@gmail.com>
AuthorDate: 2026-02-04 21:12:42 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-03-07 13:41:44 +0900
[3.4] Fix deadlock on th->interrupt_lock after fork
[Bug #21860]
If a thread was holding this lock before fork, it will not exist in the
child process. We should re-initialize these locks as we do with the VM
locks when forking.
Co-Authored-By: John Hawthorn <john@hawthorn.email>
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
commit a93ff4880da5c4e56f7ec2066a9c3f7748892231
Author: Jörmungandrk <github@zerodaysec.org>
AuthorDate: 2026-01-09 12:22:01 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-03-07 13:40:05 +0900
Fix integer overflow checks in enumerator
commit 46f51cb3a26e5bfc92251e7971697a9c31bcab44
Author: ZHIJIE XIE <40601688+dummyx@users.noreply.github.com>
AuthorDate: 2026-03-03 02:40:57 +0900
Commit: Luke Gruber <luke.gru@gmail.com>
CommitDate: 2026-03-06 10:57:24 +0900
string.c: guard tmp in rb_str_format_m (GH-16280)
[Bug #21931]
Keep tmp alive while RARRAY_CONST_PTR(tmp) is used by rb_str_format.
[alan: sunk the guard below usage]
Reviewed-by: Alan Wu <XrXr@users.noreply.github.com>
commit 981097a7390db47e06d78b760ed198bff8eb184b
Author: nagachika <nagachika@ruby-lang.org>
AuthorDate: 2026-01-25 18:21:53 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-01-25 18:21:53 +0900
merge revision(s) 8a586af33b59cae93a1bee13c39e87dd087a4a6b: [Backport #21838]
[PATCH] Don't force major GC when there are allocatable slots
[Bug #21838]
When we have allocatable slots, we can grow the heap instead of forcing
a major GC. This prevents major GC to be ran very often in certain situations.
See the ticket for more details.
On ruby-bench, we can see that this patch doesn't cause any significant
regressions:
-------------- ----------- ---------- --------- ----------- ---------- --------- -------------- -------------
bench master (ms) stddev (%) RSS (MiB) branch (ms) stddev (%) RSS (MiB) branch 1st itr master/branch
activerecord 148.2 0.3 59.2 150.0 0.8 69.7 1.015 0.988
chunky-png 435.2 0.3 72.9 438.8 0.1 66.7 0.993 0.992
erubi-rails 733.8 1.2 118.7 704.8 0.2 98.3 1.077 1.041
hexapdf 1400.4 1.1 247.0 1405.0 0.9 223.7 0.986 0.997
liquid-c 32.5 3.3 32.8 32.5 2.1 30.7 1.042 0.999
liquid-compile 31.0 1.7 35.1 33.4 3.9 32.8 0.938 0.928
liquid-render 84.7 0.4 30.8 86.3 0.4 30.8 0.981 0.982
lobsters 594.7 0.6 310.5 596.6 0.4 306.0 1.057 0.997
mail 75.6 2.8 53.3 76.9 0.7 53.2 0.968 0.982
psych-load 1122.8 1.2 29.2 1145.1 0.4 31.7 0.964 0.981
railsbench 1244.7 0.3 115.5 1254.8 1.1 115.2 0.939 0.992
rubocop 103.7 0.5 94.1 104.3 0.5 92.4 0.985 0.994
ruby-lsp 88.3 0.6 78.5 88.5 1.2 77.9 0.992 0.997
sequel 26.9 0.9 33.6 28.3 1.4 32.1 0.954 0.952
shipit 1119.3 1.5 171.4 1075.7 2.1 162.5 1.873 1.040
-------------- ----------- ---------- --------- ----------- ---------- --------- -------------- -------------
commit 02eb4eec87cbbb14c24b63678aa0cca625777414
Author: Randy Stauner <randy@r4s6.net>
AuthorDate: 2026-01-13 10:35:12 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-01-25 18:18:10 +0900
Add pushtoarray insn to fix segfault with forwarding + splat
Example insns diff for `def x = [3]; def a(...) = b(*x, 2, 3, ...)`
== disasm: #<ISeq:a@-e:1 (1,13)-(1,42)>
local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1])
[ 1] "..."@0
0000 putself ( 1)[Ca]
0000 putself
0000 opt_send_without_block <calldata!mid:x, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0000 splatarray true
0000 putobject 2
0000 putobject 3
+0000 pushtoarray 2
0000 getlocal_WC_0 "..."@0
0000 sendforward <calldata!mid:b, argc:1, ARGS_SPLAT|ARGS_SPLAT_MUT|FCALL|FORWARDING>, nil
0000 leave [Re]
This matches the insns produced by parse.y
commit 86e65fa1677180f5108157206edb01cfd25f24b6
Author: nagachika <nagachika@ruby-lang.org>
AuthorDate: 2026-01-25 17:48:12 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-01-25 17:48:12 +0900
merge revision(s) 4e0bb58a0a374b40b7691e7b7aa88e759a0fc9f2: [Backport #21811]
[PATCH] fix underflow
commit d5ca99a71ccb170db08e4b610d661ce3a18626f2
Author: nagachika <nagachika@ruby-lang.org>
AuthorDate: 2026-01-25 17:47:37 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-01-25 17:47:37 +0900
merge revision(s) d7a6ff8224519005d2deeb3f4e98689a8a0835ad: [Backport #21819]
[PATCH] [Bug #21819] Data objects without members should also be frozen
commit 8fa17ea3b2c857369c808a4384ff7ff8174d69f8
Author: nagachika <nagachika@ruby-lang.org>
AuthorDate: 2026-01-25 17:41:02 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-01-25 17:41:02 +0900
merge revision(s) 19e539c9ee1701b34189fa0c1feb942adeb0e326: [Backport #21814]
[PATCH] [Bug #21814] Fix negative bignum modulo
If modulo is zero, do not apply bias even if the divisor is zero.
`BIGNUM_POSITIVE_P` is true even on bignum zero.
commit 55920677854fe757c36368785f6dfdbce0b49ab7
Author: nagachika <nagachika@ruby-lang.org>
AuthorDate: 2026-01-25 17:12:40 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-01-25 17:20:48 +0900
merge revision(s) 86320a53002a3adaf35ad7434c70e86747a8b345: [Backport #21326] [Backport #21807]
[PATCH] Fix compilation for forwarding params in Prism
[Bug #21326]
commit 28db1b5c3d3a9a5c60762622cb0c3c36c021e8e4
Author: nagachika <nagachika@ruby-lang.org>
AuthorDate: 2026-01-25 16:41:13 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-01-25 16:41:13 +0900
merge revision(s) 61bab1889048f758396acf671c9797d6bc52504b: [Backport #21757]
[PATCH] Rename to `struct rbimpl_size_overflow_tag`
This struct is used for addition not only for multiplication, so
remove the word `mul`, and make the member names more descriptive.
commit c409e343fb14438c2e5304f10ad4c6919e30ac2e
Author: nagachika <nagachika@ruby-lang.org>
AuthorDate: 2026-01-25 16:40:50 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-01-25 16:40:50 +0900
merge revision(s) 99ff0224a564b59df3ba8fbd7911dd41a7fdde34: [Backport #21757]
[PATCH] Move rbimpl_size_add_overflow from gc.c to memory.h
commit 45100545b056792fb5701a93abd1f78259a6224e
Author: nagachika <nagachika@ruby-lang.org>
AuthorDate: 2026-01-25 16:37:10 +0900
Commit: nagachika <nagachika@ruby-lang.org>
CommitDate: 2026-01-25 16:37:10 +0900
merge revision(s) f430fbbfacea5690d790dd9060ca4118431fc2fb, c353b625297162024b5a80480664e599dd49a294: [Backport #21787]
[PATCH] IO::Buffer: Fill the test for `IO::Buffer#clear`
[PATCH] [Bug #21787] IO::Buffer: Check addition overflows
https://hackerone.com/reports/3437743
commit 2bbc06e21d040ecbf4e32d3c4805685baf957d51
Author: Hiroshi SHIBATA <hsbt@ruby-lang.org>
AuthorDate: 2026-01-19 11:25:11 +0900
Commit: Hiroshi SHIBATA <hsbt@ruby-lang.org>
CommitDate: 2026-01-21 16:52:39 +0900
merge revision(s) d209e6f1c0a93ad3ce1cc64dd165a6b67672614d: [Backport #21715]
[PATCH] search_nonascii(): Replace UB pointer cast with memcpy
Casting a pointer to create an unaligned one is undefined behavior in C
standards. Use memcpy to express the unaligned load instead to play by
the rules.
Practically, this yields the same binary output in many situations
while fixing the crash in [Bug #21715].
commit c04363c0a09d1e9cd03ff2e5cf6dd83e87a8a90c
Author: Takashi Kokubun <takashikkbn@gmail.com>
AuthorDate: 2026-01-06 07:08:15 +0900
Commit: Takashi Kokubun <takashikkbn@gmail.com>
CommitDate: 2026-01-06 07:08:17 +0900
Remove k0kubun from CODEOWNERS
nagachika will take over the maintenance of ruby_3_4 going forward.
|