Activity
From 11/01/2025 to 11/07/2025
Today
-
05:34 PM Feature #21653: Unify Hash methods and preserving default/default_proc
- I just confirmed the behavior described on version 3.5.0dev, but for Hash#select. I'll check other methods to see which of them are not preserving `default` and `default_proc`
-
05:22 PM Feature #21653: Unify Hash methods and preserving default/default_proc
- I confirmed the behavior you described on version 3.2.4 while testing Hash#compact, but looks like it is already fixed on version 3.5.0dev (Although I did not checked the other methods you mentioned).
- 04:54 PM Revision 9bbe4b60 (git): ZJIT: Carve out IseqPayload into a separate module (#15098)
-
03:29 PM Revision ae60b0bf (git): Use DOT_WAIT for old GNU make [ci skip]
-
02:47 PM Revision a1366f21 (git): [Feature #19630] [DOC] News about removal of IO operation with `|`
-
02:46 PM Revision 201ed754 (git): Suppress sign-compare warnings
-
02:35 PM Revision a2201570 (git): Remove `rb_path_check` declaration
- Implementation was removed in https://github.com/ruby/ruby/commit/a4c051b870ac7f7b3c5482baf05600e1f6751b47
-
12:57 PM Revision 41865bb6 (git): Use `IO.popen` instead of `IO.foreach` with pipe
-
11:42 AM Revision 1f32464a (git): Update Bundler::CurrentRuby::ALL_RUBY_VERSIONS
-
11:42 AM Revision 996cae65 (git): Depricate IO operation with `|`
-
11:42 AM Revision f4e01783 (git): Prism update for 4.0
-
11:42 AM Revision a4c051b8 (git): Remove PATH check
-
11:07 AM Revision f3dd4bef (git): Skip removed test for JSON.deep_const_get
-
09:31 AM Bug #21671: Rails CI raises `Assertion Failed: rbimpl_rstring_getmem:RB_TYPE_P(str, RUBY_T_STRING): actual type: 26` with "-DENABLE_PATH_CHECK=0 -DRUBY_DEBUG=1" enabled
- The failure comes from `rb_intern3 -> sym_find_or_insert_static_symbol` (during Prism parsing).
cc @luke-gru and @jhawthorn, maybe this ring a bell? -
07:14 AM Bug #21671: Rails CI raises `Assertion Failed: rbimpl_rstring_getmem:RB_TYPE_P(str, RUBY_T_STRING): actual type: 26` with "-DENABLE_PATH_CHECK=0 -DRUBY_DEBUG=1" enabled
- I tried to identify which commit introduces this assertion failure but not found.
-
07:13 AM Bug #21671 (Open): Rails CI raises `Assertion Failed: rbimpl_rstring_getmem:RB_TYPE_P(str, RUBY_T_STRING): actual type: 26` with "-DENABLE_PATH_CHECK=0 -DRUBY_DEBUG=1" enabled
- Recently Rails CI using "-DENABLE_PATH_CHECK=0 -DRUBY_DEBUG=1" enabled ruby raises `Assertion Failed: rbimpl_rstring_getmem:RB_TYPE_P(str, RUBY_T_STRING): actual type: 26` assertion failures.
https://buildkite.com/rails/rails-nightly/... - 09:07 AM Revision a00f425e (git): Update default gems list at a881f2a0f441bf6d06a68bf711ca81 [ci skip]
-
09:06 AM Revision a881f2a0 (git): [ruby/json] Release 2.16.0
- https://github.com/ruby/json/commit/5a12067f88
-
09:02 AM Revision cd8902cc (git): [ruby/json] Deprecate `JSON::State#[]` and `JSON::State#[]=`
- This prevent from freezing and sharing state instances.
If you needs some sort of arguments or extra state to the generator
methods, consider using `JSON::Coder` instead.
https://github.com/ruby/json/commit/e9fbc8937f -
08:46 AM Revision da6ba845 (git): [ruby/json] Get rid of JSON.deep_const_get (private API)
- https://github.com/ruby/json/commit/826cb2a4f4
-
08:32 AM Misc #21647: DevMeeting-2025-11-13
- * [Feature #21637] tracepoint: add support for global variables read/write events (viralpraxis)
* There seems to be no straightforward way to trace gvar reads/writes in runtime
* `Kernel.trace_var` only works when gvar name is know... -
07:41 AM Revision 6d81969b (git): Development of 4.0.0 started.
-
07:41 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- I have attached a screenshot showing the problem. Notice in the stack trace on the bottom of the page that the method ` bmp::Bitmap::save(const std::filesystem::path & filename)` calls fclose but ends up calling the Ruby version! Not the...
-
06:48 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- In my case I created a Ruby extension based on https://github.com/baderouaich/BitmapPlusPlus. Every time I tried to save a bitmap though it was corrupted. I submitted a bug to the project - https://github.com/baderouaich/BitmapPlusPlus/i...
-
06:12 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- I can't the exact cause how the problem occurs, maybe passing `FILE*` opened in other than Ruby to `rb_w32_fclose`?
usa (Usaku NAKAMURA) wrote in #note-7:
> I'm still a bit concerned about compatibility with existing extension libr... -
05:05 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- The universal crt was introduced by Microsoft in 2015 (https://learn.microsoft.com/en-us/cpp/porting/upgrade-your-code-to-the-universal-crt?view=msvc-170) and Ruby for Windows has used it since Ruby 3.1 in 2021 (https://rubyinstaller.org...
- 04:14 AM Revision aaf1f53d (git): Follow renaming from Namespace to Ruby::Box
- 04:14 AM Revision 8ebeb751 (git): Update Ruby Box document, delete problems/discussions already resolved
- 04:14 AM Revision 49c0502f (git): Apply renaming to Ruby::Box in test codes
- 04:14 AM Revision 19d4663d (git): Use RUBY_BOX environment variable instead of RUBY_NAMESPACE
- 04:14 AM Revision ccad753c (git): Re-rename files wrongly renamed
- 04:14 AM Revision c4691ef0 (git): Rename Namespace to Ruby::Box
- 04:14 AM Revision 95a110a9 (git): Define ::Ruby module earlier to define classes under it
- 04:14 AM Revision d2a587c7 (git): renaming internal data structures and functions from namespace to box
- 04:14 AM Revision aaa12347 (git): update referenced filenames from namespace to box
- 04:14 AM Revision 50b9d9d3 (git): rename namespace.c (and others) to box.c
- 04:14 AM Revision f19b29d1 (git): Add namespace tests about global variables, toplevel methods
11/06/2025
-
11:49 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- @alanwu
I'm still a bit concerned about compatibility with existing extension libraries, but with Ruby4 about to be released, it might be a good time to make the change. So, I'm not opposed to it this time. -
07:38 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- Thanks @alanwu. I added comments to the commit in Github, but copying here:
This MR will result in the Ruby dll exporting the symbol _fclose instead of fclose. The exporting happens here:
https://github.com/ruby/ruby/blob/c6c92bdce3ad2... -
03:51 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- Recent C runtimes on Windows have C99 compliant fclose(), and I think overriding it and breaks otherwise standard-compliant extensions. Removing the fclose() override passes CI, at least. <https://github.com/ruby/ruby/pull/15073>
@usa W... -
11:46 PM Revision cf4a034d (git): Use rb_set_memsize for constant cache tables
- These were converted to a set in
c0417bd094abcc68be913ce49a430df7cefbcd44 - 10:14 PM Revision 844132ae (git): ZJIT: Remove obsolete register spill counters (#15089)
- 10:14 PM Revision 93430176 (git): ZJIT: Fix an incomplete comment (#15088)
- 09:32 PM Revision 2998c8d6 (git): ns_subclasses refcount accesses need to be atomic (#15083)
- We were seeing errors like:
```
* thread #8, stop reason = EXC_BAD_ACCESS (code=1, address=0x803)
* frame #0: 0x00000001001fe944 ruby`rb_st_lookup(tab=0x00000000000007fb, key=1, value=0x00000001305b7490) at st.c:1066:22
frame #1: ... -
08:07 PM Revision 38d31dc4 (git): ZJIT: Untag block handler (#15085)
- Storing the tagged block handler in profiles is not GC-safe (nice catch,
Kokubun). Store the untagged block handler instead.
Fix bug in https://github.com/ruby/ruby/pull/15051 - 06:50 PM Revision c6c92bdc (git): zjit-macos.yml: Unset MAKEFLAGS before ruby-bench (#15084)
-
06:25 PM Revision a7eba545 (git): [Backport #21625] Allow io/wait methods with `IO#ungetc` in text mode
-
06:25 PM Revision 3150a1d9 (git): [Backport #13671] Fix that "ss" in look-behind causes syntax error
- Fixes k-takata/Onigmo#92.
This fix was ported from oniguruma:
https://github.com/kkos/oniguruma/commit/257082dac8c6019198b56324012f0bd1830ff4ba
https://github.com/k-takata/Onigmo/commit/b1a5445fbeba97b3e94a733c2ce11c033453af73 -
06:24 PM Revision badb3600 (git): merge revision(s) d17ce4bd05dc05d48f5f4bc75171fcebda1678ed: [Backport #21652]
- [PATCH] [Bug #21652] [DOC] Update unmarshalable object list
The `Data` mentioned here was the old `T_DATA` class, not the current
extended `Struct`. -
06:23 PM Revision f2fd5b3b (git): [Backport #21638] Mark ractor-local `$VERBOSE` and `$DEBUG`
- https://github.com/sampersand/blog/blob/master/the%20-s%20flag.md#the-segfault
- 06:21 PM Revision ff6c728a (git): ZJIT: Restore dropped_bytes after temporary OOM (#15069)
-
06:18 PM Bug #21667: CVE-2024-12224
- Excellent news, glad to see the patch progressing.
How quickly can we release new versions of Ruby to include this patch? -
04:20 PM Bug #21667 (Closed): CVE-2024-12224
- https://rustsec.org/advisories/RUSTSEC-2024-0421.html
This seems to be from MMTk depending on the `idna` crate. MMTk is experimental and requires a separate build step, so ruby-build probably doesn't even build it.
In any case, we ... -
02:25 PM Bug #21667: CVE-2024-12224
- Wiz reports a servo/rust-url package. Curious if Ruby is using this package strictly at the point in time when the Ruby language is being compiled, possibly even an integration test suite. Or perhaps servo ends up as a portion of the Rub...
-
03:23 AM Bug #21667 (Feedback): CVE-2024-12224
- What version of ruby were you building? Does Wiz point to some file that this is about?
-
06:01 PM Feature #21665: Revisit Object#deep_freeze to support non-Ractor use cases
- Was it considered keep `make_shareable` name, but port it outside of `Ractor` class to make it independent of the "sharing" implementation and useful for JRuby and others?
-
03:26 PM Feature #21665: Revisit Object#deep_freeze to support non-Ractor use cases
- I really think the naming scheme should clearly distinguish between regular objects from classes/modules.
Freezing modules/classes should be separated into their own ad-hoc methods, since you can break a lot of existing code if you free... -
05:40 PM Revision 1cca3efa (git): ZJIT: Use interpreter inline cache in setinstancevariable (#14925)
- We have both `SetIvar` and `SetInstanceVariable`. The former is a purely
dynamic fallback that we can inline `attr_accessor`/`attr_writer` into,
whereas the latter comes straight from the interpreter's
`setinstancevariable` opcode. -
04:19 PM Revision f7e7443a (git): Adjust OpenSSL specs for digest algorithm lookup
- https://github.com/ruby/openssl/pull/958 changed the common logic for
digest algorithm lookup:
- If the argument is neither an OpenSSL::Digest instance nor a String,
it is now implicitly converted to String with #to_str. This is
... -
04:04 PM Misc #21647: DevMeeting-2025-11-13
- * [Bug #21498] Windows - Ruby Overrides C Library APIs thus breaking them (alanwu)
* TL;DR linking with ruby.dll overrides some libc symbols on Windows
* The ticket proposes to stop all overrides, is that acceptable?
* If not, r... -
10:45 AM Misc #21647: DevMeeting-2025-11-13
- * [Bug #20409] Missing reporting some invalid breaks (kddnewton)
* The main point of the issue is already resolved in both parsers
* `END { break }` is not a syntax error in any parser
* Any reason not to treat `END { break }` the ... -
03:20 PM Bug #21660: No-parentheses endless method definition that has parameter destructuring is wrongly accepted in Prism
- Fixed with https://github.com/ruby/ruby/commit/d73eba51853fde74624984b3063bd648b664e3e3
-
02:44 PM Bug #21666: Math.lgamma(-1).should == [infinity_value, 1] fails with Fedora glibc-2.42.9000-8.fc44
- Okay, lgamma testsuite now seems good after applying https://github.com/ruby/ruby/pull/15076 with Fedora glibc-2.42.9000-8.fc44
-
01:55 PM Bug #21666: Math.lgamma(-1).should == [infinity_value, 1] fails with Fedora glibc-2.42.9000-8.fc44
- To be sure, I will try building and run test with Fedora glibc-2.42.9000-8.fc44 (after applying the above PR)
-
01:36 PM Bug #21666: Math.lgamma(-1).should == [infinity_value, 1] fails with Fedora glibc-2.42.9000-8.fc44
- > https://github.com/ruby/ruby/compare/master...nobu:ruby:lgamma-unspecified-values?expand=1
Thank you. I've checked the above change and as far as I read the specification (POSIX) this is correct. -
11:25 AM Bug #21666: Math.lgamma(-1).should == [infinity_value, 1] fails with Fedora glibc-2.42.9000-8.fc44
- Is this correct?
https://github.com/ruby/ruby/compare/master...nobu:ruby:lgamma-unspecified-values?expand=1 -
01:40 PM Revision 87ae631b (git): [ruby/openssl] pkey/rsa: fix usage of eRSAError
- This is a follow-up to commit https://github.com/ruby/openssl/commit/e74ff3e2722f, which missed the line added
in a different PR.
https://github.com/ruby/openssl/commit/1b01d19456 -
01:33 PM Revision 16b1aa4e (git): [ruby/openssl] pkey: unify error classes into PKeyError
- Remove the following subclasses of OpenSSL::PKey::PKeyError and make
them aliases of it.
- OpenSSL::PKey::DHError
- OpenSSL::PKey::DSAError
- OpenSSL::PKey::ECError
- OpenSSL::PKey::RSAError
Historically, methods defined on OpenSSL... -
01:31 PM Revision d73eba51 (git): [ruby/prism] Reject `def f a, (b) = 1`
- Fixes [#Bug 21660], followup to https://github.com/ruby/prism/pull/3674
https://github.com/ruby/prism/commit/fb445a49e5
Co-Authored-By: tomoya ishida <tomoyapenguin@gmail.com> -
01:25 PM Revision 57aaf86b (git): [ruby/openssl] cipher: use EVP_CIPHER_fetch() if available
- Likewise, use EVP_MD_fetch() if it is available.
This adds support for AES-GCM-SIV with OpenSSL 3.2 or later.
https://github.com/ruby/openssl/commit/0e565a215e -
01:25 PM Revision 10d2311e (git): [ruby/openssl] digest: use EVP_MD_fetch() if available
- With the introduction of OpenSSL 3 providers, newly implemented
algorithms do not necessarily have a corresponding NID assigned. To use
such an algorithm, it has to be "fetched" from providers using the new
EVP_*_fetch() functions.
For ... -
01:25 PM Revision 26751e40 (git): [ruby/openssl] cipher: raise CipherError for unsupported algorithm name
- Raise OpenSSL::Cipher::CipherError instead of ArgumentError or
RuntimeError for consistency.
https://github.com/ruby/openssl/commit/78601c9c34 -
01:25 PM Revision 18ab5023 (git): [ruby/openssl] digest: raise DigestError for unsupported algorithm name
- We generally raise OpenSSL::OpenSSLError or its subclass for errors
originating from the OpenSSL library, which may include extra details
appended by ossl_raise().
https://github.com/ruby/openssl/commit/9427a05ce5 -
01:25 PM Revision 2612915c (git): [ruby/openssl] digest: refactor tests for name aliases
- Use explicit strings instead of relying on OpenSSL::ASN1::ObjectId
methods. It is reduced to just SHA-256 because testing other algorithms
does not improve test coverage for ruby/openssl.
https://github.com/ruby/openssl/commit/dcfd2e7b97 -
01:21 PM Bug #21669: Thoroughly implement void value expression check
- I agree with @mame — I think it is valuable, especially when it will be consistent. Happy to implement this change in prism.
-
11:09 AM Revision 89056f4a (git): [DOC] Stop documentation for internals
- Stop documentation for undocumented private constants and private
class methods. And align private method definition styles.
Also `Socket.tcp_with_fast_fallback` looks private as well as
`Socket.tcp_without_fast_fallback`. -
11:09 AM Revision 8c95c9d5 (git): Dispatch by platform at load
- `RUBY_PLATFORM` should be invariant within the same process.
-
10:46 AM Bug #20409: Missing reporting some invalid breaks
- I added it to the dev meeting and implemented it in https://github.com/ruby/prism/pull/3707
-
03:47 AM Bug #21644: Stack consistency error for the `newrange` INSN peephole optimization with chilled string
- Backport for 3.4 done in commit:5d2a244bfd844be3a94670ddcb509fb5a6b4e847
-
03:31 AM Revision 6014ed99 (git): Remove dead rb_hash_dump
-
02:08 AM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- > introduce language standard versioning, that would make it clear both Ruby 3.4 and Ruby 4.0 are implementing same language standard
Maybe they are but that is not the only important thing. Current news list a bunch of default gems tha... -
01:29 AM Revision 00c9a21c (git): [DOC] Update glossary (#15070)
11/05/2025
-
10:35 PM Bug #21670 (Closed): 3.4.5 crashing with "try to mark T_NONE object"
- I don't believe 21021 is related, "try to mark T_NONE object" is a general symptom of missing a write barrier.
This does show a crash when marking the M_TBL so I would expect this to be fixed by https://github.com/ruby/ruby/commit/502... -
10:28 PM Bug #21670: 3.4.5 crashing with "try to mark T_NONE object"
- nrodriguez (Nicolas Rodriguez) wrote in #note-2:
> @byroot https://bugs.ruby-lang.org/issues/21021
I don't know if #21021 is the same underlying issue. This instance occurs both with and without YJIT enabled on 3.4.5, and it looks li... -
09:10 PM Bug #21670: 3.4.5 crashing with "try to mark T_NONE object"
- @byroot https://bugs.ruby-lang.org/issues/21021
-
03:56 PM Bug #21670: 3.4.5 crashing with "try to mark T_NONE object"
- It's in `mark_method_entry_i`, which rings a bell. @jhawthorn didn't you fix that one?
@esaron please try the latest patch release: 3.4.7, your issue looks a lot like a missing write barrier issue and John fixed many of them in 3.4.7:... -
03:00 PM Bug #21670 (Closed): 3.4.5 crashing with "try to mark T_NONE object"
- We're experiencing a large number of crashes while running tests in CI on Ubuntu 22.04 runners. It is inconsistent, and we cannot reproduce reliably, although when the crash happens it appears to always happen in the same place, even if ...
-
10:11 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- ufuk (Ufuk Kayserilioglu) wrote in #note-18:
> retro (Josef Šimánek) wrote in #note-17:
> ...
@ufuk Sure, I'm aware of and I do fully respect this. Ruby itself is not simple to version, since next to the language (having amazing backwa... -
08:03 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- I don't personally have a strong opinion about jumping to 4.0 purely for symbolic reasons, but if it's going to happen, it seems clear the community needs to know right now so we can start dealing with these issues.
JRuby made a leap ... -
06:17 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- retro (Josef Šimánek) wrote in #note-17:
> @mame so why to release 4.0 if not causing major breaking changes?
Quoting [my answer to this](https://bugs.ruby-lang.org/issues/21657#note-3) from above:
> ... that is completely a decisio... -
05:01 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- @mame so why to release 4.0 if not causing major breaking changes?
-
03:34 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- Just adding my two cents to the off-topic discussion.
I honestly feel that the `~>` constraint was a terrible idea. It's going to be a huge pain when Ruby 4.0 is released (at the end of this year, perhaps?), and all the gems locked to... -
08:01 PM Revision 02267417 (git): ZJIT: Profile specific objects for invokeblock (#15051)
- I made a special kind of `ProfiledType` that looks at specific objects, not just their classes/shapes (https://github.com/ruby/ruby/pull/15051). Then I profiled some of our benchmarks.
For lobsters:
```
Top-6 invokeblock handler (100.0... -
07:08 PM Revision 4f56abbb (git): ZJIT: Don't side-exit on VM_CALL_KWARG just SendWithoutBlock (#15065)
- 06:44 PM Revision bf0331b9 (git): ZJIT: Add zjit_alloc_bytes and total_mem_bytes stats (#15059)
-
06:30 PM Revision d327eb60 (git): ZJIT: Track guard shape exit ratio (#15052)
- new ZJIT stats excerpt from liquid-runtime:
```
vm_read_from_parent_iseq_local_count: 10,909,753
guard_type_count: 45,109,441
guard_type_exit_ratio: 4.3%
guard... -
06:28 PM Revision df290e11 (git): Skip an unstable IO test for mswin
- https://github.com/ruby/ruby/actions/runs/19107764906/job/54596244201
-
06:25 PM Revision 242d8edb (git): Extend timeout for unstable tests
- https://github.com/ruby/ruby/actions/runs/19111531630/job/54609629054
- 06:01 PM Revision 7334244e (git): [ruby/erb] Fix tag shown in example of ERB expression tag and
- execution tag
(https://github.com/ruby/erb/pull/92)
These were the wrong way around.
https://github.com/ruby/erb/commit/50a5cd76fe - 05:57 PM Revision d3d2357a (git): ZJIT: Run ruby-bench CI for macOS arm64 as well (#15040)
-
05:42 PM
Bug #21664 (Closed): Segfault when running Ractor tests in the same process
- Applied in changeset commit:git|54907db8f3daa6d096e78e7eb78e515842c47789.
----------
Fix ractor move of object with generic ivars (#15056)
This bug was happening only when the `id2ref` table exists. We need
to replace the generic field... - 05:42 PM Revision 54907db8 (git): Fix ractor move of object with generic ivars (#15056)
- This bug was happening only when the `id2ref` table exists. We need
to replace the generic fields before replacing the object id of the
newly moved object.
Fixes [Bug #21664] - 03:36 PM Revision 57040636 (git): Update bundled gems list as of 2025-11-05
-
03:35 PM Revision af6a6a2a (git): Update power_assert to 3.0.1
-
03:13 PM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- Fun C topic!
wsfulton (William Fulton) wrote in #note-8:
> A more conventional way for default aggregate initialisation is
> ...
Unfortunately, that empty initializer is a violation of the C99 language specification. You can confir... -
07:53 AM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- I thought it was UB in c++98, but have just checked the standard and I have this wrong as the missing members are indeed default initialized.
A more conventional way for default aggregate initialisation is
```c++
struct RSt... -
02:45 PM Bug #21669: Thoroughly implement void value expression check
- Eregon (Benoit Daloze) wrote in #note-1:
> This check is getting more and more complicated and I wonder of the value of having it.
IMO, the current is indeed complicated because it is inconsistent. I think the new behavior is consist... -
01:54 PM Bug #21669: Thoroughly implement void value expression check
- In prism, that whole check fits in about 130 lines: https://github.com/ruby/prism/blob/2ecd49dfeea1d0b00c3af609be82dd488d25c7f3/src/prism.c#L1027-L1166. Looking at that function, probably it would not be very difficult for prism to suppo...
-
01:33 PM Bug #21669: Thoroughly implement void value expression check
- The whole concept of "void value expression" is also weird in Ruby, where every expression/statement has a value, so I think it feels like something that doesn't belong to Ruby.
It probably only triggers for pretty broken code, and ev... -
01:28 PM Bug #21669: Thoroughly implement void value expression check
- This check is getting more and more complicated and I wonder of the value of having it.
In my opinion there is little value of have this check, so given the complexity and the cost to check it (needs extra traversals of potentially larg... -
11:08 AM Bug #21669 (Open): Thoroughly implement void value expression check
- A void-value-expression check is a syntax check that raises a `SyntaxError` if an expression that cannot grammatically return a value (a "void value expression," such as a `return` expression) appears in a context where a value is expect...
-
02:14 PM Feature #21665: Revisit Object#deep_freeze to support non-Ractor use cases
- +1 from me.
We see [a lot of](https://github.com/search?q=Ractor.make_shareable+language%3ARuby&type=code&l=Ruby):
```ruby
CONST = [...]
Ractor.make_shareable(CONST) if defined?(Ractor)
```
in gems, but that should really be:
``... -
10:35 AM Revision 946d2d03 (git): Suppressing unused warnings
-
10:07 AM Revision ae7415c2 (git): [ruby/strscan] [DOC] no doc for internal methods
- https://github.com/ruby/strscan/commit/5614095d9c
-
07:17 AM Revision 439ca043 (git): [ruby/strscan] Deprecate constant `Id`
- `$Id$` is for RCS, CVS, and SVN; no information with GIT.
https://github.com/ruby/strscan/commit/9e3db14fa2 -
07:06 AM Revision 27b1500e (git): [ruby/strscan] [DOC] Add document of StringScanner::Error
- https://github.com/ruby/strscan/commit/16ec901356
-
06:46 AM Revision 2172057f (git): Use Ruby 3.4 for sync_default_gems.rb
- ```
tool/sync_default_gems.rb:177:in `block in <module:SyncDefaultGems>': undefined local variable or method `it' for SyncDefaultGems:Module (NameError)
it.exclude << "lib/open3/jruby_windows.rb"
^^
from <internal:ke... -
06:11 AM Bug #21668: Backport 6cc66469a007d2fb272397e5e27c20b4ce628f5e
- ruby_3_4 commit:c26a2b12e1f7f0779f2e86f59a405b1913cf72c8 merged revision(s) commit:377aa2a336cc700485c699ac49330f2a58b74906.
-
06:02 AM Bug #21668 (Closed): Backport 6cc66469a007d2fb272397e5e27c20b4ce628f5e
- Improves micro-benchmark of UnicodeNormalize
https://github.com/ruby/ruby/pull/14494
~~~ruby
100000.times{UnicodeNormalize.canonical_ordering_one("s\u0307\u0323")}
# 0.107795s → 0.067496s
~~~
-
06:10 AM Revision c26a2b12 (git): merge revision(s) 377aa2a336cc700485c699ac49330f2a58b74906: [Backport #21668]
- [PATCH] Improve performance of UnicodeNormalize.canonical_ordering_one
Use array_of_integer.sort! instead of buble-sort-like algorithm -
06:01 AM Revision f979ef1f (git): sync_default_gems.rb: gracefully handle merge commits
- Find interesting commits by following parents instead of relying on
"git log".
If we encounter a merge commit that may contain a conflict resolution,
fall back to cherry-picking the merge commit as a whole rather than
replaying each ind... -
06:01 AM Revision 85e0f8c8 (git): sync_default_gems.rb: update paths and then do cherry-pick
- Currently, we try to git cherry-pick the upstream commit and then
resolve merge conflicts in the working tree with the help of Git's
rename detection. By the nature of heuristics, it does not work reliably
when the upstream adds or remov... -
06:01 AM Revision b722631b (git): sync_default_gems.rb: use declarative mapping rules
- No behavior change is intended by this change.
-
06:01 AM Revision 348adb8f (git): sync_default_gems.rb: simplify rewriting commit message
- Use "git commit --amend" instead of "git filter-branch" since we only
need to handle one commit at HEAD. -
06:01 AM Revision 26cb69f7 (git): sync_default_gems.rb: fix release check on case-sensitive filesystems
- This fixes it for the English gem.
-
05:52 AM Revision f8d12911 (git): Support passing a #to_str object to Pathname.new for compatibility
- * See https://github.com/ruby/pathname/pull/57#issuecomment-3485646510
-
05:13 AM Revision f8e9bccd (git): [ruby/strscan] Deprecate undocumented toplevel constant `ScanError`
- https://github.com/ruby/strscan/commit/b4ddc3a2a6
-
04:54 AM Revision c85ef2ca (git): [ruby/strscan] ISO C90 forbids mixed declarations and code
- Cannot use C99 syntax, as far as supporting Ruby 2.6 and earlier.
https://github.com/ruby/strscan/commit/f6d178fda5 -
04:53 AM Revision 49b06f40 (git): Use the exception class mentioned in the doc
- Instead of an undocumented constant.
-
04:33 AM Feature #20564 (Closed): Switch default parser to Prism
-
04:08 AM Revision 53f1fc25 (git): ZJIT: Allow Store with 8-bit Opnd::Mem
-
04:08 AM Revision d43533a9 (git): ZJIT: Split LShift in arm64_scratch_split
-
03:57 AM Revision b919eb56 (git): ZJIT: Count caller side features for `complex_arg_pass`
- After 34b0ac68b31, we use a fallback instead of side exit for splats.
Count splats under `send_fallback_one_or_more_complex_arg_pass`. -
03:57 AM Revision 9cfe949d (git): ZJIT: Fallback counter rename: s/fancy/complex/
- Kokubun bought up that "complex" is a more fitting name for what these
counters count. Thanks!
Also:
- make the SendFallbackReason enum name consistent with the counter name
- rewrite the printout prompt in zjit.rb - 02:36 AM Revision 033ba3c8 (git): Don't run global variable hook functions with VM lock held (#15053)
- We can't run arbitrary ruby code with the VM lock held.
-
02:03 AM Revision 13f1b432 (git): [ruby/strscan] [DOC] Remove the statement `rest?` is obsolete
- `eos?` is opposite, cannot be used instead of `rest?`.
https://github.com/ruby/strscan/commit/bee8cc547b -
12:09 AM Revision d24bb1e7 (git): [ruby/stringio] [DOC] Tweaks for StringIO#string=
- (https://github.com/ruby/stringio/pull/172)
https://github.com/ruby/stringio/commit/17ae4daf9a - 12:09 AM Revision bd3b44cb (git): ZJIT: Use a shared trampoline across all ISEQs (#15042)
-
12:09 AM Revision be905b2e (git): [ruby/stringio] [DOC] Tweaks for StringIO#flush
- (https://github.com/ruby/stringio/pull/169)
https://github.com/ruby/stringio/commit/bef6541b55 -
12:08 AM Revision 00b5b3c5 (git): [ruby/stringio] [DOC] Tweaks for StringIO#isatty
- (https://github.com/ruby/stringio/pull/167)
https://github.com/ruby/stringio/commit/94303ace95 -
12:05 AM Revision d5acffba (git): [ruby/stringio] [DOC] Tweaks for StringIO#fsync
- (https://github.com/ruby/stringio/pull/170)
https://github.com/ruby/stringio/commit/da338d7e5d -
12:05 AM Revision e22d9aba (git): [ruby/stringio] [DOC] Tweaks for StringIO#fileno
- (https://github.com/ruby/stringio/pull/168)
https://github.com/ruby/stringio/commit/9f10c7ae86 -
12:03 AM Revision 9c0f2729 (git): [ruby/stringio] [DOC] Tweaks for StringIO#internal_encoding
- (https://github.com/ruby/stringio/pull/166)
https://github.com/ruby/stringio/commit/5eeb61df34
11/04/2025
-
11:57 PM Revision 554a78da (git): [ruby/stringio] [DOC] Doc for StringIO.getc
- (https://github.com/ruby/stringio/pull/163)
https://github.com/ruby/stringio/commit/a126fe252f - 09:56 PM Revision a0376eb2 (git): ZJIT: Fix --zjit-mem-size and add --zjit-exec-mem-size (#15041)
- ZJIT: Fix --zjit-mem-size and resurrect --zjit-exec-mem-size
-
09:40 PM Revision 7a0d730e (git): Resurrect tests for StringScanner#rest?
- that has not been obsolete.
Partially reverting https://github.com/ruby/ruby/pull/15049. -
09:34 PM Revision fffa4671 (git): [ruby/strscan] Resurrect a method that has not been obsolete
- (https://github.com/ruby/strscan/pull/169)
Partially revert https://github.com/ruby/strscan/pull/168 because
strscan_rest_p did not have `rb_warning("StringScanner#rest? is
obsolete")`.
It is actively used by the latest tzinfo.gem, and... -
08:29 PM Revision 962aa14f (git): ZJIT: Add test to reproduce binarytrees crash (#15054)
-
07:48 PM Feature #21665: Revisit Object#deep_freeze to support non-Ractor use cases
- > the core idea of freezing something is to make it immutable, to hold it in place. It could be immutable or another analogy
The `immutable` name is an interesting concept but maybe more in the domain of #18035 than `deep_freeze`. One b... -
06:44 PM Feature #21665: Revisit Object#deep_freeze to support non-Ractor use cases
- I think this is generally useful. I hit a bug in syntax_suggest that took me about 4 hours to track down that boiled down to contents of an array being shared in an unintuitive way so their mutation wasn't cleanly isolated.
On the nam... -
12:13 AM Feature #21665 (Open): Revisit Object#deep_freeze to support non-Ractor use cases
- ## Proposal: Introduce `Object#deep_freeze` (or similar name) to freeze an entire object graph
I would like to re-propose the addition of Object#deep_freeze as a way to explicitly freeze an entire object graph. This proposal was rejec... - 07:46 PM Revision f1f2dfeb (git): Release VM lock before running finalizers (#15050)
- We shouldn't run any ruby code with the VM lock held.
-
07:41 PM Revision e9e5a4a4 (git): [ruby/strscan] Remove methods have been obsolete over two decades
- https://github.com/ruby/strscan/commit/1387def685
-
07:06 PM Revision 091a1cd8 (git): Remove tests for obsolete StringScanner methods
- ruby/strscan#168
-
06:54 PM Revision 480080b5 (git): [ruby/stringio] fix: (jruby) failing to clean buffer's code-range
- same bug as: https://github.com/jruby/jruby/issues/9035
https://github.com/ruby/stringio/commit/65b144b175 -
06:29 PM Revision 36cd985d (git): [ruby/strscan] Remove no longer used variable
- Since https://github.com/ruby/strscan/commit/92961cde2b42.
https://github.com/ruby/strscan/commit/911f9c682a -
05:46 PM Revision b6f00701 (git): [DOC] Mention on top of `vm_*.c` files the VM translation unit they're in (#15048)
- vm_method.c already mentions it.
-
05:28 PM Revision 14f6f705 (git): Fix rb_gc_impl_checking_shareable for modular GC
- This implements it the same as the other modular GC functions
-
04:55 PM Bug #21667 (Closed): CVE-2024-12224
- ruby-build triggers Wiz finding CVE-2024-12224 for the leftover build files, when compiling Ruby from source.
- 04:16 PM Revision ee74b97e (git): Update default gems list at 29847070f00184d7c0a97f8e1f18f5 [ci skip]
-
04:14 PM Revision 29847070 (git): [ruby/io-wait] bump up to 0.3.3
- https://github.com/ruby/io-wait/commit/57bc0b752b
-
02:20 PM Bug #21666 (Open): Math.lgamma(-1).should == [infinity_value, 1] fails with Fedora glibc-2.42.9000-8.fc44
- With Fedora glibc-2.42.9000-8.fc44 the following test:
https://github.com/ruby/ruby/blob/cdcb490d2bceb4ff8d6fce349047a2b722e6ae87/spec/ruby/core/math/lgamma_spec.rb#L9
fails like
```
1)
Math.lgamma returns [Infinity, 1] when pas... -
01:42 PM Bug #20409: Missing reporting some invalid breaks
- I think `END { break }` should still be a syntax error, as it always results in an error.
-
12:25 PM Bug #20409: Missing reporting some invalid breaks
- I think `END` should be syntax error. The same is already true for `BEGIN`, seems inconsistent.
-
11:25 AM Revision cdcb490d (git): Tweak ENC_TRANS_SO_D
- It corresponds to TRANSSODIR, that contains `$(arch)`, so should
contain it as well. -
11:07 AM Revision f1776e8f (git): [ruby/json] Tentative fix for RHEL8 compiler
- ```
parser.c:87:77: error: missing binary operator before token "("
#if JSON_CPU_LITTLE_ENDIAN_64BITS && defined(__has_builtin) && __has_builtin(__builtin_bswap64)
```
https://github.com/ruby/json/commit/fce1c7e84a -
08:49 AM Revision 7c924013 (git): [ruby/json] Micro-optimize `rstring_cache_fetch`
- Closes: https://github.com/ruby/json/pull/888
- Mark it as `inline`.
- Use `RSTRING_GETMEM`, instead of `RSTRING_LEN` and `RSTRING_PTR`.
- Use an inlinable version of `memcmp`.
```
== Parsing activitypub.json (58160 bytes)
ruby 3.4.6 (... -
08:49 AM Revision 157ae44b (git): [ruby/json] Extract `JSON_CPU_LITTLE_ENDIAN_64BITS` definition
- Only apply these definitions on 64 bits archs, as it's unclear
if they have performance benefits or compatibility issues on
32bit archs.
https://github.com/ruby/json/commit/ddad00b746 - 06:54 AM Revision 55257b50 (git): Update default gems list at 83c2e3b92e25b766615600913cdca8 [ci skip]
-
06:53 AM Revision 83c2e3b9 (git): [ruby/uri] v1.1.1
- https://github.com/ruby/uri/commit/f1b05c89ab
- 06:45 AM Revision 397bb127 (git): [ruby/uri] Re-allow consecutive, leading and trailing dots in EMAIL_REGEXP
- Effectively reverts commit https://github.com/ruby/uri/commit/788274b180d6 and
https://github.com/ruby/uri/commit/0abac721d8fe.
EMAIL_REGEXP was mostly drawn from WHATWG HTML LS. This spec states that
it intentionally violates RFC 5322 ... -
05:53 AM Revision 44780965 (git): [ruby/io-wait] Select packging files by pathspecs
- https://github.com/ruby/io-wait/commit/c66a90f5b1
- 02:39 AM Revision 0eac75df (git): Bump gacts/run-and-post-run in /.github/actions/setup/directories
- Bumps [gacts/run-and-post-run](https://github.com/gacts/run-and-post-run) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/gacts/run-and-post-run/releases)
- [Commits](https://github.com/gacts/run-and-post-run/compare/d803f6920a... -
01:09 AM Revision 15e64bd2 (git): [ruby/stringio] [DOC] Doc for StringIO#gets
- (https://github.com/ruby/stringio/pull/164)
https://github.com/ruby/stringio/commit/10e991e31d -
01:02 AM Revision 136157e7 (git): Revert "[ruby/rubygems] Fix constants in TAR to be frozen"
- This reverts commit 2c2eaa3103e5cf1cbfc2b16d9db975a9b8a0399a.
-
12:59 AM Revision be495013 (git): [ruby/stringio] [DOC] Doc for StringIO#getbyte
- (https://github.com/ruby/stringio/pull/162)
https://github.com/ruby/stringio/commit/95a7dd592c - 12:49 AM Revision 9ca94075 (git): ZJIT: Implement register spill (#14936)
-
12:47 AM Revision 0d210f4d (git): [ruby/stringio] [DOC] Tweaks for StringIO#external_encoding
- (https://github.com/ruby/stringio/pull/161)
https://github.com/ruby/stringio/commit/92656f5c66 -
12:45 AM Revision 6695a3b3 (git): [ruby/stringio] [DOC] Tweaks for StringIO#eof?
- (https://github.com/ruby/stringio/pull/160)
https://github.com/ruby/stringio/commit/5034156245 -
12:22 AM Revision 2c2eaa31 (git): [ruby/rubygems] Fix constants in TAR to be frozen
- I would like to use the tar implementation inside a Ractor, but two of
the constants are not frozen. This patch freezes the constants so we
can use it in a Ractor.
https://github.com/ruby/rubygems/commit/0ff4790f4c -
12:17 AM Revision bac6a25a (git): [ruby/rubygems] Remove open-ended and prerelease dependency warnings when building gems
- In general, rubygems should provide mechanism and not policy.
Pessimistic versioning is not universally better, and in many
cases, it can cause more problems than it solves. Rubygems should
not be warning against open-ended versioning w... -
12:04 AM Bug #21645 (Assigned): Can't `require "resolve"` on Windows under Bundler without warnings
11/03/2025
-
11:24 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- > * There might be situations when such package passes it test suite, but later it is not usable just due to the metadata.
Yup, this is frustrating and I do understand for some it can justify open ended Ruby constraint. Let's find a s... -
10:43 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- I agree with @byroot that the upper bound restriction is from my experience very impractical.
As a maintainer of Ruby in Fedora, once we update Ruby in the distribution, we also make sure that all other packages are compatible with it... -
07:42 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- > This arrogant behavior
Arrogant? I'm just sharing my experience and the same metrics Brooke shared to put my experience in perspective.
> ...
My intent was never to be unfriendly, but if that's how you feel I promise to never int... -
07:31 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- > Well no. This all stems from you following a very inefficient and user-unfriendly workflow (which you are entirely free to).
@byroot Well yes, I think I have clearly stated that your workflow could be also very inefficient and user-... -
03:42 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- > this all stems from Ruby being chaotic with the version releases
Well no. This all stems from you following a very inefficient and user-unfriendly workflow (which you are entirely free to).
I maintains 2x as many gems gems as you... -
02:32 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- **Jean**:
Sorry, I didn't provide enough context to my original statement. Each year -- about ~2 months before Christmas when a new Ruby version drops -- I release a *patch* version of all my gems that accepts the current version and ... -
11:17 AM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- @byroot just to make it clear, I'm not saying I'm big fan of the current situation, but I just described how the whole ecosystem is designed right now. It is quite old rusty design, not being revisited for years. I agree with you to disa...
-
11:11 AM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- @retro, hard disagree, because if everyone did what you suggest, it means that every year:
- You need to wait on every single one of you dependency to cut a new release with an updated gemspec. When you get hundreds of dependencies th... -
10:29 AM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- @byroot I would not suggest this in general. It can work both ways. Having strict Ruby constraints help to revisit gems after new Ruby release and provides confidence to resolver to install only tested versions for given Ruby. What you s...
-
09:21 AM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- @bkuhlmann please don't restrict the upper versions unless you know for a fact it's incompatible. This prevent the community from testing early release and fixing the compatibility issues in advance. This practice is slowing the communit...
-
09:28 PM Bug #21654: Set#new calls extra methods compared to previous versions
- In any case, I think we should remove the code from `Set.new`. The original ticket was about the behavior of `Range#to_set` vs `Range#to_a`, _not_ about `Set.new`. At least `Set.new`'s behavior should be restored.
- 08:46 PM Revision 4001e81a (git): ZJIT: Inline String#bytesize (#15033)
- Inline the `String#bytesize` function and remove the C call.
-
08:19 PM Revision 81176002 (git): ZJIT: Implement include_p for opt_(new|dup)array_send YARV insns (#14885)
- These just call to the C functions that do the optimized test but this avoids the side exit.
See https://github.com/ruby/ruby/pull/12123 for the original CRuby/YJIT implementation. - 07:30 PM Revision 16af7279 (git): Avoid taking vm barrier in heap_prepare() (#14425)
- We can avoid taking this barrier if we're not incremental marking or lazy sweeping.
I found this was taking a significant amount of samples when profiling `Psych.load`
in multiple ractors due to the vm barrier. With this change, we get s... -
05:02 PM Revision 505fcf5d (git): [ruby/json] ext/json/ext/json.h: Add missing newline at end of file
- https://github.com/ruby/json/commit/3bc1787bd4
-
03:56 PM Revision 2f9e0d35 (git): [ruby/json] Fix duplicate 'inline' declaration specifier
- Followup: https://github.com/ruby/json/pull/889
https://github.com/ruby/json/commit/591510392a -
03:39 PM Revision 4740b3d7 (git): [ruby/json] Fix check_dependency
-
01:27 PM Bug #20409: Missing reporting some invalid breaks
- Today I get a syntax error for all the examples in both parsers except for `END { break }`. Can this be closed or should `END { break }` still be considered?
-
01:12 PM Revision c49e4db6 (git): [ruby/json] parser.c: Always inline `json_eat_whitespace`
- ```
== Parsing activitypub.json (58160 bytes)
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
after 1.174k... -
11:38 AM Bug #21661: Endless method definition as a default value of block parameter is wrongly accepted in Prism
- I appreciate the explanation. I openend https://github.com/ruby/prism/pull/3702, it would be nice if you can check that the added tests match your expectation. Basically it is no endless method definition only between `|...|`, which is m...
-
11:33 AM Bug #21645: Can't `require "resolve"` on Windows under Bundler without warnings
- @hsbt not sure if you got notification for the last message, could you reopen this?
-
10:46 AM Revision 52a17bbe (git): [ruby/json] parser.c: use `rb_str_to_interned_str` over `rb_funcall`
- https://github.com/ruby/json/commit/21284ea649
-
10:33 AM Revision 0832e954 (git): [ruby/json] parser.c: Extract `json_string_cacheable_p`
- We can share that logic between the two functions.
https://github.com/ruby/json/commit/ac580458e0 -
10:13 AM Revision ea0a411f (git): [ruby/json] parser.c: simplify sorted insert loop in rstring_cache_fetch
- https://github.com/ruby/json/commit/31453b8e95
Co-Authored-By: Scott Myron <samyron@gmail.com> -
09:58 AM Revision edebd83e (git): [ruby/json] parser.c: Skip checking for escape sequences in `rstring_cache_fetch`
- The caller already know if the string contains escape sequences
so this check is redundant.
Also stop calling `rstring_cache_fetch` from `json_string_unescape`
as we know it won't match anyways.
```
== Parsing twitter.json (567916 byte... -
09:22 AM Revision 35a5e551 (git): [ruby/json] Centralize macro definitions
- https://github.com/ruby/json/commit/1576ea7d47
-
04:25 AM Bug #21659 (Rejected): rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- `-Wmissing-field-initializers` is in `-Wextra`, not even in `-Wall`. From the [manual](https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wmissing-field-initializers) (emphasis mine)
> Warn if a structure’s initializer has ... -
01:10 AM Revision 2da2d33c (git): merge revision(s) e500222de1a8d5e7a844209a7e912b03db8cdf76:
- [PATCH] fix last commit
`th` is gone. -
12:44 AM Bug #21559: Unicode normalization nfd -> nfc -> nfd is not reversible
- Note to potential backporters: https://github.com/ruby/ruby/commit/bd51b20c50 should also be backported.
-
12:03 AM Bug #21662: Variables other than those in the conditional score are replaced.
- nobu (Nobuyoshi Nakada) wrote in #note-1:
> I try to guesstimate your intension by telepathy.
> ...
It looks like a trap.
11/02/2025
-
10:11 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- I would also like to know if the next Ruby version is 3.5.0 or 4.0.0 precisely because Ruby doesn't follow Semantic Versioning. Having this knowledge sooner rather than later means I can pin my gemspecs to the correct version (and/or ver...
-
10:00 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- Dan0042 (Daniel DeLorme) wrote in #note-28:
> But to be honest, as @hsbt said in #17473, "I'm happy to use Pathname without require it." and that's really all I am looking for as well.
That's a trap though because without requiring i... -
09:41 PM Bug #21664: Segfault when running Ractor tests in the same process
- Once this bug is fixed I think it would be valuable to run these tests together in the same process, as that's a much stronger test than running tiny pieces of code each in their own process (what the bootstrap test harness does).
Notab... -
09:38 PM Bug #21664 (Closed): Segfault when running Ractor tests in the same process
- When running the tests from https://github.com/ruby/ruby/blob/master/bootstraptest/test_ractor.rb in a single process, I see segfaults occurring every time on the following tests:
```
# move object with generic ivar
# move object with... -
06:44 PM Revision 4a3d8346 (git): [DOC] Tweaks for String#to_f
- 05:06 PM Revision c83a249f (git): pend on Windows for timeouts
- 05:06 PM Revision 89fa15b6 (git): Fix incorrect RUBY_DEBUG range
- 05:06 PM Revision 0116dd5e (git): Make Namespace.root visible not only for debugging
- There are many APIs that expects application codes overwrite global methods.
For example, warn() expects Warning.warn() is overwritten to hook warning
messages.
If we enable namespace, Warning.warn defined in the app code is visible
only... - 05:06 PM Revision fa4c04a7 (git): Use CFUNC namespace only for IFUNC frames, its behavior should be unchanged
- 05:06 PM Revision 12303e2e (git): Fix use of inappropriate debug flag
- 05:06 PM Revision bb62a1cf (git): Add flag to ignore EXPERIMENTAL warnings
- 05:06 PM Revision e89eecce (git): No need to call rb_define_class/module_under_id
- Classes/modules defined in a namespace are defined under ::Object
as usual (as without namespaces), and it'll be set into the const_tbl
of ::Object.
In namespaces, namespace objects' const_tbl is equal to the one of ::Object.
So constant... - 05:06 PM Revision bc77a11b (git): Add basic namespace tests
-
04:25 PM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- Isn't this related to this problem with GCC? https://bugs.ruby-lang.org/issues/21655#change-114967
-
04:18 PM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- wsfulton (William Fulton) wrote in #note-4:
> Fixing this warning, in particular, removes undefined behaviour.
Can you explain what the undefined behavior is? My understanding is that in both C and C++, the behavior is defined to ze... -
12:18 PM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- Keep code warning free improves the code quality. Fixing this warning, in particular, removes undefined behaviour. Are the core Ruby developers supportive of these goals and consider a patch to fix this warning and possibly even making i...
-
02:51 PM Bug #21661: Endless method definition as a default value of block parameter is wrongly accepted in Prism
- Inside `| |` style block parameter, binary operators (example: `1+2`, `1|2`) are rejected because we need to reject ambiguous `|`.
On the right hand side of assignment and endless def, binary operators are allowed, unless we introduce a... -
12:00 PM Bug #21661: Endless method definition as a default value of block parameter is wrongly accepted in Prism
- It isn't specifically about block locals, `p do |a = def f = 1, b| end` is the same.
`p do |a = def f = 1| 2; b|c end` becomes `p do |a = (def f = 1| 2); b|c end`, so one block local `b` and method body of `c`. The same issue as the f... -
02:48 PM Revision 5153a2dc (git): [ruby/json] Invoke `as_json` callback for strings with invalid encoding
- Fix: https://github.com/ruby/json/issues/873
This allow users to encode binary strings if they so wish.
e.g. they can use Base64 or similar, or chose to replace invalid
characters with something else.
https://github.com/ruby/json/commi... - 02:39 PM Revision 11583f53 (git): [DOC] Update bundled gems list at ee7ce9e6d71c7707d13541e9baa3a5
-
02:38 PM Revision ee7ce9e6 (git): Update power_assert to 3.0.0
-
02:17 PM Revision 37c71536 (git): Make rb_str_embed_size aware of termlen
-
02:17 PM Revision 2380f69f (git): Fix array allocation when slot size < 40 bytes
- We need to allocate at least sizeof(struct RArray) when the array is
embedded on garbage collectors that support slot sizes less than 40 bytes. -
02:17 PM Revision dba4c9fb (git): Fix string allocation when slot size < 40 bytes
- We need to allocate at least sizeof(struct RString) when the string is
embedded on garbage collectors that support slot sizes less than 40 bytes. -
11:38 AM Bug #21663 (Open): IO#pos will corrupt the file position in specific situation.
- `IO#pos` and `IO#tell` will corrupt the file position in the following situation.
### Situation:
- Running on Windows. (`RUBY_CRLF_ENVIRONMENT` is defined.)
- The filesize is over 0x100000000 bytes.
- The file is opened in text mod... -
10:22 AM Revision bd51b20c (git): minor code allignment (related to bug 21559)
-
10:13 AM Bug #21662 (Feedback): Variables other than those in the conditional score are replaced.
- I try to guesstimate your intension by telepathy.
binh (binh chau) wrote:
> ```ruby
> ...
You might had expected the third `bar` is a `Bar`.
In fact, the first `bar` in `!bar.is_a?(Bar)` is the attribute.
But the assignment in t... -
07:17 AM Bug #21662 (Feedback): Variables other than those in the conditional score are replaced.
- ```ruby
class Bar
attr_accessor :name
end
class Foo
attr_accessor :bar
def initialize(bar=nil)
@bar = bar || Bar.new
end
def bug!
if !bar.is_a?(Bar)
bar = ''
elsif bar.name == 'bar'
end
... - 08:21 AM Revision f827b116 (git): [ruby/erb] Fix typo in documentation
- (https://github.com/ruby/erb/pull/91)
https://github.com/ruby/erb/commit/6bceee7d6e -
06:17 AM Bug #21560: RUBY_MN_THREADS=1 causes large performance regression in Puma 7
- ruby_3_3 commit:609f957ebede1a062b1f34515382e4c306f77444 merged revision(s) commit:ffc69eec0a5746d48ef3cf649639c67631a6a609, commit:0531fa4d6fea100f69f0bac9e03973fe49ecd570.
-
05:50 AM Revision 609f957e (git): merge revision(s) ffc69eec0a5746d48ef3cf649639c67631a6a609, 0531fa4d6fea100f69f0bac9e03973fe49ecd570: [Backport #21560]
- [PATCH] `struct rb_thread_sched_waiting`
Introduce `struct rb_thread_sched_waiting` and `timer_th.waiting`
can contain other than `rb_thread_t`.
[PATCH] mn timer thread: force wakeups for timeouts -
05:42 AM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
- ruby_3_3 commit:f0feca1a8495eba2706a7914f0c4f8128c281366.
-
05:12 AM Revision 780c2b98 (git): Remove old code for BMH search
- Remove the code for Boyer-Moore-Horspool search.
Now we are using Sunday's quick search.
https://github.com/k-takata/Onigmo/commit/3d9072419a1578b742a422412d004fd8a54209fd -
05:12 AM Revision cd116d2a (git): Fix initialization of the table for quick search
- This fixes k-takata/Onigmo#120.
The commit k-takata/Onigmo@9c13de8d0684ebde97e3709d7693997c81ca374b was insufficient.
https://github.com/k-takata/Onigmo/commit/1de602ddff140d91419e3f86dd35c81d7bd2d8e7 -
05:12 AM Revision 9f81d530 (git): Avoid negative character
- Better fix for k-takata/Onigmo#107.
https://github.com/k-takata/Onigmo/commit/85393e4a63223b538529e7095255ce1153c09cff -
05:12 AM Revision 70aeeeb5 (git): Fix lgtm.com warnings
- * Multiplication result may overflow 'int' before it is converted to
'OnigDistance'.
* Comparison is always true because code <= 122.
* This statement makes ExprStmt unreachable.
* Empty block without comment
https://github.com/k-taka... -
05:11 AM Revision f0feca1a (git): [Bug #13671] Fix that "ss" in look-behind causes syntax error
- Fixes k-takata/Onigmo#92.
This fix was ported from oniguruma:
https://github.com/kkos/oniguruma/commit/257082dac8c6019198b56324012f0bd1830ff4ba
https://github.com/k-takata/Onigmo/commit/b1a5445fbeba97b3e94a733c2ce11c033453af73 -
05:10 AM Revision cbc1460e (git): Revert "[tune] implicit-anchor optimization"
- This reverts commit 282338f88a8bf0807a7a1d21b06f78abe9de8fac.
It seems that the commit didn't improve the performance.
Revert it to fix k-takata/Onigmo#100.
https://github.com/k-takata/Onigmo/commit/cef834cb3a6e278fa252f52b704c65175a970ac0 -
05:09 AM Revision 6809ba2f (git): Fix performance problem with /k/i and /s/i (Close k-takata/Onigmo#97)
- E.g.
For the pattern `/----k/i`, optimization was totally turned off.
Make it possible to use the characters before `k` (i.e. `----`) for
optimization.
https://github.com/k-takata/Onigmo/commit/9c13de8d0684ebde97e3709d7693997c81ca374b -
05:05 AM Revision e02c892a (git): Fix indents in Onigmo files to use spaces instead of tabs (#14047) [no ci]
-
04:41 AM Bug #21625: Allow IO#wait_readable together with IO#ungetc even in text mode
- ruby_3_3 commit:30f661951bb19f69cf55388c76ecaf7b0be41079 merged revision(s) commit:12350eb9e0d3317da57b5a37c0c2810946b48850.
- 04:34 AM Revision 2c7fd073 (git): [DOC] Update bundled gems list at 22496e2fe6ea4d354d039927a33458
-
04:33 AM Revision 22496e2f (git): Update bundled irb and repl_type_completor version (#15030)
-
04:28 AM Revision 30f66195 (git): merge revision(s) 12350eb9e0d3317da57b5a37c0c2810946b48850: [Backport #21625]
- [PATCH] [Bug #21625] Allow io/wait methods with `IO#ungetc` in text mode
-
02:10 AM Bug #21559: Unicode normalization nfd -> nfc -> nfd is not reversible
- Backport would only be needed if the upgrade to Unicode 16.0.0 (see https://bugs.ruby-lang.org/issues/20724) is backported.
-
02:06 AM Bug #21559 (Closed): Unicode normalization nfd -> nfc -> nfd is not reversible
- Added regression test at https://github.com/ruby/ruby/commit/a122d7a58e91ed6cd531e906cb398688d7cc8b17
and fix at https://github.com/ruby/ruby/commit/e4c8e3544237b8c0efba6b945173dc66552d641c.
Many thanks to Tomoya Ishida for finding thi... -
12:27 AM Revision e4c8e354 (git): Remove recursion in UnicodeNormalize.nfc_one, fixing bug 21159.
-
12:27 AM Revision 83a943b5 (git): Add test for Unicode normalization of Gurung Khema.
-
12:27 AM Revision a122d7a5 (git): Add regression test for bug 21559.
11/01/2025
-
07:14 PM Revision 48c7f349 (git): Fix rescue in test_ractor.rb
-
04:07 PM Bug #21560: RUBY_MN_THREADS=1 causes large performance regression in Puma 7
- The 3.4 backport was merged, but the 3.3 backport doesn't apply cleanly.
-
07:53 AM Bug #21560: RUBY_MN_THREADS=1 causes large performance regression in Puma 7
- I forgot it was introduced in 3.3. It is eligible for backport, but ultimately that decision is up to each branch maintainers.
-
03:51 PM Revision 7ec94afa (git): mn timer thread: force wakeups for timeouts
-
03:49 PM Bug #21660: No-parentheses endless method definition that has parameter destructuring is wrongly accepted in Prism
- Sorry, I forgot about your comment on https://github.com/ruby/prism/pull/3674. https://github.com/ruby/prism/pull/3700 will fix this
-
07:27 AM Bug #21660 (Open): No-parentheses endless method definition that has parameter destructuring is wrongly accepted in Prism
- This is syntax error in parse.y but not in Prism.
~~~ruby
def f a, (b) = 1
~~~
Related to #21623 -
02:47 PM Revision 390d77ba (git): Fix memory leak in String#encode when StringValue raises
- The following script leaks memory:
10.times do
100_000.times do
"\ufffd".encode(Encoding::US_ASCII, fallback: proc { Object.new })
rescue
end
puts `ps -o rss= -p #{$$}`
end
Before:
450244
... -
02:35 PM Revision 5384136e (git): [ruby/json] Enable JSON_DEBUG for parser/extconf.rb
- https://github.com/ruby/json/commit/82b030f294
-
01:58 PM Revision af0597f0 (git): [ruby/json] Enable JSON_DEBUG for parser/extconf.rb
- https://github.com/ruby/json/commit/3ea744ad67
-
01:50 PM Bug #21645: Can't `require "resolve"` on Windows under Bundler without warnings
- There's a new windows-head build that I tried now. Unfortunately I still get this error. The difference seems to be that `bundler-cache: true` specifies a vendor directory for bundle install, which I skipped when applying the change. So ...
-
12:06 PM Revision a97f4c62 (git): [ruby/json] parser.c: Appease GCC warning
- ```
../../../../../../ext/json/ext/parser/parser.c:1142:40: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
1142 | if (RB_UNLIKELY(first_digit == '0' && mantissa_digits > 1 || negative && mantissa_digits == 0))... -
12:00 PM Revision ed7229ea (git): [ruby/json] parser.c: Use SWAR to skip consecutive spaces
- Closes: https://github.com/ruby/json/pull/881
If we encounter a newline, it is likely that the document is pretty printed,
hence that the newline is followed by multiple spaces.
In such case we can use SWAR to count up to eight consecu... -
11:16 AM Revision 94287b1e (git): Make the expectation more precise in Ractor.make_shareable(Proc) test
-
11:16 AM Revision 33a026fe (git): Fix the description and logic for the Ractor.make_shareable(Proc) test
-
10:22 AM Revision babf50e3 (git): [ruby/json] Use SWAR for parsing integers on little endian machines
- Closes: https://github.com/ruby/json/pull/878
```
== Parsing float parsing (2251051 bytes)
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
Warming up ------------------------... -
10:10 AM Revision db570804 (git): [DOC] How to use `make matz`
-
09:58 AM Revision 5ce27bef (git): Flush NEWS.md only when NEW is not given
- Split flushing NEWS and bumping up versions
-
09:54 AM Revision bca8fce7 (git): [ruby/json] parser.c: Introduce `rest()` helper
- https://github.com/ruby/json/commit/11f4e7b7be
-
09:41 AM Revision 1942cb21 (git): [ruby/json] Add test coverage for T_BIGNUM parsing
- https://github.com/ruby/json/commit/f0150e2944
-
09:40 AM Revision b3d5c966 (git): [ruby/json] parser.c: Introduce `peek()` and `eos()` helpers
- Encapsulate pointer arithmetic to reduce possibility of mistakes.
https://github.com/ruby/json/commit/8b39407225 -
08:52 AM Revision a6bdf52b (git): [ruby/json] parser.c: Extract json_parse_digits
- https://github.com/ruby/json/commit/1bf405ecc6
-
08:52 AM Revision 6e2e7a33 (git): [ruby/json] parser.c: Extract `json_parse_number`
- https://github.com/ruby/json/commit/2681b23b87
-
08:16 AM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- wsfulton (William Fulton) wrote in #note-2:
> This happens when compiling an EXTENSION. We have always used -Wmissing-field-initializers in our extensions and now they are broken. New Ruby releases really MUST NOT introduce new warnings... -
07:37 AM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- This happens when compiling an EXTENSION. We have always used -Wmissing-field-initializers in our extensions and now they are broken. New Ruby releases really MUST NOT introduce new warnings for extensions which have to include Ruby.h.
-
01:01 AM Bug #21659 (Feedback): rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- In configure.ac, we add `-Wno-missing-field-initializers` explicitly if available.
Are you adding that `-Werror -Wmissing-field-initializer` by yourself? -
07:28 AM Bug #21661 (Open): Endless method definition as a default value of block parameter is wrongly accepted in Prism
- These are syntax error in parse.y but not in Prism.
~~~ruby
p do |a = def f = 1; b| end
p do |a = def f = 1| 2; b|c end # `|` inside block parameter
~~~
Normal assignment as a default value `p do |a = b = 1| end` is already syntax e... - 06:50 AM Revision 8c190052 (git): Update bundled gems list as of 2025-10-31
-
02:39 AM Bug #21658 (Rejected): Encoding objects are dumped with an encoding of US-ASCII
- That is not an instance variable of an `Encoding` instance, but the instance variable for the encoding of the name.
-
01:23 AM Bug #21654: Set#new calls extra methods compared to previous versions
- mame (Yusuke Endoh) wrote in #note-13:
> My concern is that the expectation to "if it's at all possible to raise early" is a slippery slope with no clear boundary.
I don't think it's slippery at all. There's a very clear difference betw... -
12:18 AM Revision 17a7b4e0 (git): [DOC] Fix typo in `Hash#compare_by_identity` docs