Activity
From 08/15/2025 to 08/21/2025
08/21/2025
-
11:51 PM Feature #21550 (Closed): Ractor.shareable_proc/shareable_lambda to make sharable Proc object
- Let's introduce a way to make a sharable Proc.
* `Ractor.shareable_proc(self: nil, &block)` makes proc.
* `Ractor.shareable_lambda(self: nil, &block)` makes lambda.
See also: https://bugs.ruby-lang.org/issues/21039
## Backgroun... -
10:52 PM Revision 6fbe2dd3 (git): [DOC] Tweaks for String#insert
-
10:42 PM Revision 823d55a8 (git): Add lock-free fastpath to callable_method_entry...
-
10:41 PM Bug #21540: prism allows `foo && return bar` when parse.y doesn't
- Indeed, you're right:
```
Thread 1 "ruby" hit Breakpoint 1, syntax_error_initialize (argc=0, argv=0x0, self=140736655388480) at error.c:2943
warning: 2943 error.c: No such file or directory
(gdb) bt
#0 syntax_error_initialize (argc... -
10:45 AM Bug #21540: prism allows `foo && return bar` when parse.y doesn't
- That's just how parse.y shows its syntax errors in general, you can check with any other syntax error. `-c` doesn't involve the compiler.
Anyways, if it was done in the compiler then other implementations would need to handle it as we... -
10:34 PM Revision 2c6363c9 (git): [DOC] Write up NEWS entries for JITs (#14301)
-
10:18 PM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- jhawthorn (John Hawthorn) wrote in #note-27:
> I really do not believe it is a departure from the existing semantics.
I think it is in many ways. It seems other committers see the problem as well.
Nothing in Ruby gives these semanti... -
09:52 PM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- Log at https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-08-21.md
matz (Yukihiro Matsumoto) wrote in #note-28:
> The only help to the original issue is to make `make_sharable(proc)` an error, so we can prohibit ac... -
07:48 AM Feature #21039 (Closed): Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- We discussed at the developers' meeting, and had the conclusion that the original issue cannot be addressed if we use make_sharable(proc). Especially, I cannot accept the idea prohibiting outer assignment to local variables when a proc i...
-
03:05 AM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- Eregon (Benoit Daloze) wrote in #note-24:
> ```ruby
> ...
Because of the `counter += 1` this falls into case 3 and raises an error. I agree case 3 is good and we should keep it, the proposed case 2 (forbidding the `counter += 123` muta... -
02:01 AM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- My summary:
* To prohibit local variable assignment, we need to change the logic around local variables.
* as jhawthorn said, we can assume:
* `foo = 123; Ractor.shareable_proc { foo }` as
* `foo = 123; Ractor.shareable_pro... - 09:30 PM Revision 2ee5a892 (git): Make `vm_search_method` return a cme instead of a cc (#14299)
- Make vm_search_method return a cme instead of a cc
Both of its callers ended up calling `vm_cc_cme` on the result and only
used the cme, so it's probably better to return a cme directly.
This will also make it easier for ZJIT to later ... -
08:38 PM Revision 8ad290b4 (git): YJIT: Fix BSD make build. Remove ZJIT stuff
- Thanks to nobu for pointing this out. This is a YJIT file so shouldn't
have ZJIT stuff in it. ZJIT doesn't support building on BSDs yet.
Fix: 92b218fbc379fe85792eb060b71520e271971335 -
08:12 PM Feature #21545: #try_dig, a dig that returns early if it cannot dig deeper
- I have never seen an API that can return either a string `"ok"` or a hash `{ code: 200 }`
Swallowing exceptions like that seems very dangerous to me, not a pattern we should have in ruby core.
It seems to be functionally the same a... -
09:10 AM Feature #21545: #try_dig, a dig that returns early if it cannot dig deeper
- How about adding keyword argument, e.g. `exception: true` to behave `try_dig`.
Matz.
-
08:05 PM Revision 5076e88f (git): ZJIT: Fill nils before function_stub_hit exit (#14294)
- Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
Co-authored-by: Max Bernstein <ruby@bernsteinbear.com>
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org> -
07:54 PM Bug #21548: SEGV: gc/default/default.c with rbs tests
- I was able to reproduce this issue using the rexml tests as well and I have a fix here: https://github.com/ruby/ruby/pull/14296
-
02:28 AM Bug #21548 (Closed): SEGV: gc/default/default.c with rbs tests
- The following segmentation fault are happened in recent days.
* https://github.com/ruby/ruby/actions/runs/17114960502/job/48543926673
* https://github.com/ruby/ruby/actions/runs/17109323314/job/48526477676
* https://github.com/ruby/... -
07:48 PM Feature #17316: On memoization
- The single-character syntax itself isn't a problem if limited to instance variables. `foo ?=` is already valid and shouldn't change, but `@foo ?=` isn't currently valid, so it could serve as "assign if ivar undefined."
The problem is ... -
01:46 PM Feature #17316: On memoization
- Currently, `?=` means "a single character =". We don't want to break current available syntax, unless absolutely necessary.
Matz.
-
01:18 PM Feature #17316: On memoization
- @matz I propose `?=` as the uninitialized assignment operator:
```rb
@foo ?= some_heavy_calculation(...)
``` -
09:05 AM Feature #17316: On memoization
- I understand the motivation, but the proposed "@||=" is unacceptable. Other suggestions were made, but I don't think any of them adequately express the intent.
If there are no good operator name suggestions in the future, it would be be... -
07:45 PM Bug #20346 (Closed): FiberScheduler.unblock not called by Thread#join when Thread body contains Ractor.take
- This no longer deadlocks. Under the new Ractor API the `take` should be replaced with `value`.
``` ruby
require "async"
class RactorWrapper
def initialize
@ractor = Ractor.new do
Ractor.recv # Ractor doesn't start u... -
07:37 PM Bug #19407 (Closed): 2 threads taking from current ractor will hang forever
- I believe the Ractor::Port interface doesn't suffer from this issue
```
ruby -e 'th = 2.times.map { |i| Thread.new { p(i => Ractor.receive) } }; %w[hello world].each { Ractor.current.send it }; th.each(&:join)'
{0 => "hello"}
{1 =>... -
07:26 PM Revision f2715af9 (git): ZJIT: Allocate register for VRegs that begin and end at the same index (#14270)
- If the LiveRange looks like (idx, idx), we will currently not allocate a
register. This change allocates a register and then immediately
deallocates it.
Fix https://github.com/Shopify/ruby/issues/614 -
06:37 PM Bug #20146 (Closed): Code using Ractor with env `RUBY_MAX_CPU=1` ends with unreachable
- Applied in changeset commit:git|7ac16eff311f9bc762586bda9540d82e8eb7f135.
----------
Adjust snt < max_cpu calculation
[Bug #20146]
Previously we dealt with the main Ractor not being enabled for M:N by
incrementing snt_cnt++. This work... -
06:37 PM Revision 7ac16eff (git): Adjust snt < max_cpu calculation
- [Bug #20146]
Previously we dealt with the main Ractor not being enabled for M:N by
incrementing snt_cnt++. This worked for comparing against ractor count,
but meant that we always had one less SNT than was specified by
RUBY_MAX_CPU.
Th... -
06:33 PM Feature #21532 (Closed): Define most of Pathname in Ruby code
- Thanks!
-
12:58 PM Feature #21532: Define most of Pathname in Ruby code
- Ok. Merge it.
-
03:47 PM Bug #21402 (Closed): ruby2_keywords affects methods/procs with post arguments
- Fixed by commit:acb29f7fa1497463ed3bdd65549ef20b61beda64
-
03:46 PM Revision acb29f7f (git): Do not respect ruby2_keywords on method/proc with post arguments
- Previously, ruby2_keywords could be used on a method or proc with
post arguments, but I don't think the behavior is desired:
```ruby
def a(*c, **kw) [c, kw] end
def b(*a, b) a(*a, b) end
ruby2_keywords(:b)
b({foo: 1}, bar: 1)
```
This... -
03:41 PM Revision b0c80c2b (git): Remove unused SPECIAL_CONST_SHAPE_ID
- Its usage was removed in 306d50811dd060d876d1eb364a0d5e6106f5e4f1.
-
03:27 PM Misc #21458: Test 'make install'?
- naruse (Yui NARUSE) wrote in #note-8:
> Many years ago, test-all was run for install-ed Ruby, but these days it runs with files in build directories.
That would be helpful, but today bundled gems make things 'interesting'...
h... -
09:35 AM Misc #21458: Test 'make install'?
- FYI: We already tested `make install` HEAD version and all of stable versions at https://github.com/ruby/actions.
I'm okay to add only `make install` test to GitHub Actions. But I'm against to add cli test like `rdoc --version` becaus... -
07:57 AM Misc #21458: Test 'make install'?
- Testing `make install` sounds reasonable. But complex multiple testing for installed files seems too complex.
> Maybe there are already some tests ran on a make install-ed Ruby?
Many years ago, test-all was run for install-ed Ruby,... - 02:45 PM Revision 18aa7306 (git): ZJIT: Refactor `gen_new_hash` (#14293)
- We can use the `gen_push_opnds` and `gen_pop_opnds` helpers added in #14200 to simplify the code.
-
01:54 PM Revision ad4b4f2b (git): Remove dead rb_obj_is_main_ractor
-
01:37 PM Revision 027f4aa4 (git): [DOC] Tweaks for String#hash (#14253)
-
01:30 PM Feature #21533: Introduce `Time#am?` and `Time#pm?`
- > Formatting times should be done with an appropriately internationalized library.
This is not formatting. This is intended for querying, much like we have `monday?` and other methods.
> ...
I'm sorry, I don't follow. The possibility t... -
01:18 PM Bug #21547: SEGV after 2083fa commit
- Thanks. It works well!
-
12:43 PM Bug #21547: SEGV after 2083fa commit
- Thanks as always. I can confirm that this fixes this issue.
-
12:17 PM Bug #21547 (Closed): SEGV after 2083fa commit
- Applied in changeset commit:git|b6bf44ae0f0196c58a07e13ac1bd7adafd13f8b2.
----------
variable.c: handle cleared fields_obj in genfields cache
[Bug #21547]
Followup: https://github.com/ruby/ruby/pull/14201
When adding an instance vari... -
11:28 AM Bug #21547: SEGV after 2083fa commit
- Thanks everyone, I have a fix for it: https://github.com/ruby/ruby/pull/14291
-
10:52 AM Bug #21547: SEGV after 2083fa commit
- I was able to reproduce with the `cool.io` test suite.
-
10:09 AM Bug #21547: SEGV after 2083fa commit
- We are running tests using Ruby HEAD on Linux, macOS, and Windows platforms.
https://github.com/fluent/fluentd/actions/runs/17022072274
The SEGV are caused on each platforms... -
10:02 AM Bug #21547: SEGV after 2083fa commit
- Thanks. Perhaps it's a linux only issue, I'll try to investigate further.
-
09:59 AM Bug #21547: SEGV after 2083fa commit
- I reproduces pretty much all the time for me (with a clean install). A good starting point seems to be the `cool.io` gem (https://github.com/socketry/cool.io/), running its specs with `bundle exec rspec spec/tcp_server_spec.rb:111` also ...
-
09:04 AM Bug #21547: SEGV after 2083fa commit
- @watson1978 Unfortunately this doesn't seem to reproduce on my machine.
Does your crash report include the C level backtrace? If so could you share it?
Also could you make sure all native extensions have been recompiled? -
12:17 PM Revision b6bf44ae (git): variable.c: handle cleared fields_obj in genfields cache
- [Bug #21547]
Followup: https://github.com/ruby/ruby/pull/14201
When adding an instance variable and the IMEMO/fields need to be
larger, we allocate a new one and clear the old one.
Since the old one may still be in other ec's cache, o... -
11:32 AM Revision a837ec09 (git): Drop a workaround for CentOS 6
- `RUBY_CXX_DEPRECATED` is overridden using `RBIMPL_ATTR_DEPRECATED` in
include/ruby/backward/2/attributes.h already. -
11:06 AM Feature #21527 (Closed): Proposal: Math.log1p and Math.expm1
- Applied in changeset commit:git|f2b1017b3df5f93aaf1d4ccd758d341298aa8dcc.
----------
Add `Math.log1p` and `Math.expm1`
This commit adds two new methods to the `Math` module:
* `Math.log1p(x)`: Computes `Math.log(x + 1)`
* `Math.expm1(... -
08:20 AM Feature #21527: Proposal: Math.log1p and Math.expm1
- Accepted.
Matz.
-
11:05 AM Revision d318dc69 (git): Add NEWS for Math.log1p and Math.expm1
-
11:05 AM Revision f2b1017b (git): Add `Math.log1p` and `Math.expm1`
- This commit adds two new methods to the `Math` module:
* `Math.log1p(x)`: Computes `Math.log(x + 1)`
* `Math.expm1(x)`: Computes `Math.exp(x) - 1`
These methods are often more accurate than the straightforward
computation, especially w... -
10:30 AM Misc #21549 (Closed): DevMeeting-2025-09-11
- # The next dev meeting
**Date: 2025/09/11 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-09-11.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t... -
10:30 AM Misc #21508 (Closed): DevMeeting-2025-08-21
-
10:02 AM Bug #21529: Deprecate the /o modifier and warn against using it
- TIPS: By adding `[DOC]` tag in the commit log, you can download and preview the generated HTML files from the "Misc" workflow artifacts.
-
09:57 AM Bug #21529 (Feedback): Deprecate the /o modifier and warn against using it
-
09:57 AM Bug #21529: Deprecate the /o modifier and warn against using it
- jpcamara (JP Camara) wrote in #note-3:
> Yea I hear ya. So should I just submit a PR with my suggestions for the docs and close this?
Here is the current [description], that comes from this [rdoc].
Feel free to send improvements.
... -
09:20 AM Bug #21529: Deprecate the /o modifier and warn against using it
- Sorry, `/o` is a traditional option. Even though Perl is not popular anymore, we are **not** going to deprecate it. If you (or someone) is going to update the document for modern audience, I'd be very happy.
Matz.
-
08:06 AM Bug #21529: Deprecate the /o modifier and warn against using it
- The `o` option for regexp is `once` option originally from Perl regexp.
https://perldoc.perl.org/perlop#Regexp-Quote-Like-Operators
> o Compile pattern only once. -
09:43 AM Bug #21503: \p{Word} does not match on \p{Join_Control} while docs say it does
- @k0kubun `name2ctype.h` is generated by `tool/enc-unicode.rb`. You can run it on ruby_3_4.
-
09:34 AM Feature #12282: Hash#dig! for repeated applications of Hash#fetch
- `fetch_path` is much better than `dig!` since this bang method is against our naming convention (if we have x and x!, a method with `!` (bang) should be more dangerous).
At the same time, `_path` usually means file paths in Ruby, and po... -
09:30 AM Feature #21520: Feature Proposal: Enumerator::Lazy#tee
- matz (Yukihiro Matsumoto) wrote in #note-11:
> I don't think `lazy_each` is a good name. We just wanted to peek the element in the stream, being lazy or not. In that sense, `tee` is better, if you are familiar with UNIX (like me).
> ..... -
09:16 AM Feature #21520: Feature Proposal: Enumerator::Lazy#tee
- I don't think `lazy_each` is a good name. We just wanted to peek the element in the stream, being lazy or not. In that sense, `tee` is better, if you are familiar with UNIX (like me).
Matz.
-
08:28 AM Feature #21520: Feature Proposal: Enumerator::Lazy#tee
- nobu (Nobuyoshi Nakada) wrote in #note-9:
> A couple days ago, another name came to me: `tee`.
Thanks, `tee` is a great fit. It’s short and feels very Unix-y. I will make changes to the PR and the proposal soon. -
08:15 AM Feature #21520: Feature Proposal: Enumerator::Lazy#tee
- A couple days ago, another name came to me: `tee`.
-
09:27 AM Feature #21518: Statistical helpers to `Enumerable`
- I am positive about adding those methods, but I am no expert on Mathematics nor Statistics.
Matz.
-
09:22 AM Misc #21385: Namespace: Suggesting a rename
- I accept `Ruby::Box`. I saw the proposal for `Ruby::Context` but this namespace things are a bit different from the `context`.
Matz.
-
07:17 AM Revision feb83316 (git): Atomic CC table set in cache_callable_method_entry
-
04:48 AM Feature #20925: Allow boolean operators at beginning of line to continue previous line
- OK, now we have updates both for prism and parse.y. Go ahead.
Matz.
- 01:55 AM Revision 60189671 (git): Bump github.com/microsoft/vcpkg
- Bumps [github.com/microsoft/vcpkg](https://github.com/microsoft/vcpkg) from master to dd3097e305afa53f7b4312371f62058d2e665320.
- [Release notes](https://github.com/microsoft/vcpkg/releases)
- [Commits](https://github.com/microsoft/vcpkg...
08/20/2025
-
08:45 PM Bug #21540: prism allows `foo && return bar` when parse.y doesn't
- Given it's `ruby: compile error (SyntaxError)` from parse.y I guess it's a check done in `compile.c` and missing in `prism_compile.c`, if so it's not an issue in the parser itself but in the validation done by the bytecode compiler.
-
08:37 PM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- @jhawthorn I apologize if my reply sounded disrespectful or so, it was not my intention, I am/was genuinely surprised that you think ignoring assignments is not a significant departure from existing semantics, maybe I misunderstood what ...
-
08:59 AM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- > It makes very little sense to me that example 4 is fine but example 2 isn't.
Ideally example 4 would also be forbidden. It just seems difficult to do it, but maybe there are ways?
> ...
Yes it requires some non-trivial work (maybe t... -
08:28 PM Revision 426cdb2c (git): .gdbinit: rb_shape_get_shape no longer exists
- 08:17 PM Revision 19ad72d2 (git): ZJIT: Remove unnecessary option return type on gen_branch_params (#14286)
- 07:53 PM Revision a7a026ae (git): YJIT: Improve locals names (#14285)
-
07:53 PM Revision 2c7ec3d1 (git): Fix race condition in method invalidation for Ractors
- We lock the VM to invalidate method entries. However, we do not lock the
VM to call methods, so it's possible that during a method call the method
entry gets invalidated. We only check that the method entry in the callcache
is not invali... -
06:00 PM Revision 5c96bbf3 (git): Avoid spawning thread for trivial getnameinfo calls
- When calling getnameinfo we spawn a thread because it may do a slow,
blocking reverse-DNS lookup. Spawning a thread is relatively fast (~20µs
on my Linux machine) but still an order of magnitude slower than when
getnameinfo is simply tra... -
02:57 PM Revision 9d484e34 (git): Fix indentation in clear_method_cache_by_id_in_class [ci skip]
-
10:28 AM Bug #21534: ppc64le bootstraptest/test_ractor.rb aborted (core dumped) on configure cppflags=-DRUBY_DEBUG and -O3
- I found the following text in my assumption. we should use `RUBY_DEBUG` macro without optimization?
https://github.com/ruby/ruby/blob/683dd92de82bd8c93eee6860ebcd3f6336ad0c04/doc/contributing/building_ruby.md?plain=1#L275
> You sho... -
09:09 AM Revision 683dd92d (git): `cd` using the physical directory from symlinked build directory
- 06:48 AM Revision 609fe7e4 (git): Bump lewagon/wait-on-check-action
- Bumps [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action) from 31f07a800aa1ba8518509dc8561cdf5a891deb4b to 0dceb95e7c4cad8cc7422aee3885998f5cab9c79.
- [Release notes](https://github.com/lewagon/wait-on-check-a... -
06:42 AM Revision ba9e7871 (git): Revert the leftover of 90cb2bb871ff5d6d4d0dfbed2ee352c7ff818a87
- 05:46 AM Revision 3443a0bc (git): Bump actions/cache from 4.2.3 to 4.2.4
- Bumps [actions/cache](https://github.com/actions/cache) from 4.2.3 to 4.2.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co... - 04:10 AM Revision f7687c4a (git): Enable Dependabot updates for vcpkg
- See https://github.blog/changelog/2025-08-12-dependabot-version-updates-now-support-vcpkg/
-
02:27 AM Bug #21547 (Closed): SEGV after 2083fa commit
- I am maintaining [Fluentd](https://github.com/fluent/fluentd).
When I run Fluentd's unit tests after [2083fa](https://github.com/ruby/ruby/commit/2083fa89fc29005035c1a098185c4b707686a437) commit,
Ruby causes SEGV.
```
$ git clone -... -
01:24 AM Revision a396d940 (git): Restore prism/srcs.mk files
08/19/2025
-
11:34 PM Revision b3053cbb (git): [DOC] Tweaks for Object#hash
-
07:54 PM Revision 6b197dec (git): ZJIT: Mark Insn::NewRange as having side effects
-
07:54 PM Revision e639aaac (git): ZJIT: Prepare for rb_range_new() calling <=>
- gen_prepare_call_with_gc() was not enough because of the rb_funcall()
usage in range_init().
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Co-authored-by: Max Bernstein <rubybugs@bernsteinbear.com> -
07:08 PM Revision c1f16fc3 (git): Fix special consts unit tests for i686 (#14271)
- 32-bit platforms do not have flonum and something about the static symbol test was flaky.
-
07:00 PM Feature #21039: Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
- tenderlovemaking (Aaron Patterson) wrote in #note-21:
>
> ...
All the other new rules are great and improve consistency, but I don't think this one is viable or necessary. To implement it would require examining a CFG (which we don't ... -
06:57 PM Revision da01faaa (git): ZJIT: Remove try_num_bits (#14272)
-
04:30 PM Revision 3ff1ca07 (git): [ruby/openssl] Add missing write barriers in X509
- Both the X509 store and X509 store context were missing write barriers.
To the callback object being stored in the ex data.
These values were also being stored as an IV, however in Ruby HEAD we're
now storing the IVs for T_DATA (generic... -
02:26 PM Revision 6fe4ed50 (git): ZJIT: Remove more Option from codegen (#14265)
-
02:02 PM Revision fc5ee247 (git): ZJIT: Compile toregexp (#14200)
- `toregexp` is fairly similar to `concatstrings`, so this commit extracts
a helper for pushing and popping operands on the native stack.
There's probably opportunity to move some of this into lir (e.g. Alan
suggested a push_many that cou... -
01:42 PM Revision 6281806f (git): Change TestString#test_ascii_incomat_inspect to use EnvUtil.with_default_external
-
01:42 PM Revision 89321c63 (git): Change TestM17N#test_object_inspect_external to use EnvUtil.with_default_external
-
01:42 PM Revision f3d95fa0 (git): Change TestM17N#test_object_utf16_32_inspect to use EnvUtil.with_default_external
-
01:42 PM Revision 87409853 (git): Change TestM17N#test_string_inspect_encoding to use EnvUtil.with_default_external
-
01:42 PM Revision 6f1bb06c (git): Change TestHash#test_inspect to use EnvUtil.with_default_external
-
09:10 AM Bug #21111: RbConfig::CONFIG['CXX'] quietly set to "false" when Ruby cannot build C++ programs
- stanhu (Stan Hu) wrote:
> 1. Should CXX just be set to `nil`? Or should all C++ extensions be expected to check for `false`? The latter seems surprising to me.
No.
Autoconf scripts substitute all `AC_SUBST` variables with the value... -
06:27 AM Bug #21541 (Closed): make install is failing due to using rdoc repo
- I think the issue itself is already fixed. Let's discuss adding a test for `make install` in #21458
-
06:23 AM Feature #21542 (Third Party's Issue): logger gem: Context API
- `logger` is now bundled gems. We should discuss this at https://github.com/ruby/logger/pull/132
-
06:16 AM Bug #21540 (Assigned): prism allows `foo && return bar` when parse.y doesn't
-
04:36 AM Revision 9fedae99 (git): Add missing writebarrier to rb_func_proc_dup
- Because TypedData_Make_Struct both allocates an object and after
xmallocs memory, all added references must always be writebarrier
protected. -
02:55 AM Revision d0d7f550 (git): Gererate prism source files dependencies from template.rb
- Update included file list automatically.
-
01:48 AM Revision f5efd0e7 (git): [ruby/syntax_suggest] bundle exec standardrb --fix
- https://github.com/ruby/syntax_suggest/commit/54bb8ab330
08/18/2025
-
10:58 PM Revision 306d5081 (git): Don't allow looking at the shape ID of immediates (#14266)
- It only makes sense for heap objects.
-
08:19 PM Feature #21543: Point ArgumentError to the call site
- I think the second line starting with `for ` looks very strange and breaks the flow, also the order is then incorrect:
```
$ ruby test.rb
test.rb:6:in 'TestClass#bar': wrong number of arguments (given 1, expected 2) (ArgumentError)
f... -
07:59 PM Revision 6f472c8b (git): ZJIT: Fix BorrowError on --zjit-dump-disasm (#14267)
-
07:00 PM Revision 0b098a93 (git): Add missing write barriers to Random
- We recently converted this to be WB_PROTECTED, but missed some locations
the seed was set.
This is a little bit confusing because as far as I can tell some of the
seeds are set in Ractor local storage, and others on actual objects. -
06:59 PM Revision 7d2b724e (git): Add missing writebarrier on complex obj dup
- When we dup a complex object we need to issue a writebarrier_remember
on the new object. This was caught by wbcheck inside the rubygems test
suite.
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org> -
05:49 PM Bug #21342: Segfault: invalid keeping_mutexes when using Mutex in Thread then Fiber after GC
- I created a PR here: https://github.com/ruby/ruby/pull/14262
-
04:24 PM Revision e6f3334f (git): Use mark and move for iseqw
-
04:21 PM Revision 0df9a460 (git): Increase timeout on slow tests (#14264)
-
04:21 PM Revision f38ba24b (git): ZJIT: Handle ISEQ moves (#14250)
- * ZJIT: Handle ISEQ moves in IseqCall
* ZJIT: Handle ISEQ moves in Invariants
* Let gen_iseq_call take a reference
* Avoid unneeded iter() - 04:03 PM Revision 68c7f10b (git): ZJIT: Temporarily disable buggy defined? codegen
- 04:03 PM Revision 33224236 (git): ZJIT: Refine type of Defined
- 04:03 PM Revision c663fe1e (git): ZJIT: Make Defined retain its Snapshot
- 04:03 PM Revision f3dbf7de (git): ZJIT: Make a fix a bunch of other cases using Option
- 04:03 PM Revision d2a53c7c (git): ZJIT: Don't return Option from counter increment
- 04:03 PM Revision 3c2cff62 (git): ZJIT: Don't return Option from side exits
- 04:03 PM Revision 1e42f9ed (git): ZJIT: Remove empty returns from control instructions in codegen
- 04:03 PM Revision ad9fda7a (git): ZJIT: Don't return Option from codegen helper functions
- They don't need it anymore; jit.get_opnd doesn't return Option anymore.
- 04:03 PM Revision 5b3c87a0 (git): ZJIT: Make jit.get_opnd noisily fail
- We have a verifier that runs in debug mode that should prevent this.
Simplify a bunch of call sites. -
04:01 PM Revision d330bcfd (git): ZJIT: Make sure output operands are not VRegs (#14188)
- Make LIR SSA.
-
03:30 PM Bug #21534: ppc64le bootstraptest/test_ractor.rb aborted (core dumped) on configure cppflags=-DRUBY_DEBUG and -O3
- I tested at the latest master branch commit <7ddc53bc0c57b1c079e40a74d233f537111b3e92> below.
Interestingly, the above error only happens in the case of the `./configure cppflags=-DRUBY_DEBUG optflags=-O3`.
```
$ uname -m
ppc64le... - 02:59 PM Revision cb31be5d (git): ZJIT: Codegen for NewHash (#14059)
- This is my first contribution to ZJIT.
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Co-authored-by: Max Bernstein <ruby@bernsteinbear.com> -
02:53 PM Feature #21545: #try_dig, a dig that returns early if it cannot dig deeper
- Just want to point out that Ruby itself doesn't have any concept of `try`. This *might* be best as a proposal for Active Support.
-
02:51 PM Feature #12282: Hash#dig! for repeated applications of Hash#fetch
- Agreed, this feature would be useful. I would like to essentially assert that all of the nodes along the path are found.
To that end, I would suggest calling it something like `#fetch_path`:
``` ruby
object = {foo: {bar: { baz: tr... -
01:35 PM Revision 094fa3ed (git): Output array shared root flag in rb_raw_obj_info_buitin_type
-
01:35 PM Revision ef3fdb04 (git): Move flags for arrays out of if statements in rb_raw_obj_info_buitin_type
-
01:35 PM Revision 70378db2 (git): Remove impossible case in rb_raw_obj_info_buitin_type for array
- Since we handle embedded arrays in the if statement above, we don't need
to handle it here. -
03:31 AM Revision 7ddc53bc (git): Exclude prism/generate-srcs.mk.rb from sync targets of prism
- 03:31 AM Revision e3ce56c9 (git): Fix typos
-
03:31 AM Revision 0de695e2 (git): [ruby/json] Append newline at EOF [ci skip]
- https://github.com/ruby/json/commit/72e231f929
-
03:31 AM Revision 5be3ebb0 (git): [ruby/json] Remove trailing spaces [ci skip]
- https://github.com/ruby/json/commit/2d2e0d403d
-
03:31 AM Revision f0ee7630 (git): Merge specs checking CLI flags and subcommands are documented
- We had them duplicated, but with slightly different features:
* The ones in `other/cli_man_pages.rb` enforced a specific structure to
document CLI options, so were less likely to have false positives.
* The ones in `quality_spec.rb` ... -
03:31 AM Revision 7125f763 (git): [rubygems/rubygems] Use spaces around optional parameter values
- https://github.com/rubygems/rubygems/commit/b58829a868
-
03:31 AM Revision 8576da4e (git): [rubygems/rubygems] Enforce checksums strictly for registry gems
- https://github.com/rubygems/rubygems/commit/05199ae0c1
-
03:31 AM Revision 50c1faed (git): [rubygems/rubygems] Fix incorrect error message capitalization
- https://github.com/rubygems/rubygems/commit/d41b8d303c
-
03:31 AM Revision d04f1874 (git): [rubygems/rubygems] Refactor git specs
- To save some unnecessary `bundle install` commands.
https://github.com/rubygems/rubygems/commit/61e7d9d09a -
03:31 AM Revision 4a3a544d (git): [rubygems/rubygems] Improve `bundle plugin` documentation
- Make synopsis, subcommands, and CLI flags use a format consistent with
the other docs, and also reword some sentences for clarify.
https://github.com/rubygems/rubygems/commit/9272169ad0 -
03:31 AM Revision f3d62db0 (git): [rubygems/rubygems] Improve `doctor` CLI flag documentation
- Name default value placeholders in a more standard way. That's what our
specs check, but they don't yet work for subcommand flags.
https://github.com/rubygems/rubygems/commit/c589899cb8 -
03:31 AM Revision 12c200a7 (git): [rubygems/rubygems] Improve `bundle config` documentation
- For synopsis, subcommand and flag documentation like other commands do.
https://github.com/rubygems/rubygems/commit/f528029756 -
03:31 AM Revision 302c5ae2 (git): [rubygems/rubygems] Consistently use banner of desc when defining CLI flags
- https://github.com/rubygems/rubygems/commit/2cbe7ea0a5
-
03:31 AM Revision 9983d2bc (git): [rubygems/rubygems] Delay pending spec
- We had actually cancelled this change. After a second look though, it
does seem like a reasonable plan since `bundle list` makes more sense
for listing gems, and `bundle info` makes more sense for showing info
about a particular gem. `bu... -
03:31 AM Revision 679e8b1b (git): [rubygems/rubygems] Fix `bundle show --verbose` and recommend it as an alternative to `bundle show --outdated`
- https://github.com/rubygems/rubygems/commit/7cad1e4947
-
03:31 AM Revision bcc287fc (git): [rubygems/rubygems] Fix `bundle update foo` not upgrading foo to latest in a specific case
- If upgrading `foo` needs an indirect dependency to be downgraded,
Bundler would not be able to upgrade foo.
This is because when calculating the latest resolvable version of foo,
Bundler was still adding lower bound requirements on the ... -
03:31 AM Revision 81360399 (git): [rubygems/rubygems] Introduce `bundle list --format=json`
- The `bundle list` command is a convenient way for human to know what gems and versions are available. By introducing a `--format=json` option, we can provide the same information to machines in a stable format that is robust to UI additi...
-
03:31 AM Revision 8d5f00c5 (git): [rubygems/rubygems] Fix Bundler printing more flags than actually passed in verbose mode
- This reverts commit https://github.com/rubygems/rubygems/commit/bea87eab0b17 and adds a
regression spec for it.
https://github.com/rubygems/rubygems/commit/ac98107864 -
03:31 AM Revision f074f826 (git): [rubygems/rubygems] Fix `bundle cache --no-all` not printing a deprecation warning
- Like others, it's a remembered option which we are deprecating in favor
of configuration.
https://github.com/rubygems/rubygems/commit/9ea55e0df2 -
03:31 AM Revision 2e983280 (git): [rubygems/rubygems] Use a rubygems filter for the timeout spec
- For consistency.
https://github.com/rubygems/rubygems/commit/3e3364e19f -
03:31 AM Revision a6aa8e67 (git): [rubygems/rubygems] Fix spec no longer run since rubygems timeout was renamed
- https://github.com/rubygems/rubygems/commit/4d0c058e6a
-
03:31 AM Revision 3c669e2d (git): [rubygems/rubygems] Remove unnecessary rubygems filters
- Since the lowest supported version is now 3.4.1.
https://github.com/rubygems/rubygems/commit/d00e03c52e - 03:31 AM Revision d4bf58b5 (git): [rubygems/rubygems] Don't worry about missing Makefile.
- https://github.com/rubygems/rubygems/commit/0e92346d88
-
03:31 AM Revision 6e102677 (git): [rubygems/rubygems] Removed to workaround for Bundler 2.2.
- The current oldest support Ruby version is 3.2. And Ruby 3.2 bundled
Bundler 2.5. It means RG 4.0 can drop to support Bundler 2.2.
https://github.com/rubygems/rubygems/commit/592ac09b5c -
02:03 AM Revision 75a968d8 (git): Add the recipe to fix/update depend files
-
02:03 AM Revision 3c1244ab (git): Define targets for packages also in common.mk
-
01:25 AM Revision ddbfe353 (git): Use autogen.sh if exists
-
01:08 AM Revision 449cc250 (git): Use `File` instead of `IO`, for read/write singleton methods
08/17/2025
-
04:01 PM Revision 90cb2bb8 (git): Gererate prism source files dependencies from template.rb
-
04:01 PM Revision 504b9637 (git): Fix dependencies of generated prism sources for NMake
- The VPATH rule of NMake is different from others. Abandon using
them in the rules for the generated source, locate them in the top
source directory, as well as the generated library files of prism. -
12:39 PM Bug #21546 (Closed): `prefix` in ruby.pc is wrong when `--enable-load-relative`
- Applied in changeset commit:git|7c28fb2fb2544e5fed75ef216c4dd08084b38671.
----------
[Bug #21546] Make the generated pc file relocatable -
08:11 AM Bug #21546 (Closed): `prefix` in ruby.pc is wrong when `--enable-load-relative`
- It is relocatable and should reflect the installed location.
```console
$ export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}
$ pkg-config --variable=prefix ruby-3.5
/.
```
Currently `pkg-config... -
08:13 AM Revision 7c28fb2f (git): [Bug #21546] Make the generated pc file relocatable
08/16/2025
-
09:08 PM Revision ad047459 (git): [DOC] Tweaks for GC.stat_heap
-
09:07 PM Revision e0b2e2fa (git): [DOC] Tweaks for String#index
-
09:05 PM Revision 9b40837b (git): [DOC] Tweaks for String#include?
-
09:04 PM Revision d96991cc (git): [DOC] Tweaks for String#hex
-
12:38 PM Revision 4d0836d9 (git): CI: windows: Skip rebuilding vcpkg packages when cache restored
-
12:30 PM Revision a79600db (git): CI: windows: Use possibly faster device for TMP/TEMP
-
02:42 AM Revision 87c4ebd0 (git): Fix tests using assert_raise_with_message on US-ASCII systems
- On systems where the Encoding.default_internal defaults to US-ASCII instead
of UTF-8, some tests using assert_raise_with_message can fail since it no
longer changes Encoding.default_internal in 79f5202.
This tests explicitly uses EnvUti... -
12:11 AM Revision db3d82bc (git): ZJIT: Guide WB skipping for Insn::SetLocal using HIR type info
-
12:11 AM Revision 7f398a38 (git): ZJIT: Make `opnd!()` work on both `&InsnId` and `InsnId`
-
12:07 AM Revision 26776ee9 (git): ZJIT: Remove unused HIR test code (#14248)
08/15/2025
-
10:02 PM Revision 11c8bad6 (git): CI: Also show errors in rust-warnings.yml [ci skip]
- At under a minute, this check runs faster than a lot of the other CI
checks, so we might as well show errors from `cargo check` to serve as a
smoke check in addition to surfacing warnings. -
08:57 PM Revision e4093711 (git): zjit_bisect.rb: Fix pipe deadlock; log when timed out [ci skip]
- I spent a long time bisecting some largish program before realizing
that failure was in fact coming from the child timing out due to
zjit_bisect.rb not clearing the stdout and stderr pipe.
Fix the pipe deadlock by redirecting to /dev/nu... -
08:23 PM Revision 49e4d21d (git): ZJIT: Share function stub code using a trampoline (#14225)
-
07:43 PM Revision 149add89 (git): Don't free Ractors in GC shutdown
- rb_gc_shutdown_call_finalizer_p returns false for threads and fibers, so
it should probably do the same for all Ractors (not just the main one).
This hopefully mitigates a bug where, at exit, rb_ractor_terminate_all
gets all Ractors to ... -
07:29 PM Revision 88906e13 (git): Skip an unstable Ractor test for windows (#14247)
- https://github.com/ruby/ruby/actions/runs/16995599804/job/48185434078?pr=14242
- 06:31 PM Revision 2a1210f7 (git): ZJIT: Implement getspecial (#13642)
- ZJIT: Implement getspecial in ZJIT
Adds support for the getspecial instruction in zjit.
We split getspecial into two instructions, one for special symbols
(`$&`, $'`, etc) and one for special backrefs (`$1`, `$2`, etc).
Co-authored-by... -
06:26 PM Revision 1d7ed956 (git): ZJIT: Make --zjit-dump-hir work with HIR opt disabled (#14242)
-
06:14 PM Misc #21508: DevMeeting-2025-08-21
- * [Feature #21533] Introduce `Time#am?` and `Time#pm?`
* Thoughts on the name and functionality?
* I think this is the less ambiguous way to have info about a part of the day that works across cultures (and is consistent with strft... -
06:13 PM Revision 2f2e2bd7 (git): Relax a delta for an unstable test (#14246)
- https://github.com/ruby/ruby/actions/runs/16995978143/job/48186652826?pr=14244
-
05:59 PM Revision 97cffb95 (git): Skip an unstable test for macOS (#14245)
-
05:53 PM Revision 12ef01b5 (git): Skip an unstable test for macOS
- https://github.com/ruby/ruby/actions/runs/16983250181/job/48147338735
https://github.com/ruby/ruby/actions/runs/16994020689/job/48180211762 -
05:53 PM Revision 9deaf68c (git): Increase timeout for a flaky test
- https://github.com/ruby/ruby/actions/runs/16983250181/job/48147338699
-
05:41 PM Revision 0d0c051b (git): Don't check for stack overflow when ec is NULL (#14236)
- Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>
- 05:25 PM Revision 7c67060d (git): Fix enc_list across ractors
- Calling rb_ary_replace(copy, orig) can modify orig, which is not safe
across ractors because orig is shared (it's the global encoding list).
Hoping to address CI failures such as https://ci.rvm.jp/results/trunk-gc-asserts@ruby-sp2-noble... -
04:35 PM Misc #20013 (Closed): Travis CI status
- We are migrating the ppc64le/s390x CI from Travis CI to GitHub Actions.
And I deleted the `.travis.yml` on the following commit. So, I would close this ticket. Thank you Travis.
https://github.com/ruby/ruby/commit/efe6813b1f5433cd19e0b... - 04:05 PM Revision 8f7e7bfc (git): ZJIT: Set PC before function_stub_hit_body (#14234)
-
01:30 PM Revision 79f52020 (git): Don't change Encoding.default_internal in assert_raise_with_message
- For most tests (except two), we don't need to change Encoding.default_internal
in assert_raise_with_message. We're trying to run the test suite across
multiple Ractors and modifying Encoding.default_internal can cause other
concurrently ... -
09:36 AM Feature #21545 (Open): #try_dig, a dig that returns early if it cannot dig deeper
- Ruby offers `dig` for traversing nested hashes and arrays. It is strict and will raise if an intermediary object does not support `dig`. In many cases we only want to attempt the lookup and return `nil` if it cannot be followed, without ...
-
07:49 AM Misc #21544 (Open): CI: Launchable: Early flake detection
- I'm a software engineer at Launchable, and I'd like to propose the mechanism to detect potential flaky tests.
## Background
In the current Ruby CI, it's easy for flaky tests to be unintentionally merged into the master branch. Even... -
04:54 AM Revision 42c08e45 (git): Fix RBS tests (#14220)
- * Use unreleased version of rbs
* Skip all failing tests on windows - 04:37 AM Revision efe6813b (git): Drop Travis CI.
- Travis CI has not been running since 2 months ago.
https://app.travis-ci.com/github/ruby/ruby/builds
As we are migrating the ppc64le/s390x CI cases from Travis to GitHub Actions,
I will drop the `.travis.yml`, while the GitHub Actions p... -
01:51 AM Revision d025bc23 (git): Remove duplicated line of code in thread_sync.c
-
01:51 AM Revision b0cd89a5 (git): [DOC] Tweaks for GC.stress and GC.stress=
-
01:47 AM Revision 12e42f72 (git): [DOC] Tweaks for GC.stat