Activity
From 06/08/2025 to 06/14/2025
06/14/2025
-
02:39 PM Feature #21435: Kernel#then_try as a conditional #then
- @Alexander.Senko I don't think my opinion weights much here, but here it is, nevertheless.
When writing in "chaining" style (which I know is not everybody's favorite), "do this transformation/next step conditionally" is indeed a frequ... -
11:50 AM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
- PR at https://github.com/ruby/ruby/pull/13615
-
08:44 AM Bug #21255: Can't build Ruby with Windows SDK 10.0.26100
- ruby_3_3 commit:a205407e165e4570b8b6d6e4b7a019b51962ecba merged revision(s) commit:72bda0f981c7136f50254c433bbfb97a953f634b.
-
08:43 AM Revision a205407e (git): merge revision(s) 72bda0f981c7136f50254c433bbfb97a953f634b: [Backport #21255]
- [Bug #21255] Win32: Do not export `__declspec(selectany)` symbols
```
x64-vcruntime140-ruby350.def : error LNK2001: unresolved external symbol Avx2WmemEnabledWeakValue
``` -
08:41 AM Bug #21283: Some tests of TestMkmfConvertible is failing with VS2022 17.14.0 preview 4.0
- ruby_3_3 commit:dc88822c3eabbd3f5ac080b1ff1059b1f0066bd2 merged revision(s) commit:e1adb6cb15129a54df0c55a337e98b92b2a55e3f.
-
08:41 AM Revision dc88822c (git): merge revision(s) e1adb6cb15129a54df0c55a337e98b92b2a55e3f: [Backport #21283]
- Win: Suppress false warnings from Visual C 17.14.1
https://developercommunity.visualstudio.com/t/warning-C5287:-operands-are-different-e/10877942?
It is not able to silence "operands are different enum types"
wa... -
06:53 AM Revision 32737f8a (git): Adjust indent [ci skip]
-
06:29 AM Bug #21438 (Closed): use-after-free when resizing exivars
- Applied in changeset commit:git|5342d9130beb44f9aa1dddbb7f6276bf01c7404f.
----------
Fix generic_ivar_set_shape_field for table rebuild
[Bug #21438]
Previously GC could trigger a table rebuild of the generic fields
st_table in the mid... -
06:29 AM Revision 39697ffd (git): Remove fields_tbl in gen_fields_lookup_ensure_size
-
06:29 AM Revision 5342d913 (git): Fix generic_ivar_set_shape_field for table rebuild
- [Bug #21438]
Previously GC could trigger a table rebuild of the generic fields
st_table in the middle of calling the st_update callback. This could
cause entries to be reallocated or rearranged and the update to be for
the wrong entry.
... -
05:55 AM Revision 74cdf872 (git): Remove test_object_id_race_free_with_stress_compact
- This test was written for another implementation of `#object_id`
which had complex interations with GC, that's not the case of
the implementation that was actually merged. - 03:32 AM Revision 68625a23 (git): Fix blocking operation cancellation. (#13614)
- Expose `rb_thread_resolve_unblock_function` internally.
-
03:14 AM Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines
- ruby_3_3 commit:5de0c228a34dc919b663b547f933fb276333fdce merged revision(s) commit:2297afda7ff3926c51fea700dfbf0f0eb4fea1e5.
-
02:41 AM Revision 5de0c228 (git): merge revision(s) 2297afda7ff3926c51fea700dfbf0f0eb4fea1e5: [Backport #21340]
- Include stdbool.h without checking with autoconf
As reported in <https://bugs.ruby-lang.org/issues/21340>, older autoconf
have an AC_HEADER_STDBOOL that's incompatible with C23. Autoconf 2.72
fixed the macro, but... -
02:39 AM Bug #21354: Symbol#to_proc is not ractor safe
- ruby_3_3 commit:d5c8fd2043f4425c3fe2a87558dfbd80ebff9911 merged revision(s) commit:f6cbf499bc98b851034fffb49fcbb59d495f6f7b.
-
02:39 AM Revision d5c8fd20 (git): merge revision(s) f6cbf499bc98b851034fffb49fcbb59d495f6f7b: [Backport #21354]
- Fix Symbol#to_proc (rb_sym_to_proc) to be ractor safe
In non-main ractors, don't use `sym_proc_cache`. It is not thread-safe
to add to this array without a lock and also it leaks procs from one
ractor to another.... -
02:04 AM Bug #21048: [Prism] rescue in modifier form with condition behaves differently
- Backporting c2908613368b2ae404d094a15df61d830fc46dc9 depends on many changesets about prism in ruby_3_3. Please make a backport pull request.
- 12:54 AM Revision c45c600e (git): Add `open_timeout` as an overall timeout option for `Socket.tcp` (#13368)
- * Add `open_timeout` as an overall timeout option for `Socket.tcp`
[Background]
Currently, `TCPSocket.new` and `Socket.tcp` accept two kind of timeout options:
- `resolv_timeout`, which controls the timeout for DNS resolution
- `connect...
06/13/2025
-
09:50 PM Revision 15084fbc (git): Get rid of FL_EXIVAR
- Now that the shape_id gives us all the same information, it's no
longer needed. -
09:50 PM Revision 6dbe24fe (git): Use the `shape_id` rather than `FL_EXIVAR`
- We still keep setting `FL_EXIVAR` so that `rb_shape_verify_consistency`
can detect discrepancies. -
09:50 PM Revision b51078f8 (git): Enforce consistency between shape_id and FL_EXIVAR
- The FL_EXIVAR is a bit redundant with the shape_id.
Now that the `shape_id` is embedded in all objects on all archs,
we can cheaply check if an object has any fields with a simple
bitmask. -
08:24 PM Revision f2d7c6af (git): Suppress unused-variable warning
-
07:45 PM Revision 39569da4 (git): Work around CI failures coming from Launchable
- https://github.com/ruby/ruby/actions/runs/15640729145/job/44067161266
-
07:40 PM Revision 69148a87 (git): ZJIT: Partially enable btest on CI (#13613)
-
05:46 PM Revision a99d941c (git): Add SHAPE_ID_HAS_IVAR_MASK for quick ivar check
- This allow checking if an object has ivars with just a shape_id
mask. -
05:46 PM Revision fb0dbbc0 (git): [ruby/date] d_lite_marshal_load: copy ivars in the right order
- https://github.com/ruby/date/commit/dbf4e957dc
-
05:40 PM Revision 99a72df1 (git): [ruby/date] Remove references to FL_EXIVAR
- This flag isn't really meant to be public, it's an implementation
detail of Ruby.
And checking it before calling `rb_copy_generic_ivar` only save
a function call.
https://github.com/ruby/date/commit/8175252653 -
05:29 PM Feature #21346: Introduce `String#ensure_suffix`
- I think `with_suffix` would be a bit clearer for the implemented semantics.
-
05:23 PM Misc #21385: Namespace: Suggesting a rename
- hsbt (Hiroshi SHIBATA) wrote in #note-19:
> ClassLoader (joke)
I'm not sure how I missed this but indeed this feature seems very much like Java's ClassLoader,
i.e., a way to load files/"features"/modules/classes again in their own i... - 04:28 PM Revision 4a2b53ae (git): * remove trailing spaces. [ci skip]
-
04:27 PM Revision e22fc73c (git): Fix a race condition in object_id for shareable objects
- If an object is shareable and has no capacity left, it isn't
safe to store the object ID in fields as it requires an object
resize which can't be done unless all field reads are synchronized.
In this very specific case we create the obj... -
03:54 PM Revision 0674f7df (git): ZJIT: Only write LIR output of HIR instructions with output
-
03:54 PM Revision f208e017 (git): ZJIT: Add codegen for SideExit
-
03:13 PM Revision 97ea756e (git): test/ruby/test_ractor.rb: avoid outputting anything
-
03:13 PM Revision 545e99da (git): mmtk: Get rid of unused reference to FL_EXIVAR
-
12:09 PM Revision 1d11e1be (git): Suppress unused-variable warning
-
10:48 AM Revision a66d823c (git): CI: Fix launchable timeout
- `setup_launchable` needs to run the current shell, not in a subshell.
-
10:35 AM Revision 583ce06c (git): Normalize subseconds using `wideint_t` instead of `time_t`
-
10:35 AM Revision b8de3cfb (git): Conversion is needed between `WIDEVALUE` and `VALUE`
-
10:35 AM Revision c7f5ae98 (git): The device numbers in `struct statx` may be larger than `dev_t`
- `dev_t` is already 64-bit in glibc, but on some platforms like Alpine
Linux and Android NDK, `makedev` is defined as more than 32-bit (
promoting to `unsigned long long` then left-shifting by 32bit), while
`dev_t` is still 32-bit. -
10:03 AM Revision 071aa02a (git): shape.c: cleanup unused IDs
- id_frozen and id_t_object are no longer used.
id_object_id no longer need to be exposed. -
08:08 AM Revision dd4c5acc (git): vm_callinfo.h: Stick to using user flags
- For some unclear reasons VM_CALLCACHE_UNMARKABLE
and VM_CALLCACHE_UNMARKABLE used global flags rather than the
available IMEMO_FL_USER flags. -
06:16 AM Bug #21440 (Closed): Cannot create instances of frozen Data subclasses
- Applied in changeset commit:git|2e7e78cd590d20aa9d41422e96302f3edd73f623.
----------
[Bug #21440] Stop caching member list in frozen Data/Struct class -
05:25 AM Bug #21440: Cannot create instances of frozen Data subclasses
- Also `Class.new(Struct.new(:a)).freeze.new`.
-
03:35 AM Bug #21440 (Closed): Cannot create instances of frozen Data subclasses
- This fails since Data was added in Ruby 3.2:
```ruby
Class.new(Data.define(:a)).freeze.new
# can't modify frozen #<Class:#<Class:0x000079cf41253160>>: #<Class:0x000079cf41253160> (FrozenError)
```
Note that the error occurs even... -
05:22 AM Revision 2e7e78cd (git): [Bug #21440] Stop caching member list in frozen Data/Struct class
-
03:55 AM Revision 64c421db (git): [rubygems/rubygems] Surpressing warning for CGI library of Ruby 3.5+
- ```
❯ bin/rspec ./spec/bundler/friendly_errors_spec.rb
/Users/hsbt/Documents/github.com/rubygems/rubygems/bundler/spec/bundler/friendly_errors_spec.rb:5: warning: CGI library is removed from Ruby 3.5. Please use cgi/escape instead for CG... -
03:55 AM Revision 22a7f6b6 (git): [rubygems/rubygems] Recognize JRuby loaded from a classloader, not just any JAR
- Such is the case if you embed JRuby into an application dynamically (such
as via OSGi). From my test environment:
```
irb(main):006:0> $LOADED_FEATURES.grep(/cli.rb/)
=> ["uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/bundler/cli... -
03:55 AM Revision 73532ecf (git): [rubygems/rubygems] Update bundled tls certs
- By running tool/update_bundled_ca_certificates.rb
Signed-off-by: Samuel Giddins <segiddins@segiddins.me>
https://github.com/rubygems/rubygems/commit/54f5278450 -
02:14 AM Revision 7cfdcde0 (git): Expect aligned pointer for the atomic operations
-
12:18 AM Revision 7fa3e1a1 (git): ZJIT: Write a callee frame on JIT-to-JIT calls (#13579)
- Co-authored-by: Max Bernstein <tekknolagi@gmail.com>
06/12/2025
-
09:03 PM Bug #21090 (Closed): SEGV from require in Thread in Ractor
- Applied in changeset commit:git|b28f3443122c4e5461877d704618c752e56ca8b0.
----------
Use a T_DATA for cross_ractor_require
[Bug #21090]
The struct was previously allocated on the stack, which could be freed
if the Thread is terminated... -
08:13 PM Revision ef9301a6 (git): Ensure crr->feature is an fstring
-
08:13 PM Revision b28f3443 (git): Use a T_DATA for cross_ractor_require
- [Bug #21090]
The struct was previously allocated on the stack, which could be freed
if the Thread is terminated. Moving this to a T_DATA on the heap should
mean this is no longer an issue.
1000.times { Ractor.new { th = Thread.new { re... -
08:13 PM Revision a34fcf40 (git): Add a new_thread flag to rb_interrupt_exec
- Previously rb_ractor_interrupt_exec would use an intermediate function
to create a new thread with the actual target function, replacing the
data being passed in with a piece of malloc memory holding the "next"
function and the original ... - 08:13 PM Revision 97994c77 (git): Only use regex internal reg_cache when in main ractor
- Using this `reg_cache` is racy across ractors, so don't use it when in a
ractor. Also, its use across ractors can cause a regular expression created
in 1 ractor to be used in another ractor (an isolation bug). -
07:23 PM Revision 6e36841d (git): Free rb_native_thread memory at fork
- We never freed any resources of rb_native_thread at fork because it would
cause it to hang. This is because it called rb_native_cond_destroy for
condition variables. We can't call rb_native_cond_destroy here because
according to the spe... -
03:33 PM Bug #21439 (Closed): Crash with PM_SPLAT_NODE compiler error (Prism) - Applied in changeset commit:git|5ec9a392cdf7f971221dc073dd466bce877d8acb.
----------
[Bug #21439] Fix `PM_SPLAT_NODE` compilation error in for loops (#13597)
[Bug #21439] Fix PM_SPLAT_NODE compilation error in for loops
This commit fi... -
02:32 PM Bug #21439: Crash with PM_SPLAT_NODE compiler error (Prism)
- I have a PR for it here: https://github.com/ruby/ruby/pull/13597
- 03:33 PM Revision 5ec9a392 (git): [Bug #21439] Fix `PM_SPLAT_NODE` compilation error in for loops (#13597)
- [Bug #21439] Fix PM_SPLAT_NODE compilation error in for loops
This commit fixes a crash that occurred when using splat nodes (*) as
the index variable in for loops. The error "Unexpected node type for
index in for node: PM_SPLAT_NODE" w... -
03:08 PM Revision 7c22330c (git): Allocate `rb_shape_tree` statically
- There is no point allocating it during init, it adds
a useless indirection. -
03:08 PM Revision de4b9103 (git): Get rid of GET_SHAPE_TREE()
- It's a useless indirection.
-
03:08 PM Revision e070d935 (git): Get rid of `rb_shape_lookup`
-
03:08 PM Revision 0292b702 (git): shape.h: make RSHAPE static inline
- Since the shape_tree_ptr is `extern` it should be possible to
fully inline `RSHAPE`. -
02:02 PM Revision d55c463d (git): Fix memory leak of Ractor basket when sending to closed Ractor
- The following script leaks memory:
r = Ractor.new { }
r.value
10.times do
100_000.times do
r.send(123)
rescue Ractor::ClosedError
end
puts `ps -o rss= -p #{$$}`
end
Before:
18508
... -
12:55 PM Revision a74c3852 (git): Make setting and accessing class ivars lock-free
- Now that class fields have been deletated to a T_IMEMO/class_fields
when we're in multi-ractor mode, we can read and write class instance
variable in an atomic way using Read-Copy-Update (RCU).
Note when in multi-ractor mode, we always ... -
11:43 AM Revision 8b5ac5ab (git): Fix class instance variable inside namespaces
- Now that classes fields are delegated to an object with its own
shape_id, we no longer need to mark all classes as TOO_COMPLEX. - 07:30 AM Revision 81209719 (git): Move more NilClass methods to ruby
- ```
$ make benchmark ITEM=nilclass COMPARE_RUBY="/opt/rubies/ruby-master/bin/ruby"
/opt/rubies/3.4.2/bin/ruby --disable=gems -rrubygems -I../benchmark/lib ../benchmark/benchmark-driver/exe/benchmark-driver \
--executa... -
06:44 AM Feature #21435: Kernel#then_try as a conditional #then
- @zverok, what do you think about it? May `#then` get a conditional counterpart?
-
05:58 AM Revision 3abdd424 (git): Turn `rb_classext_t.fields` into a T_IMEMO/class_fields
- This behave almost exactly as a T_OBJECT, the layout is entirely
compatible.
This aims to solve two problems.
First, it solves the problem of namspaced classes having
a single `shape_id`. Now each namespaced classext
has an object that... -
05:28 AM Revision 166ff187 (git): [rubygems/rubygems] Removed ccache or sccache from args of Rust builder
- ```
" = note: some arguments are omitted. use `--verbose` to show all linker arguments\n" +
" = note: error: unexpected argument '-W' found\n" +
" \n" +
" tip: to pass '-W' as a value, use '-- -W'\n" +
" ... -
01:34 AM Revision 4585ccd9 (git): [ruby/strscan] Update extconf.rb
- (https://github.com/ruby/strscan/pull/158)
- `have_func` includes "ruby.h" by default.
- include "ruby/re.h" where `rb_reg_onig_match` is declared.
https://github.com/ruby/strscan/commit/1ac96f47e9 -
01:11 AM Revision 7854b71e (git): Supress a few more tsan errors
-
01:11 AM Revision f91c8083 (git): gdbinit: fix printing of T_DATA
06/11/2025
-
11:45 PM Revision 3a6844a6 (git): Tweak to spec setup so that `rspec` instead of our `bin/rspec` binstub still works
-
11:40 PM Revision 8abb87b9 (git): [rubygems/rubygems] Remove duplicate documentation for `--changelog` flag
- https://github.com/rubygems/rubygems/commit/9f1d07685f
-
11:40 PM Revision 3fdaa6a1 (git): [rubygems/rubygems] Fix typos in some documentation lists making them render incorrectly
- https://github.com/rubygems/rubygems/commit/19739ba71c
-
11:40 PM Revision ca7bd597 (git): [rubygems/rubygems] Update man pages month
- https://github.com/rubygems/rubygems/commit/3e4687616a
-
08:35 PM Bug #21439 (Closed): Crash with PM_SPLAT_NODE compiler error (Prism)
- Hi Ruby team,
I'm encountering a crash when using a splat (*) on the left-hand side of a for loop in the latest Ruby build from master. The error occurs during compilation, and seems related to Prism’s handling of PM_SPLAT_NODE.
##... -
07:23 PM Bug #21438 (Closed): use-after-free when resizing exivars
- Here's a semi-reliable reproduction:
```ruby
objs = 10_000.times.map do
a = []
a.instance_variable_set(:@a, 1)
a
end
GC.stress = true
GC.auto_compact = true
steps = 1000.times.map do
a = []
a.instance_variable... -
06:07 PM Revision 970813d9 (git): [ruby/prism] Fix parser translator during string escaping with invalid utf-8
- Instead, prefer `scan_byte` over `get_byte` since that already returns the byte as an integer, sidestepping conversion issues.
Fixes https://github.com/ruby/prism/issues/3582
https://github.com/ruby/prism/commit/7f3008b2b5 -
02:38 PM Revision 95201299 (git): Refactor the last references to `rb_shape_t`
- The type isn't opaque because Ruby isn't often compiled with LTO,
so for optimization purpose it's better to allow as much inlining
as possible.
However ideally only `shape.c` and `shape.h` should deal with
the actual struct, and everyt... -
01:12 PM Feature #21435: Kernel#then_try as a conditional #then
- mame (Yusuke Endoh) wrote in #note-5:
> In terms of cognitive complexity, I find it much easier to understand when the logic is written out explicitly, even if it's more verbose, like this:
> ...
Those who prefer iterative logic over met... -
09:38 AM Feature #21435: Kernel#then_try as a conditional #then
- To be honest, when I see a code fragment like `.optional { it.decorate if it.respond_to? :decorate }`, I couldn't understand the intended behavior at all. Personally, I feel that this actually increases cognitive complexity rather than r...
-
12:50 PM Bug #21437 (Closed): Date#hash may return different values for equal dates with large years
- Parsing the same date string allocates new large integer objects with different pointer addresses, which then affects the hash value due to `d_lite_hash` behavior.
```ruby
require 'date'
# Small year - consistent hashes
Date.strp... -
12:27 PM Bug #21436 (Closed): Date#ajd returns incorrect positive values due to integer overflow for large negative years
- `Date#ajd` (astronomical Julian Day number) returns incorrect positive values instead of negative values for certain large negative years due to signed integer overflow in the `RB_INT2FIX` function.
```ruby
require 'date'
# Work... -
12:21 PM Revision 4463ac26 (git): shape.h: remove YJIT workaround
- YJIT x86 backend would crahs if the shape_id top bit was set.
This should have been fixed now. -
10:49 AM Revision 59fad961 (git): ZJIT: x86: Fix panic writing 32-bit number with top bit set
- Previously, `asm.mov(m32, imm32)` panicked when `imm32 > 0x80000000`. It
attempted to split imm32 into a register before doing the store, but
then the register size didn't match the destination size.
Instead of splitting, use the `MOV r... -
10:49 AM Revision e5c7f169 (git): YJIT: x86: Fix panic writing 32-bit number with top bit set
- Previously, `asm.mov(m32, imm32)` panicked when `imm32 > 0x80000000`. It
attempted to split imm32 into a register before doing the store, but
then the register size didn't match the destination size.
Instead of splitting, use the `MOV r... -
10:49 AM Revision 4ebe0a1b (git): ZJIT: Restore x86 assembler tests
-
10:49 AM Revision c489020c (git): ZJIT: Restore some A64 backend tests to fix unused warning
-
10:49 AM Revision 0bc24353 (git): ZJIT: Restore most x64 backend tests
-
10:46 AM Bug #21368: Moving objects with finalizer between Ractors crashes
- Maybe this ticket should be merged with https://bugs.ruby-lang.org/issues/21315 ?
-
10:05 AM Revision f45aa150 (git): [ruby/date] Update zonetab.h at 2025-06-11
- https://github.com/ruby/date/commit/b28617cde0
-
08:10 AM Revision c2f2ac7d (git): shape.c: Fix rb_bug call to use correct format for size_t
-
08:04 AM Revision fd7e56a8 (git): Use artifacts built by vcpkg manifest mode
- I'm not sure why vcpkg cache is not using while recent weeks.
-
06:45 AM Bug #20631 (Closed): Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta
- macOS 26 beta and Xcode 26 beta is working fine with this issue. And the current macOS 15 on GitHub Actions is also working fine.
I enabled ignored tests again at https://github.com/ruby/ruby/commit/255e6e619752854e5740519ad8829e4a7a4... -
06:40 AM Revision 255e6e61 (git): Try to run ignored tests with macOS 15
-
05:04 AM Revision 51118fa2 (git): [ruby/net-http] Support pretty_print
- https://github.com/ruby/net-http/commit/bfc60454f6
-
04:57 AM Revision a976fa1b (git): Followed up https://github.com/ruby/net-http/commit/002441da1e for ruby/spec
-
03:35 AM Revision 82e33124 (git): [ruby/net-http] Fixed test case for default content-type.
- I changed content-type of request to "application/octet-stream" if request didn't have
content-type.
https://github.com/ruby/net-http/commit/fc5870d2ac -
03:35 AM Revision 51b70d10 (git): [ruby/net-http] Don't set content type by default
- Fixes https://github.com/ruby/net-http/issues/205
https://github.com/ruby/net-http/commit/002441da1e -
12:38 AM Revision 9b09c680 (git): Simplify `make test-bundler`
-
12:38 AM Revision ec897fd2 (git): Fix `make test-bundler`
06/10/2025
-
11:48 PM Revision dba72134 (git): [rubygems/rubygems] Fix `gem pristine` sometimes not resetting extensions
- If `gem pristine foo` is run, and there's a default copy of foo, only
executables for it are reset. However, that was causing other copies of
`foo` to only reset executables, which is unexpected.
We should not modify `options[:only_exec... -
11:48 PM Revision 6560083c (git): [rubygems/rubygems] Normalize file existence helpers usage
- https://github.com/rubygems/rubygems/commit/a61cc97cd4
-
11:48 PM Revision 7e3d271f (git): [rubygems/rubygems] Install the best matching gem for the current platform in gem install
- Instead of picking essentially a random matching platform
Signed-off-by: Samuel Giddins <segiddins@segiddins.me>
https://github.com/rubygems/rubygems/commit/3727096297 - 11:48 PM Revision b5beb198 (git): [rubygems/rubygems] Validate dependencies when doing bundle install
- https://github.com/rubygems/rubygems/commit/b0983f392f
-
08:33 PM Feature #21435: Kernel#then_try as a conditional #then
- matheusrich (Matheus Richard) wrote in #note-3:
> I'm sorry, I don't understand the use case, nor how it DRY things up.
> ...
The idea is a) to **reduce cognitive complexity** by removing one trivial branch of `if`/`else` statement or ... -
07:19 PM Feature #21435: Kernel#then_try as a conditional #then
- I'm sorry, I don't understand the use case, nor how it DRY things up.
The given example shaves off 1 character. What is optional doing? What is "optional" referring to? -
02:39 PM Feature #21435: Kernel#then_try as a conditional #then
- nobu (Nobuyoshi Nakada) wrote in #note-1:
> Regarding `respond_to?`, IIRC, isn't ActiveSupport's `try` based on it?
Yes, it would be even simpler with Rails:
```ruby
@record = Record.find(record_id)
.optional { it.try :decorate ... -
08:56 AM Feature #21435: Kernel#then_try as a conditional #then
- I agree that the pattern sometimes appears.
But the name `optional` feels kind of ambiguous or too generic, to me.
Alexander.Senko (Alexander Senko) wrote:
> Reference implementation:
> ...
Regarding `respond_to?`, IIRC, isn't Acti... -
07:30 AM Feature #21435 (Rejected): Kernel#then_try as a conditional #then
- ## What
When chaining, I need sometimes to apply some changes conditionally, like this:
```ruby
@record = Record.find(record_id)
.then { it.respond_to?(:decorate) ? it.decorate : it }
```
It would be great to DRY it a bit:
`... -
07:13 PM Revision 35fc19f5 (git): enumerator.c: Remove unused IDs
-
05:42 PM Revision 0f922edc (git): ZJIT: Support get/set on global variables
- Adds support for code like:
```ruby
$foo
$foo = x
``` -
05:37 PM Revision c54e96d6 (git): Fix RubyVM::Shape.transition_tree
-
05:26 PM Revision bcb4fbe2 (git): Refactor `Enumerator::ArithmeticSequence` to not use ivars
- It's an embedded TypedData, it can much more efficiently store
the references it need without using ivars. - 04:00 PM Revision 585dcfff (git): Fix regular expressions across ractors that match different encodings
- In commit d42b9ffb206, an optimization was introduced that can speed up
Regexp#match by 15% when it matches with strings of different encodings.
This optimization, however, does not work across ractors. To fix this,
we only use the optim... -
12:46 PM Revision bb1a992d (git): [DOC] Fix unclosed markup
-
10:25 AM Revision a21acaee (git): Follow-ups to #13555
-
09:40 AM Bug #21388: make install and bundled gems
- Another idea is that master will install snapshot gems.
https://github.com/ruby/ruby/pull/13574 - 07:30 AM Revision cdeedd5b (git): Fix handling of cancelled blocking operations. (#13570)
-
07:22 AM Misc #20600: @ruby-lang.org has been migrated to Cloudflare
- I did delete your address and add it again.
-
07:21 AM Misc #20600: @ruby-lang.org has been migrated to Cloudflare
- @byroot Thanks.
Your email address seems verified status in Cloudflare dashboard. I also confirmed the forwarded result of some mail at one hour ago.
-
06:47 AM Misc #20600: @ruby-lang.org has been migrated to Cloudflare
- @hsbt it seems I missed this ticket and that my email address is no longer working.
-
06:05 AM Revision 20adae4a (git): Fix up birthtime specs
- There are two different possible messages: unsupported OS/version, and
unsupported filesystem on a supported system. -
02:30 AM Revision 6184793e (git): [DOC] Split building docs for modular GC
-
02:06 AM Revision fb8248b3 (git): Disabled TRAP cache of CodeQL
-
01:03 AM Feature #14915: Deprecate String#crypt
- > even if that removal doesn't happen until Ruby 4.
👀
It's been 6 years, is it worth considering `String#crypt`'s removal again? I'd be happy to update Jeremy's patch and gem (which the docs have recommended using since Ruby 2.6).
...
06/09/2025
-
09:30 PM Bug #21402 (Closed): ruby2_keywords affects methods/procs with post arguments
- I believe this is an oversight. We forgot to consider post arguments during the development of `ruby2_keywords`. I believe we should not allow `ruby2_keywords` on methods/procs with post arguments. Example:
```ruby
def a(*c, **kw) ... -
05:57 PM Revision 837699e1 (git): Take file and line in GC VM locks
- This commit adds file and line to GC VM locking functions for debugging
purposes and adds upper case macros to pass __FILE__ and __LINE__. -
05:12 PM Misc #21385: Namespace: Suggesting a rename
- * Shard - from MMOs - also has the connotation that using this feature carelessly could result in hurting yourself
* Isolator -
05:06 PM Misc #21385: Namespace: Suggesting a rename
- I'd like to throw Sector into the mix.
Namespaces are defined as being "designed to provide separated spaces in a Ruby process, to isolate applications and libraries."
A sector is defined as "an area or portion that is distinct fr... -
04:43 PM Misc #21385: Namespace: Suggesting a rename
- For me "context" means something like `context = binding.eval("self")`, so I can't say I like `Context` very much for this. Actually none of the one-word suggestions sound quite right to me; they're either too generic or too cryptic.
I ... -
11:28 AM Misc #21385: Namespace: Suggesting a rename
- * World
* NamaeSpace (namae is name in Japanese ;-) -
05:06 PM Revision c962735f (git): Add missing write barrier in set_i_initialize_copy
- When we copy the table from one set to another we need to run write
barriers. -
04:34 PM Bug #21401 (Rejected): ObjectSpace can't count Fibers after using a Ractor
- 👋 Hi Robert! This is a known issue. Once a Ractor is started `each_objects` will only return shareable objects. I expect ko1's Ractor-local GC may change this. Closing as rejected in favour of #19387.
-
03:29 PM Bug #21401 (Rejected): ObjectSpace can't count Fibers after using a Ractor
- Hi, thanks for all your great work, Ruby crew!
I have a test in my project that uses `ObjectSpace.each_object(Fiber).count` to see how many Fibers have been started by my code. This test started failing when I added other tests using ... -
04:03 PM Revision 4b80f56f (git): Update a step name [ci skip]
-
02:41 PM Revision 698cf146 (git): Fetch only necessary commits of bundled gems
-
02:41 PM Revision 3b17ff24 (git): Reuse fetch-bundled_gems.rb
-
02:38 PM Revision f9966b9b (git): Get rid of `gen_fields_tbl.fields_count`
- This data is redundant because the shape already contains both the
length and capacity of the object's fields.
So it both waste space and create the possibility of a desync between
the two.
We also do not need to initialize everything ... -
01:41 PM Revision e210a70e (git): [ruby/prism] Fix typo in visitor example code
- https://github.com/ruby/prism/commit/5aa963f8e6
-
01:36 PM Revision b8922a8d (git): ZJIT: Parse opt_regexpmatch2 into HIR
-
01:36 PM Revision ec1244cf (git): ZJIT: Parse opt_not into HIR
-
01:36 PM Revision 038087ad (git): ZJIT: Parse opt_or into HIR
-
01:36 PM Revision 1c43f7e9 (git): ZJIT: Parse opt_and into HIR
-
01:36 PM Revision 4a2480e7 (git): ZJIT: Parse opt_succ into HIR
-
01:36 PM Revision 9865aa94 (git): ZJIT: Parse opt_empty_p into HIR
-
12:22 PM Revision 96fdaf2e (git): Fix build on alpine with statx change
- Since https://github.com/ruby/ruby/commit/18a036a6133bd141dfc25cd48ced9a2b78826af6 building on alpine fails
because usage of `__u32`, which is not portable.
> file.c: In function 'rb_stat_new':
> ...
> # define CP_32(m) .stx_ ## m = (... -
11:03 AM Feature #21219 (Closed): `Object#inspect` accept a list of instance variables to display
- Applied in changeset commit:git|f4135feafc558111c7388b823a64652e09999161.
----------
[Feature #21219] Selective inspect of instance variables
Make Kernel#inspect ask which instance variables should be dumped by
the result of `#instance... -
07:25 AM Revision f4135fea (git): [Feature #21219] Selective inspect of instance variables
- Make Kernel#inspect ask which instance variables should be dumped by
the result of `#instance_variables_to_inspect`.
Co-Authored-By: Jean Boussier <byroot@ruby-lang.org> -
07:23 AM Revision e8094943 (git): s/sned/send
-
07:09 AM Bug #21368: Moving objects with finalizer between Ractors crashes
- > Maybe simply marking objects with a finalizer ineligible for moving is more appropiate.
Thanks for checking, I've updated the PR to raise if the object has a finalizer. I'm not sure if we should do the check in like `make_shareable_... -
03:33 AM Bug #21201 (Closed): Performance regression when defining methods inside `refine` blocks
- Applied in changeset commit:git|c8ddc0a843074811b200673a2019fbe4b50bb890.
----------
Optimize callcache invalidation for refinements
Fixes [Bug #21201]
This change addresses a performance regression where defining methods
inside `refi... -
03:33 AM Revision c8ddc0a8 (git): Optimize callcache invalidation for refinements
- Fixes [Bug #21201]
This change addresses a performance regression where defining methods
inside `refine` blocks caused severe slowdowns. The issue was due to
`rb_clear_all_refinement_method_cache()` triggering a full object
space scan v...
06/08/2025
-
05:58 PM Feature #20861: Add an environment variable for tuning the default thread quantum
- nateberkopec (Nate Berkopec) wrote in #note-22:
> Just to report back about this feature.
> ...
That's somewhat disappointing! I was also hoping this may be a "quick" fix for improving multi-thread responsiveness, until perhaps some ki... -
06:52 AM Bug #19154: Specify require and autoload guarantees in ractors
- Is constant access synchronized as it is for threads?
If a constant has an autoload set and 7 threads hit it, only one of them autoloads, and the rest block until that autoload has finished. This includes the case in which the winner ...