Activity
From 05/30/2025 to 06/05/2025
06/05/2025
-
11:52 PM Revision 86eb5f9c (git): CI: Trap launchable_record_test in the parent process
-
11:39 PM Bug #21108 (Closed): C-c (SIGINT) crashes ruby when looping Ractors are not taken?
- I believe this should be fixed as `Ractor.yield` no longer exists under the Ractor::Port API
-
11:37 PM Revision 43472a30 (git): ZJIT: Panic unimplemented for OOB basic block args (#13533)
-
11:33 PM Revision d946d65c (git): Detect `clock_gettime` and `clock_getres` for winpthreads
-
11:00 PM Revision 5da3dc88 (git): CI: Timeout launchable setup in 3min
-
11:00 PM Revision 296a0d0b (git): CI: Create report files only when Launchable setup succeeded
-
09:55 PM Bug #19154: Specify require and autoload guarantees in ractors
- To give an update, `require` and `autoload` now work inside ractors. I think this can be closed.
-
09:54 PM Feature #15854: Tracing instance variable assignment
- > I think tracing ivar assignments would be prohibitively slow, and so probably not really usable in practice.
Since TracePoint is only recommended for debugging use, I think trading execution speed for more efficient debugging experi... -
09:49 PM Revision a62166e2 (git): support nested VM barrier synchronization
- on `RGENGC_CHECK_MODE > 1`, there are the following steps
1. gc_enter
2. vm_barrier
3. verify_internal_consistency
4. vm_barrier
and it causes nested vm_barrier synchronization.
This patch allows such cases. -
09:48 PM Revision 1a991131 (git): ZJIT: Pass self through basic block params (#13529)
- * ZJIT: Pass self through basic block params
Co-authored-by: Max Bernstein <[email protected]>
* Add comments for self
* Use self_param for ivar
* Make self_param a loop local
* Fix rest parameter type check
* Push self_param fi... -
09:45 PM Bug #20346: FiberScheduler.unblock not called by Thread#join when Thread body contains Ractor.take
- I created a PR for this: https://github.com/ruby/ruby/pull/13517
-
09:37 PM Feature #21346: Introduce `String#ensure_suffix`
- Let me record the background of the discussion. During the dev meeting, we considered the following use case:
```ruby
path.ends_with?(".rb") ? path : "#{path}.rb"
```
When rewriting this as `path.ensure_suffix(".rb")`, the behavi... -
06:18 PM Feature #21346: Introduce `String#ensure_suffix`
- matheusrich (Matheus Richard) wrote in #note-13:
> @ufuk see [dev meeting discussion](https://github.com/ruby/dev-meeting-log/blob/50ce075f492578c2b97a32887adbfc7515e1e1ab/2025/DevMeeting-2025-06-05.md#L4:~:text=matz%3A%20%22Hello%22.en... -
04:59 PM Feature #21346: Introduce `String#ensure_suffix`
- @ufuk see [dev meeting discussion](https://github.com/ruby/dev-meeting-log/blob/50ce075f492578c2b97a32887adbfc7515e1e1ab/2025/DevMeeting-2025-06-05.md#L4:~:text=matz%3A%20%22Hello%22.ensure_suffix(%22o!%22)%20should%20return%20%22Helloo!...
-
04:57 PM Feature #21346: Introduce `String#ensure_suffix`
- I personally find the `"Hello".ensure_suffix("o!")` case returning `"Helloo!"` very unexpected. I would have expected the change in the string to be the minimal operation needed to ensure that the string ends with the given suffix (i.e. ...
-
02:51 PM Feature #21346: Introduce `String#ensure_suffix`
- I've updated the PR as per Matz's comment.
-
09:17 AM Feature #21346: Introduce `String#ensure_suffix`
- What about `ensure_prefix`?
I think it's good to have parity here, I would be surprised if that doesn't exist but `ensure_suffix` does.
Also we have `start_with?`/`end_with?`, etc. -
05:40 AM Feature #21346: Introduce `String#ensure_suffix`
- `ensure_suffix` accepted. IMO, it should always copy the original string, even when it ends with the suffix. I don't see any reason to add bang-version, right now. Keep it on-demand (because we are lazy).
Matz.
-
08:06 PM Revision 4e395809 (git): Refactor raw accesses to rb_shape_t.capacity
-
06:23 PM Bug #17516: forking in a ractor causes Ruby to crash
- Right now forking with a block or forking and execing works without crashing
```
./miniruby -e 'Ractor.new { fork(){} }.take'
```
However as described in the issue forking with no block still crashes.
```
./miniruby -e 'Racto... -
06:15 PM Bug #21007 (Closed): Ractor scheduler issue when multiple threads in a ractor
- This was fixed by resetting the running_time_us
-
06:11 PM Bug #20905 (Closed): Ruby VM hangs while using ractors
- After @ko1's merge of Ractor::Ports this no longer reproduces. 🎉
@luke-gru and I paired on this both before and after. It seems like what fixed this is removing a check from the end of co_start when a thread terminates (which had a po... -
05:05 PM Bug #21396: Set#initialize should call Set#add on items passed in
- ko1 (Koichi Sasada) wrote in #note-4:
> How about to redfine `initialize` on subclass of `Set` to call `#add`?
I think we could, but that means people have to change their code when upgrading.
Eregon (Benoit Daloze) wrote in #note... -
01:43 PM Bug #21396: Set#initialize should call Set#add on items passed in
- I've always created custom variants of Set too, and I don't think it's rare to find these in in-house codebases.
-
08:34 AM Bug #21396: Set#initialize should call Set#add on items passed in
- Is there any public code in some gem or so that relies on this? (the example is rather synthetic)
-
01:08 AM Bug #21396: Set#initialize should call Set#add on items passed in
- How about to redfine `initialize` on subclass of `Set` to call `#add`?
-
04:25 PM Feature #21390 (Closed): Deprecate passing arguments to Set#to_set and Enumerable#to_set
- Implemented in commit:0b07d2a1e32a456fc302c8d970fa85782bdb98ce
-
12:30 PM Feature #21390: Deprecate passing arguments to Set#to_set and Enumerable#to_set
- I can agree with this. As it turned out, subclassing the Set class did not become very common, so I think it's fine to deprecate this feature now.
-
05:54 AM Feature #21390 (Assigned): Deprecate passing arguments to Set#to_set and Enumerable#to_set
-
04:24 PM Revision 0b07d2a1 (git): Deprecate passing arguments to Set#to_set and Enumerable#to_set
- Array#to_a, Hash#to_h, Enumerable#to_a, and Enumerable#to_h do not
allow you to specify subclasses. This has undesired behavior when
passing non-Set subclasses. All of these are currently allowed, and
none make sense:
```ruby
enum = [... -
04:20 PM Bug #21398: Ractor.select hangs when multiple threads submit heavy jobs concurrently
- Thank you for the report.
Is it possible for you to try to install ruby-head (3.5.0dev) and try this script with the recent changes to ractors (ractor ports)? I'm having trouble reproducing it on my end on ruby-head.
Here's the script ... -
04:21 AM Bug #21398 (Closed): Ractor.select hangs when multiple threads submit heavy jobs concurrently
- When multiple threads run heavy Ractor-based jobs at the same time, `Ractor.select(*workers)` can hang indefinitely without any crash, exception, or deadlock being reported.
This issue does not occur when only one thread is running si... -
04:02 PM Revision 2f80117c (git): Fix comment about debugging shapes
- This method was moved to RubyVM::Shape in 913979bede2a1b79109fa2072352882560d55fe0.
-
04:01 PM Revision 22dfa250 (git): More comprehensive debugging configuration
-
03:30 PM Bug #21400: rb_bug() hit when killing current root fiber on non-main thread
- I created a PR: https://github.com/ruby/ruby/pull/13526
-
03:24 PM Bug #21400 (Closed): rb_bug() hit when killing current root fiber on non-main thread
- This following code hits an `rb_bug`:
```ruby
Thread.new { Fiber.current.kill }.join
```
Normally fibers gracefully handle this case by terminating and switching to another fiber, but if there is no other fiber it raises the `FIB... -
02:51 PM Revision da2453c5 (git): Add debug message to test_heaps_grow_independently
- To debug flaky failures on i686 that look like:
1) Failure:
TestGc#test_heaps_grow_independently [test/ruby/test_gc.rb:704]:
Expected 2061929 to be < 2000000. -
02:45 PM Revision 01f6bd8b (git): ZJIT: Add `insns` param that tests for opcode presence
-
02:18 PM Revision 998e5791 (git): [ruby/date] Suppress warnings by gcc-13 with `-Og`
- https://github.com/ruby/date/commit/6dd7969a64
-
01:33 PM Revision edaa27ce (git): Suppress warnings by gcc-13 with `-Og`
-
01:31 PM Bug #21376: Inconsistent equality between Sets with different compare_by_identity, different classes
- This bug in optimization in Set#== deserves to be fixed, I think. In hindsight, adding Set#compare_by_identity might not have been the best idea.
-
12:11 PM Bug #21392 (Closed): Data classes do not allow overriding #inspect
- Closing as requested.
-
11:24 AM Bug #21381 (Closed): Different error messages when mixing `it` and `_1` in block for Prism and parse.y
- Applied in changeset commit:git|0e0008da0f19d098a2e98902f2215c126aca0101.
----------
[Bug #21381] Refine error messages for `it` and numbered parameters -
11:04 AM Misc #21399 (Closed): DevMeeting-2025-07-10
- # The next dev meeting
**Date: 2025/07/10 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-07-10.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t... -
11:04 AM Misc #21281 (Closed): DevMeeting-2025-05-08
-
11:04 AM Misc #21379 (Closed): DevMeeting-2025-06-05
-
11:00 AM Bug #21384: const_added is triggered twice when using autoload
- Briefly discussed at the dev meeting. @matz said that it was not intentional to fire the hook twice. But changing it now would be a compatibility concern, so he decided to keep the current behavior.
Conceptually, we may consider this ... -
10:52 AM Bug #21337: Using `not` on the RHS of a logical operator becomes valid syntax with Prism
- `p(not 1)` is also allowed in Ruby 3.4, but this should also be prohibited, @matz said.
@kddnewton @tenderlovemaking @eileencodes Can you fix this issue soon? We need to backport to 3.4 to stop Ruby 3.4 users writing such code. -
08:53 AM Bug #21337: Using `not` on the RHS of a logical operator becomes valid syntax with Prism
- I am against this prism behavior. It introduces ambiguity for `not a && b` (might be `not (a && b)` or `(not a) && b`). I don't think we can have formal definition of this `not` behavior.
Matz.
-
10:39 AM Misc #21154: Document or change Module#autoload?
- > Think about this. You ship a gem like this:
@fxn Thank you for the very interesting example. It became a topic of discussion for @akr, @naruse, and me for a total of 4 hours over two dev meetings.
With a slight modification to yo... -
10:21 AM Revision 0e0008da (git): [Bug #21381] Refine error messages for `it` and numbered parameters
-
10:13 AM Bug #21391: Inconsistent trailing slash behavior of File.join and Pathname#join with empty strings
- I don't recommend trailing slash on a pathname because it is not portable between operating systems.
The behavior of Pathname (it doesn't add a trailing slash) reflects this my opinion.
https://pubs.opengroup.org/onlinepubs/9699919... -
10:12 AM Revision b9e3edb3 (git): [rubygems/rubygems] Slightly simplify locked specification source replacement
- https://github.com/rubygems/rubygems/commit/22f0a07377
-
10:12 AM Revision 970eac15 (git): [rubygems/rubygems] Fix git source unlocking for multi-gem repositories like Rails
- If you have
```
gem "rails", git: "https://github.com/rails/rails"
```
and then explicitly pin to an older ref, like
```
gem "rails", git: "https://github.com/rails/rails", ref: "https://github.com/rubygems/rubygems/commit/99bacb5aa8e... -
10:12 AM Revision e4933e1d (git): [rubygems/rubygems] Fix `bundle update --bundler` when restarts disabled
- There's no reason why we should not update bundler as requested, even if
restarts are disabled.
https://github.com/rubygems/rubygems/commit/e59acd2a0d -
10:12 AM Revision 5cf07c1e (git): [rubygems/rubygems] Look in configured path when checking if self-update version is installed
- https://github.com/rubygems/rubygems/commit/1ce0882e6f
-
10:12 AM Revision 1befc5d1 (git): [rubygems/rubygems] Make update specs independent from version of Bundler
- https://github.com/rubygems/rubygems/commit/609b21a5fe
-
10:12 AM Revision 0e6805eb (git): [rubygems/rubygems] Refactor restarts to not need memoizing the restart version
- https://github.com/rubygems/rubygems/commit/a9d80a7dcb
-
10:12 AM Revision 417210c0 (git): [rubygems/rubygems] Make self management specs independent from version of Bundler
- https://github.com/rubygems/rubygems/commit/1257bd161e
-
10:12 AM Revision 523f68c6 (git): [rubygems/rubygems] Compare major version only
- https://github.com/rubygems/rubygems/commit/6b4cf6713d
-
10:12 AM Revision 8b2145dc (git): [rubygems/rubygems] Remove dead spec helpers
- https://github.com/rubygems/rubygems/commit/ee5a0158fd
-
10:12 AM Revision e74008bf (git): [rubygems/rubygems] Reduce duplication a bit
- https://github.com/rubygems/rubygems/commit/0574c62fc0
- 10:12 AM Revision 11492bd8 (git): [rubygems/rubygems] Fix headings levels in Changelogs
- And adapt release scripts and configuration to the new structure.
https://github.com/rubygems/rubygems/commit/3deb1aedae -
10:12 AM Revision 803dae70 (git): [rubygems/rubygems] Deprecate x64-mingw32 legacy Windows platform in favor of x64-mingw-ucrt
- https://github.com/rubygems/rubygems/commit/71c969be44
-
10:12 AM Revision 21bce66f (git): [rubygems/rubygems] Reset variables that can cause specs to fail if set
- https://github.com/rubygems/rubygems/commit/8df67b7322
-
09:31 AM Misc #21385: Namespace: Suggesting a rename
- other ideas:
* NameSpace (from ObjectSpace)
* NameCapsule
* RootNamespace
* ModuleGroup
* ModuleBag
* ModuleSpace (by ledsun)
(Namespace also separates global variables though) -
08:45 AM Misc #21385: Namespace: Suggesting a rename
- From the latest suggestions, I think `Realm` and `Context` are the best, since the feature about creating multiple sets of top-level constants/isolating them.
Since it is a low-level API I think nesting under `Ruby::` would be good, and... -
07:49 AM Misc #21385: Namespace: Suggesting a rename
- Regarding the name conflict, if this is meant as a low level API, we could consider something under the newly introduced `Ruby` module. E.g. `Ruby::Context`, `Ruby::Namespace`, etc etc.
This also doesn't prevent deprecating the use of... -
05:19 AM Misc #21385: Namespace: Suggesting a rename
- Oh, it is interesting to know there's a higher level API in the horizon. Looking forward to see what you have in mind!
With that new context, a "cell" is a low-level thing with inner/independent activity, but it is permeable and can c... -
04:45 AM Misc #21385: Namespace: Suggesting a rename
- I have to make myself clear. It's fine for me, if we rename Namespace.
Matz.
-
04:23 AM Misc #21385: Namespace: Suggesting a rename
- Context, Capsule, Realm, and Zone do not seem to represent namespaces, so I don't want to adopt them (although I like those names). I like the name Package too. But I think we should reserve it for high-level APIs.
FYI, I consider this ... -
09:27 AM Feature #21347 (Assigned): Add `open_timeout` as an overall timeout option for `Socket.tcp`
-
04:52 AM Feature #21347: Add `open_timeout` as an overall timeout option for `Socket.tcp`
- Accepted. Go ahead.
Matz.
-
09:25 AM Feature #21359: Introduce `Exception#cause=` for Post-Initialization Assignment
- Maybe `Exception.new("message", cause: cause)` should be supported, but I suppose that might be quite hard to support for all subclasses of `Exception`.
That's probably the reason it's on `raise` and not in exception constructor.
BTW i... -
09:07 AM Feature #21359: Introduce `Exception#cause=` for Post-Initialization Assignment
- I am basically against `cause=` (or `set_cause` that is). It makes exceptions more complex. Is it impossible to defer exception creation til it is absolutely needed?
Matz.
-
09:11 AM Feature #21279 (Closed): Bare "rescue" should not rescue NameError
- Upon considering the historic constraint (and compatibility concern), I choose to keep `NameError` as it is.
Thank you for the proposal.
Matz.
-
09:09 AM Feature #21311: Namespace on read (revised)
- bughit (bug hit) wrote in #note-112:
> Yes, it would only help with direct dependencies of the app:
Right, I also thought about this case.
That would work with the big compromise of every usage of `[email protected]` to be through `ns_d2::D` an... -
09:08 AM Feature #21358: Advanced filtering support for #dig
- I prefer pattern matching.
Matz.
-
07:13 AM Feature #21358 (Feedback): Advanced filtering support for #dig
-
09:07 AM Bug #21323 (Closed): irb fails to start with Namespace
- Right, this seems fixed on master.
Would be interesting to know what was the fix. -
08:47 AM Feature #21389: Simplify Set#inspect output
- I prefer `Set[1, 2, 3]` to `#<Set: {1, 2, 3}>`. And the name of the subclass should be printed, e.g. `MySet[1, 2, 3]`.
Matz.
-
08:43 AM Bug #21374: FrozenError message is inconsistent when a singleton method is defined on a frozen object
- I agree with you. It should be consistent (and I prefer `can't modify frozen Array: [] (FrozenError)` message). But there might be some internal reason. We have to investigate first.
Matz.
-
08:40 AM Bug #21382 (Closed): Syntax for arguments in || is more strict than arguments in ()
- Unfortunately, `|` is a binary-or operator too. So we have to be more strict to avoid ambiguity and syntax conflict.
Matz.
-
08:32 AM Revision 9f112afc (git): Allow volatile pointer relaxed atomic operations
-
08:09 AM Revision 9e84a278 (git): Win: Cast of qualifier in `rbimpl_atomic_u64_load_relaxed`
-
08:06 AM Revision 8906d55c (git): [ruby/stringio] Extract internal part as the function
- `str_chilled_p`
(https://github.com/ruby/stringio/pull/136)
https://github.com/ruby/stringio/commit/3c52ddc4c8 -
07:53 AM Bug #21378 (Feedback): variable pinning does not look for method arguments
- @yui-knk Do you think this is possible to implement?
- 07:05 AM Revision 256440a8 (git): Update bundled gems list as of 2025-06-05
-
06:57 AM Feature #21219: `Object#inspect` accept a list of instance variables to display
- I prefer the idea of selecting instance variables to output by a hook method. It is tough to choose the name of the method for selection. I suggest `instance_variables_to_inspect` for now. If anyone thinks a more compact name would be be...
-
06:34 AM Revision 62b1ae09 (git): Win: Slim down `vcvars_ver` options in the matrix
-
05:44 AM Revision 772fc1f1 (git): Get rid of `rb_shape_t.flags`
- Now all flags are only in the `shape_id_t`, and can all be checked
without needing to dereference a pointer. -
04:43 AM Bug #21362: Namespace: Inline method caches poisoned with builtins
- Cache poisoning itself seems to be a bug to be fixed.
But it should be pointed out that whether a method is replaced when it is called from another namespace is an important design choice, and is called local rebinding. We believe tha... -
04:34 AM Feature #21365: Add `Namespace#eval`
- Namespace.eval accepted.
Matz.
-
04:32 AM Bug #21316: Namespaces leak with permanent names
- As #21335, we should not provide information that depends on namespace, until we fix high level API.
Matz.
-
04:24 AM Feature #21335: Namespaces should be present in the backtrace
- I'd like to keep this issue pending until we provide high level API (maybe Package). See #21385)
Matz.
-
04:05 AM Misc #21369: Propose Max Bernstein (@tekknolagi) as a core committer
- Accepted. Follow the guideline.
Matz.
- 01:51 AM Revision 111986f8 (git): ZJIT: Add newrange support (#13505)
- * Add newrange support to zjit
* Add RangeType enum for Range insn's flag
* Address other feedback
06/04/2025
-
11:15 PM Revision 0ca80484 (git): mark main Ractor object
- `RUBY_DEBUG=gc_stress ./miniruby -e0` crashes because of this
marking miss.
BTW, to use `RUBY_DEBUG=gc_stress` we need to specify
`--enable-debug-env` configure option. This is why I couldn't repro
on my environments.
see c0c94ab183d0d... -
09:14 PM Revision 112c3425 (git): ZJIT: Implement side exits for entry frames (#13469)
- Co-authored-by: Max Bernstein <[email protected]>
Co-authored-by: Alan Wu <[email protected]> -
08:57 PM Bug #21397 (Closed): `snap run ruby.gem` fails when both snap and deb package installed
- There appears to be a packaging issue with the [official](https://www.ruby-lang.org/en/news/2018/11/08/snap/) Ruby snap.
On a clean virtual machine running Ubuntu 24.04, the `gem` command fails when run from the snap if the Ruby deb p... -
07:48 PM Bug #21396: Set#initialize should call Set#add on items passed in
- jeremyevans0 (Jeremy Evans) wrote in #note-2:
> This is not a bug, IMO. Using underlying functions instead of calling methods was one of the deliberate design decisions for core Set (see #21216), and how other core collection classes w... -
07:43 PM Bug #21396: Set#initialize should call Set#add on items passed in
- This is not a bug, IMO. Using underlying functions instead of calling methods was one of the deliberate design decisions for core Set (see #21216), and how other core collection classes work. `Array.new(1, true)` does not call `Array#[]...
-
07:31 PM Bug #21396 (Closed): Set#initialize should call Set#add on items passed in
- ```ruby
class Foo < Set
def add(item) = super(item.bytesize)
end
x = Foo.new(["foo"])
p x
p x.include?(3)
```
On Ruby 3.4 the output is this:
```
> ruby -v test.rb
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [ar... -
06:07 PM Revision 99cc100c (git): Remove dead rb_malloc_info_show_results
-
05:18 PM Revision 3b5787a9 (git): Implement write barrier for addrinfo
- `rb_addrinfo_t` has `VALUE inspectname` and `VALUE canonname`, so this
triggers the write barrier for those. The `AddrInfo` wasn't readily
available where we need to call `RB_OBJ_WRITE`, so this involves passing
`self` around a bit. -
11:59 AM Revision a4dc778a (git): Launchable: Set env variables to prevent CI slowdowns (#13513)
- When Launchable in unstable, the round trip time takes a long time, which slows down CI execution. In this PR I configured the environment variable `LAUNCHABLE_COMMIT_TIMEOUT` to configure the timeout.
https://github.com/launchableinc/c... - 11:14 AM Revision a87b0893 (git): ZJIT: Fix incorrect method name in test for Array#size
-
11:14 AM Bug #21395: Please backport caa6ba1a46afa1bc696adc5fe91ee992f9570c89
- 8d49c05c134702c321198b70fbbf34dd80cc1ba6 seems to only change the `debug` gem version, I guess you mean some other commit to backport?
Probably https://github.com/ruby/ruby/commit/caa6ba1a46afa1bc696adc5fe91ee992f9570c89
> As a resul... -
10:54 AM Bug #21395 (Closed): Please backport caa6ba1a46afa1bc696adc5fe91ee992f9570c89
In Ruby 3.4, debug.gem raises an exception when stepping into a rescue clause:
https://github.com/ruby/debug/pull/1142
I discussed with @ko1, and we decided to resolve this by modifying `rb_debug_inspector_backtrace_locations` ...-
11:13 AM Revision 675f3350 (git): Get rid of TOO_COMPLEX shape type
- Instead it's now a `shape_id` flag.
This allows to check if an object is complex without having
to chase the `rb_shape_t` pointer. -
10:53 AM Revision 8d49c05c (git): Use the edge version of debug gem
-
10:53 AM Revision caa6ba1a (git): Make `rb_debug_inspector_backtrace_locations` return a raw backtrace
- Previously, a user of the debug inspector API was supposed to use
`rb_debug_inspector_backtrace_locations` to get an array of
`Thread::Backtrace::Location`, and then used its index to get more
information from `rb_debug_inspector _frame_... -
10:23 AM Revision 8d14d6ea (git): ZJIT: Spill to the stack using arguments instead of FrameState
- The FrameState on the SendWithoutBlock represents the entry state,
but for instructions that push to the stack in the middle of the
instruction before actually doing the send like opt_aref_with,
the FrameState is incorrect. We need to wr... -
10:23 AM Revision 6f0f84e5 (git): ZJIT: Parse opt_aref_with into HIR
-
10:18 AM Revision 8070d5d9 (git): `Ractor#take` and warn
- `Ractor#take` was deprecated but some libraries can use it as
an alias for `Ractor#value` (i.e., to wait for a Ractor's
temrination and retrieve its result).
Therefore `Ractor#take` is simply an alias for `Ractor#value`.
This method wil... -
08:02 AM Misc #21350 (Closed): Bundled gems lack online documentation
- I have no plan to add the documentation of bundled gems under the docs.r-l.o. I don't want to spend the time for coordinating all bundled gems especially gems outside ruby org of GitHub.
>I think they should:
> ...
I'm +1 to above St... -
07:51 AM Bug #20854 (Closed): Some bundled gems are not installed starting with 007c75ce4c66243e41144c6977e5ccbf4ab71c93
- Ruby 3.4 is already released, and I couldn't reproduce this.
-
07:47 AM Bug #20560 (Closed): make install - skipped bundled gems - minor issue
- This is duplicate of https://bugs.ruby-lang.org/issues/21388.
-
07:44 AM Bug #21388 (Assigned): make install and bundled gems
-
06:31 AM Revision 9fddb8d9 (git): Suppress dangling pointer warning by gcc
- `__has_warning` is clang, not gcc.
-
06:31 AM Revision 7ddc5e61 (git): Suppress overflow warning at `ALLOC_N` in `iseq_set_local_table`
- `xmalloc2` checks the overflow of arguments multiplication.
-
06:31 AM Revision c5f7d274 (git): Check for 64bit atomic operations
- May not be supported on some 32bit architectures.
```
/usr/lib/gcc-cross/m68k-linux-gnu/14/../../../../m68k-linux-gnu/bin/ld: ../../libruby-static.a(vm.o): in function `rbimpl_atomic_u64_set_relaxed':
/home/ubuntu/build/ruby/master/m68k... -
06:27 AM Revision 47f55b4b (git): Mark as NORETURN
-
06:26 AM Revision 206110a2 (git): Add missing lock in `rb_ivar_defined`
- If called on a class, we should acquire the lock.
-
06:16 AM Feature #20105 (Closed): Introduce `IO::Stream` or something similar.
- In the end, I created a gem for this. I'm okay with using a gem.
https://github.com/socketry/io-stream -
06:14 AM Revision 1f4913db (git): [ruby/did_you_mean] Revert "Alias value to take in old Ruby"
- This reverts commit https://github.com/ruby/did_you_mean/commit/15d7b0bfa573.
https://github.com/ruby/did_you_mean/commit/86a7daca19 -
05:59 AM Revision 6b8dcb7c (git): shape.c: fix off by one error in `shape_tree_mark`
-
05:59 AM Revision bbd5a5a8 (git): vm_getivar: normalize shape_id to ignore frozen state
- Freezing an object changes its `shape_id` This is necessary
so that `setivar` routines can use the `shape_id` as a cache key
and save on checking the frozen status every time.
However for `getivar` routines, this causes needless cache m... -
05:59 AM Revision 625d6a9c (git): Get rid of frozen shapes.
- Instead `shape_id_t` higher bits contain flags, and the first one
tells whether the shape is frozen.
This has multiple benefits:
- Can check if a shape is frozen with a single bit check instead of
dereferencing a pointer.
- Guar... -
05:51 AM Revision 6b7e3395 (git): [ruby/psych] Revert "Alias value or join to take in old Ruby"
- This reverts commit https://github.com/ruby/psych/commit/1a4d383efe0b.
https://github.com/ruby/psych/commit/2f51c02280 -
05:35 AM Revision a88ff325 (git): [ruby/uri] Revert "Alias value or join to take in old Ruby"
- This reverts commit https://github.com/ruby/uri/commit/443ed0cf8540.
https://github.com/ruby/uri/commit/9e51838a04 -
05:28 AM Revision ac1dfee4 (git): [ruby/date] Removed workaround for assert_ractor
- https://github.com/ruby/date/commit/700e44ef54
-
05:12 AM Revision 80352678 (git): [ruby/time] Removed workaround for assert_ractor
- https://github.com/ruby/time/commit/337410e971
-
05:08 AM Revision 04b26db5 (git): Support Ractor#value and Ractor#join for old versions of Ruby
- https://github.com/ruby/test-unit-ruby-core/pull/9
https://github.com/ruby/test-unit-ruby-core/pull/10 -
05:03 AM Revision 50400f3b (git): [ruby/etc] Removed workaround for assert_ractor
- https://github.com/ruby/etc/commit/fd61177b71
-
04:04 AM Feature #21346: Introduce `String#ensure_suffix`
- I like this idea, but I'm concerned about the same method returning `self` in one case and a new string in another. It seems like it'd be easier to reason about if it either always returned a new string or always affected the original ob...
-
03:47 AM Revision a84f7343 (git): Added warning for CGI.parse
-
02:38 AM Revision 0ecb6896 (git): Correct comments for packed shape and index [ci skip]
06/03/2025
-
11:00 PM Misc #21369: Propose Max Bernstein (@tekknolagi) as a core committer
- Thank you @k0kubun for nominating me to be a committer and for @tenderlovemaking, @eileencodes, and @duerst for their votes of confidence. It would be an honor to join and continue to work on Ruby with you all.
-
07:55 PM Revision 553753cd (git): Fix scheduler warning
- ```
test/fiber/test_scheduler.rb:98: warning: Scheduler should implement #fiber_interrupt
``` -
07:48 PM Revision 89d49433 (git): Fix memory leak of Ractor ports
- Memory leak reported:
3 miniruby 0x1044b6c1c ractor_init + 164 ractor.c:460
2 miniruby 0x1043fd6a0 ruby_xmalloc + 44 gc.c:5188
1 miniruby ... -
07:48 PM Revision 7a40f1f0 (git): Fix memory leak of Ractor recv_queue
- Memory leak reported:
3 miniruby 0x104702c1c ractor_init + 164 ractor.c:460
2 miniruby 0x1046496a0 ruby_xmalloc + 44 gc.c:5188
1 miniruby ... -
07:23 PM Feature #20405: Inline comments
- I've been thinking about inline comments since the idea was brought up at RubyKaigi 2025. I agree they’d be a valuable addition to the language, but none of the proposed syntaxes have quite resonated with me.
The one that feels most R... -
07:15 PM Revision e27404af (git): Use all 32bits of `shape_id_t` on all platforms
- Followup: https://github.com/ruby/ruby/pull/13341 / [Feature #21353]
Even thought `shape_id_t` has been make 32bits, we were still limited
to use only the lower 16 bits because they had to fit alongside `attr_index_t`
inside a `uintptr_... -
04:07 PM Feature #21311: Namespace on read (revised)
- You boot with **one** Gemfile.lock, which has a single consistent transitive closure.
To have a different closure, you have a different Gemfile.lock and you Bundle require in a different namespace.
Remember, the moment you create a nam... -
03:45 PM Feature #21311: Namespace on read (revised)
- Eregon (Benoit Daloze) wrote in #note-107:
> ```
> ...
Yes, it would only help with direct dependencies of the app:
```
App->A->B->[email protected]
\
[email protected]
```
But not for transitive, which is probably the more common type of con... -
03:32 PM Feature #21311: Namespace on read (revised)
- In other words, my understanding is that each namespace starts with its own Gemfile.lock. Different namespaces have potentially different dependency graphs.
And yes, a lot of code is duplicated in memory. -
03:30 PM Feature #21311: Namespace on read (revised)
- Eregon (Benoit Daloze) wrote in #note-109:
> But we don't want two copies of `A` or `App` so that's not a solution, the use case here would be to run a single `App` which depends on gems which transitively depend on incompatible version... -
03:17 PM Feature #21311: Namespace on read (revised)
- fxn (Xavier Noria) wrote in #note-108:
> my understanding is the idea is that you can load different versions of gems _in different namespaces_.
Yes, that much should work but that's just the motivation of running multiple apps in on... -
02:53 PM Feature #21311: Namespace on read (revised)
- @eregon my understanding is the idea is that you can load different versions of gems _in different namespaces_.
So, in that example, you'd need two namespaces, and `A` needs to be defined in each one of them.
For everyone following, na... -
02:36 PM Feature #21311: Namespace on read (revised)
- > Multiple versions of gems can be required
> ...
I think loading different versions of a gem in a single app is impossible to support with Namespace.
But maybe I'm missing something, let me know if so.
Suppose we have this dependency... -
04:04 PM Revision ea8b53a5 (git): Allow pass special constants to the write barrier
- Some GC implementations want to always know when an object is written to,
even if the written value is a special constant. Checking special constants
in rb_obj_written was a micro-optimization that made assumptions about
the GC implement... -
04:02 PM Bug #21171 (Closed): Segfault on large stack (RUBY_THREAD_VM_STACK_SIZE) on 3.4.2
- Thank you for the bug report. I've debugged this and it's a duplicate of #21099. I marked that for backport and it should be fixed in the next release of Ruby 3.4.
-
03:30 PM Misc #21385: Namespace: Suggesting a rename
- hsbt (Hiroshi SHIBATA) wrote in #note-9:
> FYI: `Context` is conflict with Mastodon.
I’m fairly confident we can find at least 2 instances of `Namespace` in the wild.
I don’t think this argument has much weight.
-
01:31 AM Misc #21385: Namespace: Suggesting a rename
- FYI: `Context` is conflict with Mastodon.
https://github.com/mastodon/mastodon/blob/main/app/models/context.rb#L3
- 02:07 PM Revision 5f247416 (git): [ruby/prism] Document ClassNode fields - Adds documentation for the fields of the `ClassNode`. - Part of #2123
- https://github.com/ruby/prism/commit/99615b43ac
-
02:00 PM Bug #21394 (Closed): Memory leak in Prism's RubyVM::InstructionSequence.new
- Applied in changeset commit:git|34b407a4a89e69dd04f692e2b29efa2816d4664a.
----------
Fix memory leak in Prism's RubyVM::InstructionSequence.new
[Bug #21394]
There are two ways to make RubyVM::InstructionSequence.new raise which
would ... -
02:00 PM Revision 34b407a4 (git): Fix memory leak in Prism's RubyVM::InstructionSequence.new
- [Bug #21394]
There are two ways to make RubyVM::InstructionSequence.new raise which
would cause the options->scopes to leak memory:
1. Passing in any (non T_FILE) object where the to_str raises.
2. Passing in a T_FILE object where Stri... -
09:13 AM Revision 135583e3 (git): [ruby/tmpdir] Restore Ractor.yield style test for old version of Ruby
- https://github.com/ruby/tmpdir/commit/f12c766996
-
09:13 AM Revision 365d5b6b (git): [ruby/time] Alias value or join to take in old Ruby
- https://github.com/ruby/time/commit/2a1827b0ce
-
09:13 AM Revision d609a231 (git): [ruby/json] Update `JSONInRactorTest` to handle Ruby 3.5 Ractors.
- https://github.com/ruby/json/commit/d42b36963d
-
09:13 AM Revision 267d8a04 (git): [ruby/strscan] Support `Ractor#value`
- (https://github.com/ruby/strscan/pull/157)
This is same as https://github.com/ruby/stringio/pull/134
---------
https://github.com/ruby/strscan/commit/141f9cf9b6
Co-authored-by: Koichi Sasada <[email protected]> -
08:40 AM Revision 8ab4935d (git): [ruby/pathname] Alias value or join to take in old Ruby
- https://github.com/ruby/pathname/commit/c501767d12
-
08:40 AM Revision a79e9ab3 (git): [ruby/uri] Alias value or join to take in old Ruby
- https://github.com/ruby/uri/commit/443ed0cf85
-
08:24 AM Revision 6609ba05 (git): [ruby/io-wait] Alias value or join to take in old Ruby
- https://github.com/ruby/io-wait/commit/cf84aea70d
-
08:24 AM Revision ce459c1d (git): [ruby/did_you_mean] Omit some tests with JRuby
- https://github.com/ruby/did_you_mean/commit/a7a438ae27
-
08:24 AM Revision 0266e4de (git): [ruby/did_you_mean] Alias value to take in old Ruby
- https://github.com/ruby/did_you_mean/commit/15d7b0bfa5
-
07:56 AM Bug #21384 (Closed): const_added is triggered twice when using autoload
-
07:56 AM Revision a77ec9a2 (git): [ruby/psych] Alias value or join to take in old Ruby
- https://github.com/ruby/psych/commit/1a4d383efe
-
07:44 AM Revision 7d119005 (git): [ruby/stringio] Support `Ractor#value`
- (https://github.com/ruby/stringio/pull/134)
from https://bugs.ruby-lang.org/issues/21262
We need to alias `Ractor#value` to `Ractor#take` for old versions of
Ruby.
---------
https://github.com/ruby/stringio/commit/9954dabd80
Co-auth... -
07:29 AM Bug #21373 (Closed): "Illegal instruction: 4" when raising SystemStackError after rescuing
-
07:24 AM Misc #21371 (Rejected): Proposal to Remove SPARC Architecture Support from Ruby
-
07:21 AM Bug #21329 (Closed): `date_core.so` is broken with the recent MSYS2 update
- There is no action by ruby core side.
-
07:02 AM Revision c6c51569 (git): [ruby/io-console] Alias value or join to take in old Ruby
- https://github.com/ruby/io-console/commit/7106d05219
-
06:59 AM Revision 17401792 (git): [ruby/etc] Alias value or join to take in old Ruby
- https://github.com/ruby/etc/commit/3dbe760bed
-
06:57 AM Feature #21361: Set execution file and line
- Note: As you may know, ISeq depends on the fact that one iseq has only one filename, so we need to change many places (we may need to include filename information along with the line number).
-
06:57 AM Revision 9991edcc (git): [ruby/digest] Alias value to take in old Ruby
- https://github.com/ruby/digest/commit/1eaee7d4fe
-
06:46 AM Revision 52d85c0e (git): [ruby/date] Alias value to take in old Ruby
- https://github.com/ruby/date/commit/1ce29a26dd
-
06:43 AM Bug #21356 (Closed): Error when accessing local variable named "default" with Binding#local_variable_get
- Fixed by https://github.com/ruby/ruby/pull/13395
-
06:37 AM Bug #20009 (Closed): Marshal.load raises exception when load dumped class include non-ASCII
-
06:30 AM Bug #21330: Namespace: Class and Module frozen status is not namespaced
- > I'm afraid that moving frozen flag into class_ext (and each built-in class variants can has each frozen state) makese OBJ_FROZEN code:
It seems like your sentence is missing a word. Did you mean to say that it will make `OBJ_FROZEN`... -
06:08 AM Bug #21330: Namespace: Class and Module frozen status is not namespaced
- ko1 (Koichi Sasada) wrote in #note-4:
> I'm afraid that moving frozen flag into class_ext (and each built-in class variants can has each frozen state) makese `OBJ_FROZEN` code:
> ...
roda-sequel-stack (https://github.com/jeremyevans/ro... -
06:01 AM Bug #21330: Namespace: Class and Module frozen status is not namespaced
- I'm afraid that moving frozen flag into class_ext (and each built-in class variants can has each frozen state) makese `OBJ_FROZEN` code:
```C
// include/ruby/internal/fl_type.h
static inline VALUE
RB_OBJ_FROZEN_RAW(VALUE obj)
{
... -
06:23 AM Bug #21313 (Closed): `it` in rescue/ensure on prism
-
05:47 AM Bug #21298: `ObjectSpace.allocation_class_path` returns inconsistent results depending on `TracePoint` state
- Can we go ahead? This will bring incompatibility, so I think this should be fixed by the release. @ktsj @tenderlovemaking
-
02:14 AM Bug #21392: Data classes do not allow overriding #inspect
- nobu (Nobuyoshi Nakada) wrote in #note-5:
> austin (Austin Ziegler) wrote in #note-3:
> ...
In my feature branch where I'm converting to Data classes.
>
> ...
This is the problem, of course, with having maintained something backwa... -
01:39 AM Feature #21393 (Feedback): One-line pattern matching syntax as a method argument
-
01:12 AM Revision 6ca52090 (git): Remove hardcoded version of rake from Bundler tests
- The original commit is https://github.com/rubygems/rubygems/commit/85f73e42a563ac6848ba22aeae344a5bdc5a9ed7
06/02/2025
-
11:12 PM Revision 6f4eaa10 (git): Remove hardcoded version of rake from Bundler tests
- Let them run against the version resolved by the `test_gems.rb` gemfile.
This should fix ruby-core CI job that was broken by the release of rake
13.3.0. - 11:06 PM Revision 710f5b77 (git): [rubygems/rubygems] Follow coding style
- https://github.com/rubygems/rubygems/commit/bfac93100e
- 11:06 PM Revision 79241467 (git): [rubygems/rubygems] Test `bin/` is included in the ignore list
- https://github.com/rubygems/rubygems/commit/7afe81fd45
- 11:06 PM Revision 204e3c58 (git): [rubygems/rubygems] Only ignore `.gitignore` when generating gems with git
- https://github.com/rubygems/rubygems/commit/aec5a7887d
- 11:06 PM Revision 9024caa1 (git): [rubygems/rubygems] Ignore `Gemfile`, `gems.rb` & `gems.locked` according to `init_gems_rb` preference
- https://github.com/rubygems/rubygems/commit/88aeb66f41
- 11:06 PM Revision 582e2c7f (git): [rubygems/rubygems] Extract `ignore_paths` helper method
- https://github.com/rubygems/rubygems/commit/d45710ee53
- 11:06 PM Revision 2667df27 (git): [rubygems/rubygems] Remove `.git` from `spec.files` default ignore list
- https://github.com/rubygems/rubygems/commit/4f96e12ff3
- 11:06 PM Revision ab63fb0e (git): [rubygems/rubygems] Rename `ignore_files` to `ignore_paths`
- https://github.com/rubygems/rubygems/commit/c07e3a88aa
- 11:05 PM Revision 636ff31c (git): [rubygems/rubygems] Add `.gitignore`, `gems.rb` & `gems.locked` into `spec.files` default ignore list
- https://github.com/rubygems/rubygems/commit/6390ed7a2b
- 11:05 PM Revision 63ae1d28 (git): [rubygems/rubygems] Remove `features/` from `spec.files` default ignore list
- https://github.com/rubygems/rubygems/commit/77ba4192a7
- 11:05 PM Revision 68345e29 (git): [rubygems/rubygems] Only ignore `test/` when generating gems with `minitest` or `test-unit`
- https://github.com/rubygems/rubygems/commit/c464f2036a
- 11:05 PM Revision 2745221a (git): [rubygems/rubygems] Test it does not add any CI config files into ignore list when not generating any CI config
- https://github.com/rubygems/rubygems/commit/018bb19244
- 11:05 PM Revision f1512bfa (git): [rubygems/rubygems] Extract `before` blocks
- https://github.com/rubygems/rubygems/commit/ff51a51d1a
- 11:05 PM Revision 959bde86 (git): [rubygems/rubygems] Suffix `.circleci` with `/` in `spec.files` in the `.gemspec` template
- https://github.com/rubygems/rubygems/commit/e48c6beaf6
- 11:04 PM Revision 3691c540 (git): [rubygems/rubygems] Suffix `.github` with `/` in `spec.files` in the `.gemspec` template
- https://github.com/rubygems/rubygems/commit/edf13f7e60
- 11:04 PM Revision 68d64f46 (git): [rubygems/rubygems] Exclude `spec` from `spec.files` in the `.gemspec` template only when using RSpec
- https://github.com/rubygems/rubygems/commit/a42387b8be
- 11:04 PM Revision 6b2088cf (git): [rubygems/rubygems] Exclude `.rspec` from `spec.files` in the `.gemspec` template
- https://github.com/rubygems/rubygems/commit/331901941d
- 11:04 PM Revision a7be563d (git): [rubygems/rubygems] Exclude `.rubocop.yml` and `.standard.yml` from `spec.files` in the `.gemspec` template
- https://github.com/rubygems/rubygems/commit/9d937d4f7f
- 11:04 PM Revision 48025717 (git): [rubygems/rubygems] Remove `appveyor` from `spec.files` default ignore list
- https://github.com/rubygems/rubygems/commit/2f2046c97b
- 11:04 PM Revision 04a39640 (git): [rubygems/rubygems] Refactor `spec.files` ignore list generation
- https://github.com/rubygems/rubygems/commit/c11539f325
- 11:03 PM Revision b34959b4 (git): [rubygems/rubygems] Fix English grammar
- https://github.com/rubygems/rubygems/commit/160938e75c
- 10:47 PM Revision 21a14ea2 (git): [rubygems/rubygems] Moved the REMEMBERING OPTIONS section to be after CONFIGURATION KEYS
- Since the remembering options are discouraged, the preferred method should be explained first.
Slight tweak to wording
Fix documentation spec test as per suggested patch
https://github.com/rubygems/rubygems/commit/9f082ccf31 - 10:47 PM Revision f4a5247c (git): [rubygems/rubygems] Clarify how BUNDLE_DEPLOYMENT, BUNDLE_FROZEN and BUNDLE_PATH are connected
- https://github.com/rubygems/rubygems/commit/9ed20bddab
-
10:47 PM Revision 1f894fa2 (git): [rubygems/rubygems] Remove unnecessary duplicate x64-mingw-ucrt entry
- https://github.com/rubygems/rubygems/commit/d6f1f96585
-
10:47 PM Revision 869a52f3 (git): [rubygems/rubygems] Partially phase out x64-mingw32 in favour of x64-mingw-ucrt (platforms)
- - the x64-mingw32 platform has been superseded by x64-mingw-ucrt
- the mingw-ucrt platform is present as of Windows 10, which was released 10 years ago in 2015 and all versions prior to 10 are end-of-life and 10 will be by mid October 20... - 10:47 PM Revision a763716a (git): [rubygems/rubygems] misc: fix spelling
- https://github.com/rubygems/rubygems/commit/0e40e7d938
-
07:54 PM Revision d6aa1714 (git): Update to ruby/spec@4d2fc4d
-
07:45 PM Revision 685c8ca9 (git): Fix test_loading_kwargs_memory_leak
- The test fails with:
TestISeq#test_loading_kwargs_memory_leak [test/ruby/test_iseq.rb:882]:
pid 18222 exit 1
| -:2:in '<main>': undefined method 'iseq_to_binary' for main (NoMethodError) -
07:09 PM Bug #21394 (Closed): Memory leak in Prism's RubyVM::InstructionSequence.new
- Fix: https://github.com/ruby/ruby/pull/13496
There are two ways to make RubyVM::InstructionSequence.new raise which would cause the options->scopes to leak memory:
1. Passing in any (non T_FILE) object where the to_str raises.
2. ... - 06:57 PM Revision e596cf6e (git): Make FrozenCore a plain T_CLASS
-
03:49 PM Revision db2cfebf (git): Pin shape->edges
-
03:49 PM Revision e9fd44dd (git): shape.c: Implement a lock-free version of get_next_shape_internal
- Whenever we run into an inline cache miss when we try to set
an ivar, we may need to take the global lock, just to be able to
lookup inside `shape->edges`.
To solve that, when we're in multi-ractor mode, we can treat
the `shape->edges` ... -
03:26 PM Bug #21391: Inconsistent trailing slash behavior of File.join and Pathname#join with empty strings
- Dan0042 (Daniel DeLorme) wrote in #note-2:
> That being said, I feel that `Pathname.new('/usr').join('')` is a nonsensical operation. It seems to result in a no-op, but it might be better to warn or raise an error.
Ah, looks like I migh... -
01:52 PM Revision cbd49ecb (git): Remove unused RBASIC_RESET_FLAGS
-
01:52 PM Revision acc273a8 (git): Remove dependancy of default.c on internal/object.h
- We don't want the default GC to depend on Ruby internals so we can build
it as a modular GC. -
01:08 PM Revision cfe17520 (git): [DOC] Mention vsdevcmd.bat
-
01:02 PM Bug #21370 (Closed): `it` can cause ISeq serialization failure
- Fixed in ff222ac27afe712ef6ec2bb74c81cdde1a1fa176 (not sure why the bot didn't catch it).
-
12:19 PM Feature #21346: Introduce `String#ensure_suffix`
- Related: I've proposed both methods to Crystal, and the recently were [approved and merged](https://github.com/crystal-lang/crystal/pull/15782#event-17927216823).
-
11:41 AM Revision ff222ac2 (git): compile.c: Handle anonymous variables in `outer_variable_cmp`
- [Bug #21370]
-
10:17 AM Feature #21387: Proposal to add Data#[]
- @zverok @eregon Thanks for the feedback.
Reconsidering my motivation, I may have expected `Data` to be something like an *immutable* `Struct` (or even an *immutable* `Hash`).
I'm still attracted to this idea of an immutable `Hash`-... - 09:50 AM Revision 9a292528 (git): Fix compatibility with fiber schedulers that don't implement `#fiber_interrupt`. (#13492)
-
06:00 AM Bug #21392: Data classes do not allow overriding #inspect
- austin (Austin Ziegler) wrote in #note-3:
> You are correct (and I should have known better; I have unit tests proving this).
What unit tests?
You can define `pretty_print` for IRB.
```ruby
def pretty_print(q)
q.tex... -
02:22 AM Bug #21392 (Assigned): Data classes do not allow overriding #inspect
- Thank you, confirmed. @ima1zumi @tompng Can you take a look?
```
$ irb
irb(main):001* module Color
irb(main):002* CIELAB = Data.define(:l, :a, :b) do
irb(main):003* def inspect
irb(main):004* "CIELAB [%.4f%% %.4f %.4f... -
02:14 AM Bug #21392: Data classes do not allow overriding #inspect
- You are correct (and I should have known better; I have unit tests proving this).
I'm not sure if this is an IRB issue, because IRB's output always outputs `<data …>`.
```
irb(main):002> p Color::CIELAB[1,2,3]
CIELAB [1.0000% 2.0... -
01:57 AM Bug #21392: Data classes do not allow overriding #inspect
- I cannot reproduce the issue neither.
```
$ cat t.rb
module Color
CIELAB = Data.define(:l, :a, :b) do
def inspect
"CIELAB [%.4f%% %.4f %.4f]" % [l, a, b]
end
end
end
p Color::CIELAB[1,2,3]
$ ruby -v t.r... -
12:34 AM Bug #21392 (Feedback): Data classes do not allow overriding #inspect
- I get the "Expected" results for 3.2..master, not your "Actual".
-
05:51 AM Misc #21385: Namespace: Suggesting a rename
- When I explain the feature a concept that I use naturally is "execution context". Like, "foo.rb runs in its own execution context, and that is set externally, foo.rb is not aware of it."
-
03:29 AM Feature #21393: One-line pattern matching syntax as a method argument
- > That code is not a pattern matching. It is interpreted as a keyword argument.
Oops! This was entirely my misunderstanding. -
03:26 AM Feature #21393: One-line pattern matching syntax as a method argument
- I understand your expectation, but if we allow this, the syntax would be ambiguous. I am not sure which
```ruby
do_something(expr in a, b, c)
```
should be interpreted as
```ruby
do_something((expr in a), b, c)
```
or
... -
03:00 AM Feature #21393 (Feedback): One-line pattern matching syntax as a method argument
- ## Context
Using one-line `in` pattern matching syntax as a method argument causes a syntax error.
```console
$ ruby -vce 'do_something(expression in pattern)'
ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-darwin24]
... -
12:03 AM Misc #21379: DevMeeting-2025-06-05
- - [Feature #21347] Add `open_timeout` as an overall timeout option for `Socket.tcp`
- I propose introducing an option to `Socket.tcp` that raises a timeout exception after a specified period has elapsed since the method started.
- ...
06/01/2025
-
11:50 PM Revision 20d7db8c (git): Handle test failure of mock object
- Fixup 4c26a38ed3c
https://rubyci.s3.amazonaws.com/amazon2/ruby-master/log/20250601T213003Z.fail.html.gz
```
1)
An exception occurred during: Mock.verify_count
File.birthtime accepts an object that has a #to_path method FAILED
Mock 'pat... -
11:46 PM Misc #21385: Namespace: Suggesting a rename
- I strongly support this proposal. It would avoid a lot of confusion down the line. Ideally, we would use a term that makes it clear that this is something much more wide-reaching, and something that's supposed to be much more rarely used...
-
09:56 PM Misc #21385: Namespace: Suggesting a rename
- Some other ideas:
* Package - Some conflict with Packwerk, but then again would likely be used with it very quickly.
* Capsule - Similar to Package
* Realm - Bit Tolkien-esque, but no significant precedence in Ruby of this name bein... -
08:10 PM Misc #21385: Namespace: Suggesting a rename
- Agreed naming this new feature `Namespace` is very confusing and misleading.
`isolates` doesn't sound right because they are not really isolated.
I think `Context` would be fine.
TruffleRuby has a similar feature called `InnerContext`... -
11:32 PM Bug #21392 (Closed): Data classes do not allow overriding #inspect
- I'm preparing a new version of Color and I have decided to make all of the colour classes Data classes. However, it does not appear that `#inspect` can be overridden:
```ruby
module Color
CIELAB = Data.define(:l, :a, :b) do
... -
08:13 PM Misc #21379: DevMeeting-2025-06-05
- * [Misc #21385] Namespace: Suggesting a rename (eregon)
* "Namespace" seems to confuse many people (that feature is not about namespacing, modules do that, but about multiple execution contexts with their own $LOAD_PATH, $LOADED_FEATU... -
03:40 AM Misc #21379: DevMeeting-2025-06-05
- * [Feature #21389] Simplify Set#inspect output (jeremyevans0)
* I think Set#inspect should produce output similar to Array#inspect, not Object#inspect.
* Is using `Set[1, 2, 3]` for `Set#inspect` acceptable?
* Regardless of whet... -
08:06 PM Feature #21346: Introduce `String#ensure_suffix`
- I think this would be good to add (both methods).
-
08:03 PM Bug #21375: Set[] does not call #initialize
- IMO this is unnecessarily breaking compatibility.
If we don't want to support subclasses of Set properly as it used to work (and calling `initialize` is I think a totally reasonable assumption, especially for any library which used to b... -
07:55 PM Feature #21389: Simplify Set#inspect output
- Per https://bugs.ruby-lang.org/issues/21377#note-5 (that issue should have been linked BTW, I added it),
I strongly believe showing `Set[1, 2, 3]` instead of `MySet[1, 2, 3]` for an instance of MySet would be a mistake.
Array and Has... -
03:35 AM Feature #21389 (Closed): Simplify Set#inspect output
- As Set is now a core collection class, it should have special inspect output. Ideally, inspect output should be suitable to eval, similar to array and hash (assuming the elements are also suitable to eval):
```ruby
set = Set[1, 2, 3... -
07:48 PM Feature #21387: Proposal to add Data#[]
- I think it's easy enough to add `[]` for your Data subclass where you want it.
I think it's best to avoid adding extra methods to Data as it seems not unlikely some might want [] to not be defined or to be defined differently.
@zvero... -
02:03 PM Bug #21391: Inconsistent trailing slash behavior of File.join and Pathname#join with empty strings
- Dan0042 (Daniel DeLorme) wrote in #note-2:
> It's not the only inconsistent behavior: (absolute and relative paths example)
To clarify, I don't expect the result of the two to be equivalent in all cases, it's clearly documented what ... -
01:02 PM Bug #21391: Inconsistent trailing slash behavior of File.join and Pathname#join with empty strings
- It's not the only inconsistent behavior:
```ruby
File.join("/usr","/var") #=> "/usr/var"
Pathname.new("/usr").join("/var").to_s #=> "/var"
File.join("/usr","../var") #=> "/usr/../var"
Pathname.new("/usr... -
09:42 AM Bug #21391 (Open): Inconsistent trailing slash behavior of File.join and Pathname#join with empty strings
- ```ruby
File.join('/usr', '')
# => "/usr/"
Pathname.new('/usr').join('').to_s
# => "/usr" # no trailing slash
File.join('/usr', ' ')
# => "/usr/ "
Pathname.new('/usr').join(' ').to_s
# => "/usr/ "
```
`File.join` with a... - 07:03 AM Revision 3fd2d54a (git): Update bundled gems list as of 2025-06-01
-
06:45 AM Bug #21171: Segfault on large stack (RUBY_THREAD_VM_STACK_SIZE) on 3.4.2
- ```diff
--- gc/default/default.c.orig 2025-05-31 23:10:11.742430691 +0000
+++ gc/default/default.c 2025-05-31 23:10:44.442617151 +0000
@@ -9337,9 +9337,9 @@
rb_darray_make(&objspace->weak_references, 0);
// TODO: debug ... -
05:22 AM Revision 4c26a38e (git): Skip birthtime failures on old linux
- `statx(2)` is available since Linux 4.11 and glibc 2.28.
-
03:38 AM Feature #21390 (Closed): Deprecate passing arguments to Set#to_set and Enumerable#to_set
- Array#to_a, Hash#to_h, Enumerable#to_a, and Enumerable#to_h do not allow you to specify subclasses. This has undesired behavior when passing non-Set subclasses. All of these are currently allowed, and none make sense:
```ruby
enum ... -
03:16 AM Revision 1395abd0 (git): Win: Use `VsDevCmd.bat` instead of old `vcvarsall.bat`
-
01:24 AM Revision a64616fb (git): Win: Fix `winget` command to `install`
05/31/2025
-
04:42 PM Feature #21387: Proposal to add Data#[]
- > However, I'm still curious why I've come up with this `#[]` idea.
> ...
I am not sure about this argument. The "can be initialized with keyword arguments" and "can be converted to Hash" are probably the most common features among all ... -
01:41 PM Feature #21387: Proposal to add Data#[]
- @zverok Thank you for the feedback!
My example of `data_people.pluck(:name)` was not so good, sorry. A strength of `pluck` is to accept multiple keys like `data_people.pluck(:name, :age)`, so `.map` isn't a proper alternative in this ... -
07:16 AM Feature #21387: Proposal to add Data#[]
- The design goal of `Data` was to be as close to "just a simple atomic object" as possible and convenient. It is a "value object," not a "container". `#[]` is closer to a container protocol and starts to erode the design.
For a partic... -
06:10 AM Feature #21387 (Open): Proposal to add Data#[]
- ## Proposal
I propose to add a new instance method `#[]` to the `Data` class, similar to [`Struct#[]`](https://docs.ruby-lang.org/en/3.4/Struct.html#method-i-5B-5D).
If writing the method signature in RBS, it would be like this:
... -
12:45 PM Bug #21388 (Rejected): make install and bundled gems
- Two issues:
1. Currently, `make install` from the `MinGW (UCRT)` workflow shows two gems not being installed (`syslog` cannot be installed on Windows):
```
skipped bundled gems:
csv-3.3.5.gem not... -
11:56 AM Revision 63617a6c (git): Update rake version in bundler tests
-
10:21 AM Revision f2ddd923 (git): Update rake version in lock files
- 09:43 AM Revision 32c708ef (git): Update bundled gems list as of 2025-05-31
-
09:31 AM Revision 49f35c91 (git): Bump bundled bigdecimal to 3.2.1 (#13482)
- 09:31 AM Revision 2097d379 (git): Fix typo (s/ractore/ractor/)
-
09:29 AM Revision 7b75b1f2 (git): prepare IDs for `Ractor::monitor`
- To prevent the following strange error, prepare IDs at first.
```
<internal:ractor>:596:in 'Ractor#monitor': symbol :exited is already registered with 98610c (fatal)
from <internal:ractor>:550:in 'Ractor#join'
... -
08:15 AM Revision e8b31c27 (git): rake 13.3.0 -> 13.2.1
- `make test-bundler-parallel` prints many errors, so try to
downgrade rake version.
```
219) bundle install --standalone run in a subdirectory with --binstubs creates stubs that can be symlinked
Failure/Error:
rai... -
07:49 AM Revision 9dc9d5f5 (git): [DOC] Fix indentation
- RDoc markdown parser requires exact 4 spaces or tab as indentation.
Also the first nested bullet list must be separated from the enclosing
bullet list item by a blank line. -
04:06 AM Revision 57d10c6e (git): NEWS entries for `Ractor::Port`
-
04:05 AM Revision c0c94ab1 (git): skip failing test in a week
- ```
1) Failure:
TestGc#test_gc_stress_at_startup [/home/chkbuild/chkbuild/tmp/build/20250530T213003Z/ruby/test/ruby/test_gc.rb:799]:
[Bug #15784]
pid 1748790 killed by SIGSEGV (signal 11) (core dumped).
1. [3/3] Assertion for "success... -
03:43 AM Feature #20861: Add an environment variable for tuning the default thread quantum
- Just to report back about this feature.
I've tried this now with about 5 different apps of various sizes, ranging from 10 requests per second up to 1000 requests per second. Both on web (Puma) and background job (Sidekiq) workloads. C...
05/30/2025
-
11:56 PM Bug #21384: const_added is triggered twice when using autoload
- I see, thank you for the clarification!
-
03:32 PM Bug #21384: const_added is triggered twice when using autoload
- Let me add that I'd prefer that Ruby does not consider autoloads as constants in the API, I'd like autoloads to become constants if realized (autoloading can err, and even if succeeds, the owner may not be the receiver of the `autoload` ...
-
03:30 PM Bug #21384: const_added is triggered twice when using autoload
- It is intended.
Reason is, `constants` includes the constant after a call to `autoload`. -
11:17 PM Revision 79242968 (git): skip flaky test
- ```
1) Failure:
TestProcess#test_warmup_frees_pages [/tmp/ruby/src/trunk-random1/test/ruby/test_process.rb:2772]:
<164348> expected but was
<165985>.
```
can someone investigate it? -
09:00 PM Revision 2cce6287 (git): Sync lockfile from rubygems/rubygems (#13472)
- * Sync lockfile from rubygems/rubygems
* Restore lockfile for test-bundler
In the past, bundler updated platform without normalized variable like arm64-darwin-23.
We ignored that update. But the current bundler uses arm64-darwin for th... - 07:14 PM Revision e577edb1 (git): Update bundled gems list as of 2025-05-30
-
07:01 PM Revision 49b7a092 (git): skip tests for BigDecimal 3.2.0
-
07:01 PM Revision 70131741 (git): fix for test-bundled-gems to catch up new API
-
07:01 PM Revision ef2bb610 (git): `Ractor::Port`
- * Added `Ractor::Port`
* `Ractor::Port#receive` (support multi-threads)
* `Rcator::Port#close`
* `Ractor::Port#closed?`
* Added some methods
* `Ractor#join`
* `Ractor#value`
* `Ractor#monitor`
* `Ractor#unmonitor`
* Removed... -
05:02 PM Misc #21385: Namespace: Suggesting a rename
- More evidence.
The CRuby code base has the predicate `rb_namespace_p` (I think, since Ruby 2.7):
```c
static inline bool
rb_namespace_p(VALUE obj)
{
if (RB_SPECIAL_CONST_P(obj)) return false;
switch (RB_BUILTIN_TYPE(ob... -
04:37 PM Misc #21385: Namespace: Suggesting a rename
- Another suggestion: Context.
-
03:46 PM Misc #21385 (Closed): Namespace: Suggesting a rename
- I'd like to suggest a rename of namespaces.
The word "namespace" is already taken in Ruby.
We say that classes and modules act as or represent namespaces. Constant paths nest them in practice. We say that it is a best practice that... -
04:33 PM Feature #21386 (Rejected): Introduce `Enumerable#join_map`
- ### Problem
The pattern `.map { ... }.join(sep)` is extremely common in Ruby codebases:
```ruby
users.map(&:name).join(", ")
```
It’s expressive but repetitive (both logically and computationally). This pattern allocates an in... -
02:55 PM Revision d2a1ad00 (git): [ruby/mmtk] Fix environment variable parsing
- Ues more idiomatic rust approaches.
https://github.com/ruby/mmtk/commit/ef125f9eae -
02:55 PM Revision 94688bdc (git): [ruby/mmtk] Fix clippy warnings and formatting.
- We also enable `#![warn(unsafe_op_in_unsafe_fn)]` in the whole mmtk_ruby
crate.
https://github.com/ruby/mmtk/commit/8b8025f71a -
02:55 PM Revision d8774ec9 (git): [ruby/mmtk] Bump MMTk and dependencies version
- https://github.com/ruby/mmtk/commit/de252637ec
-
02:55 PM Revision 60de513d (git): [ruby/mmtk] Remove unused constant
- Remove the unused constant HAS_MOVED_GFIELDSTBL and related methods.
In the mmtk/mmtk-ruby repo, we are now able to find the global field
(IV) table of a moved object during copying GC without using the
HAS_MOVED_GFIELDSTBL bit. We syn... - 02:27 PM Revision f8db23af (git): ZJIT: Fold more fixnum operations (#13465)
-
02:23 PM Revision 65e9791c (git): ZJIT: Assert that we're compiling a specific YARV insn to HIR (#13471)
-
01:00 PM Feature #21205 (Closed): Make File::Stat#birthtime available on Linux
- Applied in changeset commit:git|18a036a6133bd141dfc25cd48ced9a2b78826af6.
----------
[Feature #21205] Define File::Stat#birthtime by statx -
11:55 AM Revision 8872d3e1 (git): [Feature #21205] Fix up birthtime in ruby/spec
-
11:55 AM Revision 18a036a6 (git): [Feature #21205] Define File::Stat#birthtime by statx
-
09:44 AM Revision a333fb1e (git): Win: Add scripts to install and setup
-
04:11 AM Misc #21369: Propose Max Bernstein (@tekknolagi) as a core committer
- +1. I'm quite surprised Max isn't already a committer, given his almost daily contributions.
-
12:02 AM Misc #21369: Propose Max Bernstein (@tekknolagi) as a core committer
- +1 Max is doing great work on ZJIT