Activity
From 07/03/2025 to 07/09/2025
07/09/2025
- 11:03 PM Revision f5085c70 (git): ZJIT: Mark profiled objects when marking ISEQ (#13784)
- 09:51 PM Revision 1e3d24a0 (git): [ruby/prism] Accept a newline after the defined? keyword [Backport #21197] (#13327)
- * [ruby/prism] Accept a newline after the defined? keyword
[Bug #21197]
https://github.com/ruby/prism/commit/22be955ce9
* Fix a compilation error
Co-authored-by: Stan Lo <stan001212@gmail.com>
---------
Co-authored-by: Kevin Newton... - 09:50 PM Revision 1df94aaf (git): ZJIT: Name side-exit test cases correctly
- 09:50 PM Revision e2a81c73 (git): ZJIT: Optimize `opt_and` and `opt_or` instructions for Fixnum
- 09:50 PM Revision 10b582da (git): ZJIT: Profile `opt_and` and `opt_or` instructions
-
09:01 PM Bug #21505: [Ractor] calling exit from non-main ractor will hang if main ractor waits on it
- I opened https://github.com/ruby/ruby/pull/13838 which fixes this
```
./miniruby -e 'Ractor.new { exit }.join'
-e:1: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implem... -
06:42 PM Revision b146eae3 (git): [DOC] Tweaks for String#clear
-
06:41 PM Revision 6c77a0c6 (git): [DOC] Tweaks for String#chop
-
06:41 PM Revision 3baed2ea (git): [DOC] Tweaks for String#chr
-
06:41 PM Feature #21386: Introduce `Enumerable#join_map`
- I am against this.
Ergonomics: Adding a special "X_Y" method for every common pattern of "X followed by Y" is truly horrible for the ergonomics of the language. It only multiplies the number of useless details the programmer should reme... -
05:38 PM Revision 94e702b0 (git): [DOC] Tweaks for String#chop
-
05:38 PM Revision 54f28c1d (git): Avoid concurrently overflowing of shape_id
- Previously it was possible for two atomic increments of next_shape_id
running concurrently to overflow MAX_SHAPE_ID. For this reason we need
to do the test atomically with the allocation in shape_alloc returning
NULL.
This avoids overfl... -
05:38 PM Revision cfc006d4 (git): Always use atomics to get the shape count
- When sharing between threads we need both atomic reads and writes. We
probably didn't need to use this in some cases (where we weren't running
in multi-ractor mode) but I think it's best to be consistent. -
05:38 PM Revision 5dfd86cf (git): Fix off-by-one in shape_tree_mark/shape_tree_compact
- This was using < so subtract one from the last shape id would have us
miss the last inserted shape. I think this is unlikely to have caused
issues because I don't think the newest shape will ever have edges.
We do need to use `- 1` beca... -
04:40 PM Revision fd8a67fc (git): Re-ordered vcpkg related steps. It may be affected with VsDevCmd.bat
-
04:40 PM Revision 942d64b4 (git): Use the latest version of Visual Studio with windows-2022 runner image
-
03:54 PM Revision 1de0b28c (git): [DOC] Tweaks for String#chomp
-
03:54 PM Revision f17e5c4d (git): [DOC] Tweaks for String#chomp!
-
01:11 PM Revision 08738779 (git): Update to ruby/spec@ed254ba
-
11:18 AM Revision ba246c5a (git): [ruby/io-wait] Revert "Fix dependency for ruby 2.6"
- This reverts commit https://github.com/ruby/io-wait/commit/2eb3841e9c8f.
Ruby 2.6 support has been dropped.
https://github.com/ruby/io-wait/commit/bcc343683e -
10:54 AM Bug #21506 (Closed): Fix timeout in `Addrinfo.getaddrinfo` to actually take effect
- ### Description
This change fixes an issue where the timeout option in `Addrinfo.getaddrinfo` was not functioning as expected.
https://github.com/ruby/ruby/pull/13803/files
It also addresses a related issue where specifying `fast_fa... -
10:40 AM Bug #19473: can't be called from trap context (ThreadError) is too limiting
- > Yes, for example gems like webservers like Puma set trap handlers.
The trap handler code that has already been written and published probably does not use `Mutex#lock`, so it is not related to this problem. Such benign trap handlers... -
08:37 AM Bug #19473: can't be called from trap context (ThreadError) is too limiting
- mame (Yusuke Endoh) wrote in #note-25:
> Indeed, creating a new thread for each signal arrival is extremely simple.
It feels like a hack though and it's a pretty high cost to create a new Thread for every signal.
If this was the off... -
12:28 AM Bug #19473: can't be called from trap context (ThreadError) is too limiting
- > Run signal handlers not on the main thread but another thread.
While I don't have a strong opinion on this, I personally feel this approach makes more sense.
However, ko1 said that users can just write this explicitly themselves.... -
10:34 AM Revision 0c1c3ffa (git): [ruby/io-wait] Revert https://github.com/ruby/io-wait/pull/9 "Make
- the gem a noop on Rubies older than
2.6"
This reverts commit https://github.com/ruby/io-wait/commit/75fcb74c327f.
The version that does nothing with pre-ruby 2.6 has already been
released, so there is no longer need to consider older r... -
10:34 AM Revision ddeefa2e (git): [ruby/io-wait] Bump up the required ruby version
- io-wait became a default gem at ruby 3.0.
Even it can be installed on earlier versions, but the standard library
will be loaded instead of the installed gem.
https://github.com/ruby/io-wait/commit/15b96736cd -
08:56 AM Revision 25afe7ef (git): Rename variables to suit each method
-
08:56 AM Revision cd10afed (git): Removed a left over from c71a60c1dd02
- 0a0eb2807ed7 has already replaced most of that code.
-
08:12 AM Bug #21396: Set#initialize should call Set#add on items passed in
- Regarding thread-safety, for `add?` the only thing is the return value where the old implementation might potentially return the Set even though the element was added concurrently.
It's still thread-safe in that it doesn't corrupt the S... -
06:35 AM Bug #21396: Set#initialize should call Set#add on items passed in
- knu (Akinori MUSHA) wrote in #note-10:
> Jeremy, thanks for the reply.
> ...
I think that is a reasonable compromise. It keeps the advantages of core Set when not subclassed, and keeps backwards compatibility for subclasses (at least,... -
04:57 AM Bug #21396: Set#initialize should call Set#add on items passed in
- Jeremy, thanks for the reply.
Your point about thread-safety is well taken. It is an important advantage. As a possible compromise, we could keep the C backing and switch the behavior of methods when the class is subclassed in excha... -
12:41 AM Bug #21396: Set#initialize should call Set#add on items passed in
- knu (Akinori MUSHA) wrote in #note-8:
> Considering the feedback we've received about compatibility in the new experimental Set implementation, it may be in our best interest to revert to the pure-Ruby version.
> ...
I don't think reve... -
06:59 AM Revision 3f0e0d5c (git): [ruby/io-nonblock] Bump up the required ruby version
- io-nonblock became a default gem at ruby 3.0.
Even it can be installed on earlier versions, but the standard library
will be loaded instead of the installed gem.
https://github.com/ruby/io-nonblock/commit/c86d0d37af - 04:48 AM Revision 4ed27575 (git): [rubygems/rubygems] Update gemspec based on provided github username when exists
- * Conditionally set changelog_url if gh username passed
and enabled
* conditionally set homepage, source code uri, homepage uri when gh
username passed in
* update documentation to say username will also be used for gemspec file
https... - 04:48 AM Revision 3feba181 (git): [rubygems/rubygems] Let s3_uri_signer accept the HTTP method
- https://github.com/rubygems/rubygems/commit/35fc7f9547
- 04:48 AM Revision 5d880b75 (git): [rubygems/rubygems] Correctly sign S3 HEAD requests
- We sometimes send HEAD requests. The s3_uri_signer.rb code allways assumed GETs.
This lead to consistently getting 403 responses back from S3. Recently, S3
attempted to change the behaviour of how 403s are handled when TCP connections
ar... - 04:48 AM Revision af6012b9 (git): [rubygems/rubygems] Fix date format in S3 URI signer
- %M is minute of the hour.
%m is month of year.
We want the former, not the latter.
https://github.com/rubygems/rubygems/commit/d7ca3fa279 -
04:48 AM Revision c6da0197 (git): [rubygems/rubygems] Add blank line after every question
- To try make output a bit less messy.
https://github.com/rubygems/rubygems/commit/92c8bc6769 -
04:48 AM Revision 9942ff7c (git): [rubygems/rubygems] Use shorter questions as prompts in `bundle gem`
- If we use long explanations as prompts, sometimes the prompt gets
printed twice due to a (I think) reline/readline bug.
https://github.com/rubygems/rubygems/commit/987e0dfa90 -
04:48 AM Revision 9b0f9f81 (git): [rubygems/rubygems] Reword MIT explanation to make sense after reordering
- Previous wording assumed explanation was displayed after the question,
not before.
https://github.com/rubygems/rubygems/commit/04eb3430ba - 03:56 AM Revision e9cd3060 (git): ZJIT: Support guarding *Exact types (#13797)
- ZJIT already can generate guard type instructions for *Exact types.
For example:
```
def test(strings)
strings.map do |string|
string.bytesize
end
end
test(["foo", "bar"])
```
```
HIR:
fn block in test:
bb0(v0:BasicObject, v1...
07/08/2025
-
09:26 PM Revision 5aaedc05 (git): Re-ordered vcpkg related steps. It may be affected with VsDevCmd.bat
-
09:26 PM Revision 80bf0744 (git): Use the latest version of Visual Studio with windows-2022 runner image
-
09:18 PM Revision 9f00b887 (git): Bump up resolv-0.2.3 for Ruby 3.2
-
09:12 PM Bug #21505: [Ractor] calling exit from non-main ractor will hang if main ractor waits on it
- Yeah fair enough. It's probably not as complicated to fix as I initially thought.
-
08:54 PM Bug #21505: [Ractor] calling exit from non-main ractor will hang if main ractor waits on it
- `Kernel#exit` is basically just `raise SystemExit`, does it mean any exception in a Ractor hangs?
IOW, I don't think it should be disallowed because `exit` is just an Exception. -
07:58 PM Bug #21505 (Closed): [Ractor] calling exit from non-main ractor will hang if main ractor waits on it
- ```ruby
r = Ractor.new do
exit
end
r.join # hangs
```
Should `exit` be allowed in ractors? It would be easiest to disallow, as the code might be tricky if we allow it. -
08:52 PM Feature #21501: Include native filenames in backtraces as sources for native methods
- ivoanjo (Ivo Anjo) wrote in #note-6:
> I must admit I'm a bit torn on this. As I mentioned above, often the `.c` files are not kept around in the filesystem, whereas in my proposed version I'm showing the exact file (including path) tha... -
08:41 PM Feature #21501: Include native filenames in backtraces as sources for native methods
- matz (Yukihiro Matsumoto) wrote in #note-5:
> In my opinion, the typical Ruby user is not interested in line numbers in C source code or names of extension libraries.
I think most are or would not mind, because it is always valuable ... -
08:33 AM Feature #21501: Include native filenames in backtraces as sources for native methods
- For me the usefulness is in understanding both what and where something is happening even without needing to go into the source code.
E.g. Let's consider that native extensions didn't exist. If I get an error in production and I see a... -
03:04 AM Feature #21501: Include native filenames in backtraces as sources for native methods
- I didn't quite understand what makes you happy with this proposal. Could you explain a little more how it would be useful? In my opinion, the typical Ruby user is not interested in line numbers in C source code or names of extension libr...
-
08:33 PM Bug #19473: can't be called from trap context (ThreadError) is too limiting
- OK, thank you all 3 for clarifying.
I understand that point of view, even though I don't fully agree with it.
One problem is this limitation makes it impossible to support `Timeout.timeout` in `trap`, see https://github.com/ruby/time... -
11:24 AM Bug #19473: can't be called from trap context (ThreadError) is too limiting
- Locking multiple mutex with a fixed order is considered to be deadlock-safe, but permitting mutex in signal_handler, I think fixed order locking is hard or impossible.
The code below looks deadlock-safe, but it's not.
~~~ruby
trap(:... -
08:38 AM Bug #19473: can't be called from trap context (ThreadError) is too limiting
- If `Mutex#lock` were permitted inside a trap handler, a program like the following would have a very hard-to-reproduce race condition bug.
```ruby
m = Mutex.new
trap(:INT) { m.synchronize { p :signalled } }
while true
sleep ... -
05:10 AM Bug #19473: can't be called from trap context (ThreadError) is too limiting
- Eregon (Benoit Daloze) wrote in #note-20:
> I think a simple way to look at this issue is to analyze all cases:
> ...
In most cases, (1) occurs, so it is difficult to notice the possibility of (2).
With the current behavior, it is pos... -
07:57 PM Revision c691095f (git): ZJIT: Use BitSet in HIR
-
07:57 PM Revision e59f404b (git): ZJIT: Add a BitSet type
- 07:51 PM Revision 342ada15 (git): ZJIT: Use nil? optimization to test guard generation against different types
- 07:51 PM Revision 79915e6f (git): ZJIT: Profile `nil?` calls
- This allows ZJIT to profile `nil?` calls and create type guards for
its receiver.
- Add `zjit_profile` to `opt_nil_p` insn
- Start profiling `opt_nil_p` calls
- Use `runtime_exact_ruby_class` instead of `exact_ruby_class` to determine
... -
06:50 PM Bug #21504 (Open): [Ractor] Process.waitpid blocks ractor, new NT doesn't pick up other ractors
- The following code hangs when run with `RUBY_MAX_CPU=2 make run`:
Note: `RUBY_MAX_CPU` is set to 2 so that only 1 non-main ractor can run at once.
test.rb:
```ruby
rs = []
2.times do |i|
rs << Ractor.new(i) do |i|
if i =... -
05:26 PM Revision b1604708 (git): [DOC] Tweaks for String#chars
-
05:26 PM Revision 14971e75 (git): [DOC] Tweaks for String#center
-
04:32 PM Revision 5cd408a5 (git): Bump up resolv-0.6.2 for Ruby 3.4 (#13818)
- 04:28 PM Revision 9e4157a0 (git): ZJIT: Make type definition code more consistent
- 04:28 PM Revision af892c1b (git): ZJIT: More accurately model Class types
- 04:28 PM Revision 6c200828 (git): ZJIT: Support inference of ModuleExact type
-
03:10 PM Bug #21375: Set[] does not call #initialize
- I'm leaning toward making Set subclass-friendly again. That's how I've always wanted Set to be (unlike Array and Hash), and the feedback shows that there are real users and use cases that share and rely on this concept, so we shouldn't ...
-
02:57 PM Bug #21396: Set#initialize should call Set#add on items passed in
- Considering the feedback we've received about compatibility in the new experimental Set implementation, it may be in our best interest to revert to the pure-Ruby version.
If improving performance and reducing memory footprint remain c... -
02:34 PM Bug #21029: Prism behavior for `defined? (;x)` differs
- @S_H_ I agree, I think the overhead is not worth it in this case and we should pretend the `;` do not exist on both cases.
-
02:23 PM Bug #21029: Prism behavior for `defined? (;x)` differs
- I've fixed that `defined? (x;)` returns an `expression` when using parse.y.
https://github.com/ruby/ruby/pull/13821
However, I have a little skeptical about whether this change is a good idea. If any other good suggestions, I would app... -
10:30 AM Revision f5acefca (git): [ruby/uri] Prefer dedicated assertion methods
- https://github.com/ruby/uri/commit/d79b3f5b94
-
10:00 AM Revision 100c0430 (git): [ruby/etc] Prefer dedicated assertions
- https://github.com/ruby/etc/commit/9caddede76
-
09:25 AM Revision 7ce4db84 (git): [ruby/delegate] Prefer dedicated assertions
- https://github.com/ruby/delegate/commit/5ee4189537
-
07:52 AM Feature #21455: Add a block argument to Array#join
- I have a different view on this proposal.
If `Array#join` were to accept a block, I would expect its behavior to relate directly to the "join" action itself, not the transformation of each element (which is the responsibility of `map`... - 07:26 AM Revision c913a635 (git): Update default gems list at b9782ab8932f9fb6a24a0522c579ca [ci skip]
-
07:25 AM Revision b9782ab8 (git): [ruby/resolv] v0.6.2
- https://github.com/ruby/resolv/commit/a28aaed4cb
-
07:25 AM Revision 9aa0300d (git): [ruby/resolv] Limit decompressed name length
- RFC 1035 specifies the 255-octet maximum name length. This change set
checks the limit.
https://github.com/ruby/resolv/commit/4c2f71b5e8 -
06:36 AM Revision 680383c6 (git): [ruby/tsort] Exclude gemspec and git-related files
- https://github.com/ruby/tsort/commit/bf2e3a8695
-
06:36 AM Revision 51de7c75 (git): [ruby/tsort] Use git magic signatures to exclude files
- https://github.com/ruby/tsort/commit/ab55dcb7f3
-
06:11 AM Revision 75786557 (git): [ruby/tsort] [DOC] Document constants
- https://github.com/ruby/tsort/commit/1d1711ad23
-
05:37 AM Feature #21262 (Closed): Proposal: `Ractor::Port`
- https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-06-05.md#feature-21262-proposal-ractorport
> matz: go ahead. I agree to delete Ractor#take.
-
05:36 AM Bug #21362 (Assigned): Namespace: Inline method caches poisoned with builtins
-
02:12 AM Bug #21503: \p{Word} does not match on \p{Join_Control} while docs say it does
- There is already a PR for that: https://github.com/ruby/ruby/pull/7711
Can you take a look? @duerst @naruse -
12:11 AM Feature #20405: Inline comments
- I like Marco's proposal, but I wonder how much code out there could potentially break.
07/07/2025
- 11:46 PM Revision e0841a79 (git): ZJIT: Fix Rust warnings (#13813)
-
11:32 PM Revision 0239809a (git): Remove test/.excludes/_appveyor
- We don't run AppVeyor anymore, so we shouldn't need this.
-
09:45 PM Feature #21501: Include native filenames in backtraces as sources for native methods
- It seems nice, but I think it would be even more helpful to show lines in C files.
I think this could be achieved by defining `rb_define_method` as a macro using `__FILE__` and `__LINE__` and that should be perfectly portable (and doesn... -
07:58 AM Feature #21501: Include native filenames in backtraces as sources for native methods
- > I don't think it will need such platform specific code.
> ...
I'm thinking that in this case it would only work with methods defined when the extension gets loaded (e.g. inside `require_internal`), not later.
Having said that, thos... -
03:45 AM Feature #21501: Include native filenames in backtraces as sources for native methods
- I don't think it will need such platform specific code.
Probably it would be possible by:
* in `require_internal`, store the loading path on `struct rb_ext_config`.
* in `setup_method_cfunc_struct`, copy the path to `rb_method_cfunc_t`.
... -
07:14 PM Revision e9d7e105 (git): [DOC] Tweaks for String#casecmp? (#13810)
-
07:10 PM Revision c2c0c220 (git): [DOC] Tweaks for String#casecmp
-
06:39 PM Bug #21503: \p{Word} does not match on \p{Join_Control} while docs say it does
- What I mean is that the current implementation of `\p{Word}` does not seem to match `\p{Join_Control}` even though it should and it also says so in the docs
-
06:02 PM Bug #21503 (Closed): \p{Word} does not match on \p{Join_Control} while docs say it does
- in the [docs](https://ruby-doc.org/3.4.1/Regexp.html#:~:text=/%5Cp%7B-,Word,-%7D/%3A%20A%20member) it is mentioned that `\p{Word}` matches the equivalent of: `[\p{M}\p{Nd}\p{Pc}\p{Alpha}\p{Join_Control}]` as it's also defined in the [uni...
-
06:26 PM Revision 1f024cfd (git): ZJIT: Add opnds macro for Vec<InsnId> to Vec<Opnd> (#13805)
- Along the same lines as the `opnd` macro we already have, but for a
`Vec<InsnId>` instead of a single `InsnId`.
This gets a few for loops and `jit.get_opnd` calls out of the `gen_`
functions. - 03:45 PM Revision c1937480 (git): ZJIT: Add a simple HIR validator (#13780)
- This PR adds a simple validator for ZJIT's HIR.
See issue https://github.com/Shopify/ruby/issues/591 -
01:12 PM Revision 0bb44f29 (git): Rename `ractor_safe_set` into `concurrent_set`
- There's nothing ractor related in them, and the classic terminology
for these sort of data structures is `concurrent-*`, e.g.
concurrent hash. -
01:03 PM Revision 0604d0c9 (git): [DOC] Tweaks for String#capitalize!
-
01:02 PM Revision 987b5bf9 (git): [DOC] Tweaks for String#capitalize
-
10:44 AM Revision 482f4cad (git): Autoload encodings on the main ractor
- None of the datastructures involved in the require process are
safe to call on a secondary ractor, however when autoloading
encodings, we do so from the current ractor.
So all sorts of corruption can happen when using an autoloaded
enco... -
06:12 AM Revision 002d7464 (git): ZJIT: Avoid double negative in Mem debug
- Prior to this commit the debug output for negative offsets would look
like:
```
Mem64[Reg(3) - -8
```
That makes it look like we're adding instead of subtracting. After this
commit we'll print:
```
Mem64[Reg(3) - 8
``` -
02:53 AM Revision d0fdbef4 (git): [ruby/json] Improve consistency of code style
- https://github.com/ruby/json/commit/a497c71960
- 02:53 AM Revision e1d09ffe (git): [rubygems/rubygems] Update SPDX license list as of 2025-07-01
- https://github.com/rubygems/rubygems/commit/56b55a198a
-
02:53 AM Revision 3c552881 (git): [rubygems/rubygems] Document that `global_gem_cache` also caches compiled extensions
- https://github.com/rubygems/rubygems/commit/265f718be7
-
02:53 AM Revision 3eeffea2 (git): [rubygems/rubygems] Improve sentence
- "locally to the installing Ruby installation" felt a bit confusing.
https://github.com/rubygems/rubygems/commit/c950720719 -
02:53 AM Revision 6a580896 (git): [rubygems/rubygems] Stop allowing calling `#gem` on random objects
- https://github.com/rubygems/rubygems/commit/4b8570ae15
-
02:53 AM Revision 845e878f (git): [rubygems/rubygems] Add `default_cli_command` documentation
- I suspect most experienced users won't like the change in defaults, so
document the setting to toggle back the current default.
https://github.com/rubygems/rubygems/commit/93e2e2bef9 -
02:53 AM Revision cd3389e5 (git): [rubygems/rubygems] Cancel `path_relative_to_cwd` change
- It only affected the `--path` flag which is actually getting removed, so
I don't think it makes sense to make such change. The current behavior
is reasonable and I tried to codify it with a few more specs.
https://github.com/rubygems/ru... -
02:53 AM Revision 5fa484a4 (git): [rubygems/rubygems] Move specs independent of gem name out of shared examples
- And rename the shared examples to "paths dependent on gem name".
https://github.com/rubygems/rubygems/commit/cdcc8ba92a -
02:53 AM Revision 6d696fa3 (git): [rubygems/rubygems] Move specs independent from gem_name out of "generating a gem" shared specs
- So that they don't run repeatedly.
https://github.com/rubygems/rubygems/commit/1f65e879f4 -
02:53 AM Revision fab1323a (git): [rubygems/rubygems] Remove unnecessary nesting
- https://github.com/rubygems/rubygems/commit/eac831a1b7
-
02:53 AM Revision e7f11ecc (git): [rubygems/rubygems] Actually run "generating a gem" shared examples for the more standard name
- They were only being run for "edge case" names, yet it tests all kind of
things about generation.
https://github.com/rubygems/rubygems/commit/3e9d805eea -
02:53 AM Revision 8a802f7e (git): [rubygems/rubygems] Fix assertions to not depend on specific gem name
- https://github.com/rubygems/rubygems/commit/27a4af859e
-
02:53 AM Revision e95adbfa (git): [rubygems/rubygems] Remove unnecessary nesting from standalone specs
- Originally, all the specs in this file were put inside a shared examples
block, and since then all specs were run only changing the cwd (either
from root, or a subdirectory).
This was in https://github.com/rubygems/rubygems/commit/d7291... -
02:53 AM Revision 9918ca16 (git): [rubygems/rubygems] Remove `default_install_uses_path` setting
- The previous default can already be configured with `bundle config
path.system true`.
https://github.com/rubygems/rubygems/commit/cb483b79db -
02:52 AM Revision f609d339 (git): [rubygems/rubygems] Remove unnecessary feature flag check
- This spec now only runs in Bundler 2 mode.
https://github.com/rubygems/rubygems/commit/f52cb240ca -
02:52 AM Revision fef00519 (git): [rubygems/rubygems] Remove `auto_clean_without_path` setting
- There already different ways of toggling off this behavior, like setting
`bundle config clean false`, or configuring Bundler to install to system
gems with `bundle config path.system true`.
https://github.com/rubygems/rubygems/commit/6d...
07/06/2025
-
05:20 PM Bug #21502: Segfault with 3.2.8 with frida gem
- You just beat me to it - thanks Jeremy.
-
05:19 PM Bug #21502 (Closed): Segfault with 3.2.8 with frida gem
- Reading https://github.com/hakivvi/frida-ruby/issues/2#issuecomment-3042173245, it looks like it was a bug in the gem that got fixed.
-
01:14 PM Bug #21502: Segfault with 3.2.8 with frida gem
- Last good release running this code was 3.2.4. Segfault observed in 3.2.5 onwards - see my comment on the gem maintainer's page: https://github.com/hakivvi/frida-ruby/issues/2#issuecomment-3041319068
-
12:44 PM Bug #21502 (Closed): Segfault with 3.2.8 with frida gem
- I've just seen a segfault executing the following code in irb with the frida gem:
``` shell
$ rbenv versions
* 3.2.8 (set by /home/me/.rbenv/version)
$ gem install frida
Fetching frida-0.1.1.gem
Building native extensions. This c... - 07:04 AM Revision 4d7e6220 (git): Update bundled gems list as of 2025-07-06
07/05/2025
-
10:00 PM Feature #21501 (Open): Include native filenames in backtraces as sources for native methods
- Consider this example:
```ruby
require 'bigdecimal'
BigDecimal.singleton_class.prepend(
Module.new do
def save_rounding_mode
super
end
end
)
[:example].each do
BigDecimal.save_rounding_mode do
pu... -
05:39 PM Feature #21386: Introduce `Enumerable#join_map`
- nobu (Nobuyoshi Nakada) wrote in #note-4:
> This code would show the difference more clearly.
> ...
Hmm. I missed considering that behavior. In this example though, just the `map` would return wrapped arrays:
```ruby
[[1,2],3].map {|n|[n... -
02:27 PM Feature #21386: Introduce `Enumerable#join_map`
- My expectation is that join_map would behave like map + join
-
07:57 AM Feature #21386: Introduce `Enumerable#join_map`
- This code would show the difference more clearly.
```ruby
[[1,2],3].map {|n|[n]}.join("|") #=> "1|2|3"
[[1,2],3].join_map("|") {|n|[n]} #=> "[[1, 2]]|[3]"
``` -
07:50 AM Feature #21386: Introduce `Enumerable#join_map`
- prateekkish@gmail.com (Prateek Choudhary) wrote in #note-2:
> PR: https://github.com/ruby/ruby/pull/13792
This difference is intentional?
```ruby
[1,2,3].map {|n|[n]}.join(",") #=> "1,2,3"
[1,2,3].join_map(",") {|n|[n]} #=> "[1]... -
06:42 AM Feature #21386: Introduce `Enumerable#join_map`
- PR: https://github.com/ruby/ruby/pull/13792
-
02:03 PM Revision b6817392 (git): [ruby/openssl] pkey/ec: avoid calling SYM2ID() on user-supplied objects
- Compare by the VALUE value instead of ID. Calling SYM2ID() on a dynamic
symbol will pin a permanent ID.
These methods only accept known static symbols, and passing anything
else is an incorrect usage that results in an exception. Noneth... -
10:38 AM Revision ad7d75c9 (git): Remove LIKELY macro for Universal Parser
- Ruby Parser not used LIKELY macro.
So, can remove it.
07/04/2025
-
09:54 PM Revision 365317f6 (git): Fix wrong GENIV WB on too_complex Ractor traversal
- WBCHECK ERROR: Missed write barrier detected!
Parent object: 0x7c4a5f1f66c0 (wb_protected: true)
rb_obj_info_dump: 0x00007c4a5f1f66c0 T_IMEMO/<fields>
Reference counts - snapshot: 2, writebarrier: 0, current: 2, misse... -
09:54 PM Revision 12b0ce38 (git): Remove unused src param from rb_shape_copy_fields
-
09:54 PM Revision 8cd58326 (git): Fix wrong write barrier on fields copy
- Previously this write barrier was using the destination object as the
new parent, rather than the fields object.
Found by wbcheck -
09:54 PM Revision 32453560 (git): Fix missed write barrier on Ractor send move
- When moving a "generic IV" object, we need a write barrier to the fields
object.
WBCHECK ERROR: Missed write barrier detected!
Parent object: 0x7c913641d1a0 (wb_protected: true)
rb_obj_info_dump: 0x00007c913641d1a0 T_ARRA... -
09:54 PM Revision 5f1ca8ff (git): Fix ractor imemo fields write barrier parent
- $ RUBY_GC_LIBRARY=wbcheck ./miniruby -e 's = String.new; s.instance_variable_set(:@x, []); Ractor.make_shareable(s, copy: true)'
WBCHECK ERROR: Missed write barrier detected!
Parent object: 0x7ba8162dc890 (wb_protected: true)
... -
09:41 PM Revision 116d1106 (git): Assume that symbol in rb_check_symbol is not garbage
- rb_check_symbol is a public API, so it is always a bug if the user holds
on to a dead object and passes it in. -
09:16 PM Bug #18940 (Closed): Ruby Ractor fails with IOError when handling higher concurrency
- This doesn't reproduce on my machine on 3.5dev, and there have been a number of improvements to Ractors likely to have solved this. Please reopen if that's not the case :)
-
08:49 PM Bug #19154 (Closed): Specify require and autoload guarantees in ractors
- fxn (Xavier Noria) wrote in #note-13:
> Is constant access synchronized as it is for threads?
> ...
It does! Autoloads are forwarded to the main Ractor, where a new thread is spawned to perform the autoload (or block on the other thread). -
03:42 PM Revision 350df4fb (git): [DOC] Tweaks for Case Mapping doc
-
09:17 AM Revision 38993efb (git): [ruby/openssl] ssl: rename SSLContext#ecdh_curves= to #groups=
- TLS 1.3 renamed the "elliptic_curves" extension to "supported_groups"
to reflect that it now covers more than just ECDH groups. OpenSSL 1.1.1
followed this change by renaming the corresponding API from
SSL_CTX_set1_curves_list() to SSL_C... - 07:05 AM Revision 4d6fac3e (git): Update bundled gems list as of 2025-07-03
-
06:31 AM Revision 5564e0a5 (git): Fixed wrong commit hash
-
06:23 AM Revision 856962fa (git): ractor_sync.c: Optimize `ractor_set_successor_once` to be lock free
-
06:23 AM Revision 95235fd5 (git): benchmark_driver: Stop using `Ractor#take`
-
04:39 AM Revision 24ac9f11 (git): Revert "Add locks around accesses/modifications to global encodings table"
- This reverts commit cf4d37fbc079116453e69cf08ea8007d0e1c73e6.
-
04:39 AM Revision 50704fe8 (git): Revert "Make get/set default internal/external encoding lock-free"
- This reverts commit dda5a04f2b4835582dba09ba33797258a61efafe.
-
04:26 AM Revision b88cbe49 (git): Added io-nonblock and io-wait entries
-
04:14 AM Revision 0ce4b43e (git): Update default gems and bundled gems list at expand_tabs.rb
-
04:01 AM Revision 9503a77d (git): DRb has been extracted as bundled gems
-
02:33 AM Revision 66aaf5b6 (git): actions/cache is working with relative path
- 12:43 AM Revision 68af1929 (git): Support inference of ClassExact type
- 12:43 AM Revision 0c694b56 (git): Add missed runtime_exact_ruby_class case for Regexp
07/03/2025
- 08:33 PM Revision dda5a04f (git): Make get/set default internal/external encoding lock-free
- Also, make sure autoloading of encodings is safe across ractors.
- 08:33 PM Revision cf4d37fb (git): Add locks around accesses/modifications to global encodings table
- This fixes segfaults and errors of the type "Encoding not found" when
using encoding-related methods and internal encoding c functions across
ractors.
Example of a possible segfault in release mode or assertion error in debug mode:
```... - 08:20 PM Revision 4f4408e9 (git): Get transcoding to work across ractors by locking certain operations
- Ex: `str.encode` and `str.encode!` work across ractors now.
The global table `transcoder_table` needs a lock around each st_lookup/st_insert, and it's a two-level
table so the second level also needs to be locked around insertion/deleti... - 08:09 PM Revision ed3fd94e (git): ZJIT: Panic on BOP redefinition only when needed (#13782)
- 04:40 PM Revision c584cc07 (git): ZJIT: Enable one more btest (#13781)
- 04:30 PM Revision 0abe17da (git): ZJIT: Bail out on register spill (#13773)
- 04:22 PM Revision 57f4460f (git): ZJIT: Skip a hanging ractor test (#13774)
-
01:05 PM Revision 8b2d7613 (git): Assume that the symbol is not garbage in rb_sym2id
- rb_sym2id is a public API, so it is always a bug if the user holds on to
a dead object and passes it in. -
12:44 PM Revision 4592d637 (git): Suppress a warning in code for SOCKS5
-
10:19 AM Revision 1f976509 (git): symbol.c: enforce `intern_str` is always called with a lock
- Add missing locks in `rb_intern_str`, `rb_id_attrset` and `rb_intern3`.
-
08:44 AM Bug #21499 (Closed): make install - power_assert is a runtime_dependency of test-unit
- Please wait a stable release. master is development branch.
-
01:42 AM Bug #21499 (Closed): make install - power_assert is a runtime_dependency of test-unit
- The below is shown in the `make install` log of master. But, `test-unit` has `power_assert` as a runtime_dependency.
```
Extracting bundle gem power_assert-2.0.5...
Try with hash version of bundled gems instead of gems/power_assert... -
07:20 AM Revision 517c1067 (git): imemo_fields_set: save copying when reassigning a variable
- If we still fit in the existing imemo/fields object we can
update it atomically, saving a reallocation. -
06:46 AM Revision a020e349 (git): [DOC] Deleted the description about 2.2 and earlier
-
06:44 AM Revision c31bfd54 (git): [DOC] Fix markup in security.rdoc
-
05:29 AM Revision 5817e58a (git): Extract last-modified time after fetch completes
-
05:29 AM Revision 319062e4 (git): Prefer autotools repository mirror for build-aux files
- gcc master is still using 2021 version files.
-
05:29 AM Revision 9782bd52 (git): Drop HTTP support in downloader.rb
- The only use case is access to `repo.or.cz`, and it redirects HTTP
requests to HTTPS now. -
04:43 AM Revision 81da38b3 (git): Sync RubyGems
-
04:43 AM Revision f679202a (git): Remove old `bundle.rb` script usage
-
04:43 AM Revision 4126c1c5 (git): Adapt to upstream change in Bundler specs
-
03:36 AM Bug #21500 (Closed): Backport gcc 15 support
- commit:b42afa1dbcb Suppress gcc 15 unterminated-string-initialization warnings
commit:f1f0cc14cc7 Separate `__has_attribute` from `defined(__has_attribute)`
commit:543e3a1896a Cast up `int` instruction code to `VALUE`
commit:ed2806117... -
12:39 AM Bug #17359: Ractor copy mode is not Ractor-safe
- Seems to still be an issue. Here's an updated reproduction for 3.5dev (Using Ractor::Port instead of take/yield)
``` ruby
class Foo
attr_accessor :x
def initialize_copy(*)
$last = self
super
end
end
o = Foo.new... -
12:05 AM Bug #18733: Heavy GC allocations cause performance issue with Ractor
- This performance gap _in the original benchmark_ no longer exists on master. Benchmark from my Ryzen 7 3700X running linux:
```
❯ ruby -v
ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux]
❯ RUBY_MAX_CPU=16 ruby test.rb
...