Activity
From 07/28/2026 to 08/03/2026
Today
-
07:48 AM Bug #19921: TestYJIT#test_bug_19316 test failure
- > but I see that you carry ruby-2.7.0-Initialize-ABRT-hook.patch, which makes the VM use Kernel#require on boot. That might be the source of the interrupt.
I have investigated in depth due to another newer test that uses GC.stress in ... -
07:04 AM Revision 95b02c82 (git): gc/default: make stress GC honor gc_allowed in TRY_WITH_GC
- TRY_WITH_GC guards its retry-GC branch with gc_allowed (which reflects
the current ractor's malloc_gc_disabled, set while a ractor lock is
held), but called objspace_malloc_gc_stress() unconditionally. Under
GC.stress, a malloc inside a... -
06:12 AM Misc #22221: DevMeeting-2026-08-06
- - [Feature #22118] Introduce Basic Bit Operations into String (hasumikin)
- https://bugs.ruby-lang.org/issues/22118#note-6
- Is it OK to have a *temporary* asymmetry where `String#bit_count` doesn't take a bit-order keyword?
... - 05:00 AM Revision 1f48cf8a (git): [ruby/rubygems] Adapt the plugin index to Gem::YAMLSerializer semantics
- The stub serializer dumped an empty hash as a bare "key:" line and loaded
such a line back as an empty hash. Gem::YAMLSerializer dumps it as
"key: {}" and correctly loads a bare key as nil, so index files written
by older Bundler version... -
05:00 AM Revision 3ad19fac (git): [ruby/rubygems] Drop Bundler's stub YAML serializer
- Bundler::YAMLSerializer is no longer referenced anywhere now that Bundler
uses Gem::YAMLSerializer everywhere.
https://github.com/ruby/rubygems/commit/b74a1987db
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> -
05:00 AM Revision f71a863c (git): [ruby/rubygems] Port Bundler's YAML serializer specs to the RubyGems test suite
- The RubyGems test suite already covers almost all of the Bundler
yaml_serializer spec through test_gem_safe_yaml.rb. Port the two missing
cases (URL mapping keys as used by mirror settings, and Psych
interoperability in both directions) ... -
05:00 AM Revision 9f7e05ce (git): [ruby/rubygems] Use RubyGems' YAML serializer in Bundler
- Bundler now uses Gem::YAMLSerializer unconditionally for settings and the
plugin index instead of falling back to its own stub serializer. The
fallback is no longer reachable because the Bundler gem ships a copy of
Gem::YAMLSerializer fo... -
05:00 AM Revision 5f07e13d (git): [ruby/rubygems] Ship RubyGems' YAML serializer in the Bundler gem
- Add lib/rubygems/yaml_serializer.rb to the gem's file list so the Bundler
gem carries its own copy of Gem::YAMLSerializer. This keeps Bundler
self-contained on RubyGems versions that predate it, the same way the
vendored URI and SecureRa... -
05:00 AM Revision 8d75afff (git): [ruby/rubygems] Guard RubyGems' YAML serializer against double loading
- When the same Gem::YAMLSerializer copy is shipped in two gems (RubyGems and
Bundler) and required from different paths, the second load redefines its
constants and emits "already initialized constant" warnings. Add an
idempotent guard at... - 04:47 AM Revision 53b70874 (git): [ruby/rubygems] Remove #private? check from open_private_key and check in Gem::Security.sign
- Remove the OpenSSL::PKey::{RSA,DSA,EC}#private? check in open_private_key. This
makes the code ML-DSA compatible since OpenSSL::PKey::PKey used for ML-DSA
doesn't have #private?.
According to the discussion on <https://github.com/ruby/o... - 04:47 AM Revision 01a05971 (git): [ruby/rubygems] Remove hardcoded key-dependent values from tests
- Because these hardcoded values make the tests fail when recreating the keys.
This is not convenient.
* Remove hardcoded subjectKeyIdentifier value assertions.
* In test_sign, replace assertion with hardcoded value with
PRIVATE_KEY.ver... - 04:47 AM Revision f2740146 (git): [ruby/rubygems] Recreated testing .pem files.
- As I modified logic related to output format in tool/create_certs.rb and
tool/create_encrypted_key.rb at the last commit, I ran these scripts to
recreate the testing .pem files as follows. Now the private .pem files are
PKCS #8 format.
... - 04:47 AM Revision f241c03d (git): [ruby/rubygems] Replace OpenSSL::PKey::{RSA,DSA,EC}#to_pem
- Replace OpenSSL::PKey::{RSA,DSA,EC}#to_pem with
OpenSSL::PKey::{RSA,DSA,EC}#private_to_pem or #public_to_pem.
Continue to use OpenSSL::X509::Certificate#to_pem.
This makes the code ML-DSA compatible since OpenSSL::PKey::PKey used for ML... - 04:47 AM Revision 863175bc (git): [ruby/rubygems] Split Gem::Security.write into write_private_key and write_certificate
- Gem::Security.write managed the following 2 cases.
* pemmable is RSA/DSA/EC private key, an instance of OpenSSL::PKey::{RSA,DSA,EC}
* pemmable is certificate, an instance of OpenSSL::X509::Certificate
There was no case that pemmable wa... -
04:32 AM Revision 568dde7f (git): Add NEWS entry for net-ftp and net-pop removal [Feature #21835]
- Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
04:32 AM Revision f364e197 (git): Link the psych libfyaml NEWS entry to ruby/psych#805
- Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
04:32 AM Revision bc5ce159 (git): Add NEWS entry for experimental libfyaml backend of psych
- Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
04:32 AM Revision b5ae03c5 (git): Add NEWS entry for removed EOL platform support
- Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
04:32 AM Revision bcddad76 (git): Add NEWS entry for lazy loading of error decoration gems [Feature #21951]
- Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
03:32 AM Revision dca45c25 (git): compile.c: pass the new operand ci to the write barrier, not the INSN
- The splat rebuild in compile_massign_lhs passes the arena-allocated INSN
(iobj) to RB_OBJ_WRITTEN (since f2286925f0). iobj is not a heap object,
so the barrier touches the page it happens to land on, which is
undefined. It is harmless ... -
03:26 AM Revision e59558c4 (git): Fix operand in the update_global_event_hooks assertion
- The assertion for change_c_events < 0 compares ruby_vm_c_events_enabled
against -change_iseq_events instead of -change_c_events, so it fires on
a normal case where the iseq-event decrement happens to exceed the
number of enabled C events... - 03:11 AM Revision f622e125 (git): Bump github.com/microsoft/vcpkg from 2026.06.24 to 2026.07.29
- Bumps [github.com/microsoft/vcpkg](https://github.com/microsoft/vcpkg) from 2026.06.24 to 2026.07.29.
- [Release notes](https://github.com/microsoft/vcpkg/releases)
- [Commits](https://github.com/microsoft/vcpkg/compare/master...9e593bb1... -
03:08 AM Revision 6a9a387b (git): [ruby/io-console] [DOC] Prevent RDoc from referencing internal modules
- https://github.com/ruby/io-console/commit/04e3f33df6
-
03:08 AM Revision dcf88474 (git): [ruby/io-console] `IO#tty?` extension is unsupported on Cygwin
- `rb_w32_open_osfhandle` is defined only on mingw/mswin.
https://github.com/ruby/io-console/commit/3043df5241 -
01:12 AM Revision 60c82965 (git): [DOC] Improve docs for GC.start
-
01:00 AM Revision 18225b55 (git): [DOC] Doc for File::absolute_path?
- 12:16 AM Revision 74c2a61a (git): [ruby/rubygems] Update SSL/TLS RSA test/rubygems/*.pem files generated by new create_certs.sh
- Note that previous "openssl ca" commands did output human-readable text + PEM
format for the following files. With new openssl commands, the human readable
texts are removed. This is not a problem.
```
test/rubygems/ca_cert.pem
test/rub...
08/02/2026
-
07:18 PM Revision 7eeb5b63 (git): Remove dead DURING_GC_COULD_MALLOC_REGION_START/END in default.c
-
02:58 PM Revision af233106 (git): [ruby/time] Handle case insensitive match for Time.{iso8601,xmlschema,rfc3339}
- The T and Z in the regular expressions are case insensitive, but
Time.new on Ruby 3.2+ does not support the lowercase versions.
Arguably, lower case t and z shouldn't be allowed, but they were
historically supported. Time.rfc3339 is a ne... -
02:57 PM Revision 67522f63 (git): [ruby/time] Make Time.rfc3339 require minutes in offset
- This is required by RFC 3339 section 5.6, which does not allow for an
offset without a minute.
Fixes https://github.com/ruby/time/pull/73
https://github.com/ruby/time/commit/d9a0d789c5 -
01:16 PM Revision a0c1b4fb (git): Make rb_get_message static
-
12:42 PM Bug #15598: Deadlock on mutual reference of autoloaded constants
- This issue appears to have been corrected at https://github.com/ruby/ruby/commit/6fbc32b5d0da31535cccc0eca1853273313a0b52.
```
$ (git checkout 6fbc32b5d0da31535cccc0eca1853273313a0b52~; make -j miniruby) >/dev/null && ./miniruby -v b... -
09:00 AM Revision 63c7beb2 (git): [ruby/io-console] Enable tty type checks on TruffleRuby
- Use Ruby-level `Module#prepend` because TruffleRuby declares but does
not export `rb_prepend_module`.
https://github.com/ruby/io-console/commit/3708c0ce8a -
09:00 AM Revision 12ce4464 (git): [ruby/io-console] Treat nil as the default tty type
- Allow the default tty check to be combined with platform-specific tty types.
https://github.com/ruby/io-console/commit/e307d61226 -
09:00 AM Revision d1bfedce (git): [ruby/io-console] Accept multiple mode arguments
- https://github.com/ruby/io-console/commit/d140425f9f
-
09:00 AM Revision f4075968 (git): [ruby/io-console] [DOC] IO.tty? optional argument
- https://github.com/ruby/io-console/commit/f06f2d9784
-
09:00 AM Revision 93c3a6bc (git): [ruby/io-console] Support `tty?(:any)` on any platform
- https://github.com/ruby/io-console/commit/47dcadc644
-
09:00 AM Revision 6c86149a (git): [ruby/io-console] Do nothing on old TruffleRuby
- https://github.com/ruby/io-console/commit/27754105c7
-
09:00 AM Revision b53d7e55 (git): [ruby/io-console] Win32: ttyname will not be used
- https://github.com/ruby/io-console/commit/28cdf86e81
-
09:00 AM Revision 105878ec (git): [ruby/io-console] Rename the internal term "wintty" as "platform"
- https://github.com/ruby/io-console/commit/4cfaca6ad6
-
09:00 AM Revision 1aa7f893 (git): [ruby/io-console] Extend `IO#tty?` for cygwin/msys terminals
- https://github.com/ruby/io-console/commit/989ee71140
- 05:15 AM Revision 3ac5ce97 (git): [ruby/time] Require offset when parsing RFC3339
- RFC3339 requires a Z designator or explicit numeric offset. Reject offset-less timestamps instead of passing them to Time.new, which interprets them in local time.
https://github.com/ruby/time/commit/98bd588fd4 -
03:41 AM Revision 79fa2bcf (git): Add `rb_prepend_module` C API spec
- Cover the public C API so missing implementations are detected.
-
01:59 AM Revision 62eaaae3 (git): [ruby/spec] Use ENVSpecs.encoding for ENV key encoding specs
- ENV strings are always UTF-8 on Windows, while Encoding.find('locale')
follows the console code page, so these two specs failed under cp932.
The other ENV specs already go through ENVSpecs.encoding.
Co-Authored-By: Claude Opus 5 <norepl... -
12:23 AM Revision 7a18459c (git): Fix RUBY_TYPED_FROZEN_SHAREABLE_NO_REC
- An UnboundMethod does not refer to any mutable children, so it should be
shareable when frozen. The documentation for RUBY_TYPED_FROZEN_SHAREABLE_NO_REC
states:
Similar to RUBY_TYPED_FROZEN_SHAREABLE, but doesn't make shareable
... -
12:22 AM Revision d4394964 (git): [DOC] Class doc for Pathname
08/01/2026
-
09:56 PM Revision e281a01b (git): Tell GitHub that `*.inc` files are autogenerated [ci skip]
-
06:20 PM Revision f8d62cdb (git): [ruby/prism] Encoding leaking
- Fixed encoding was leaking around elements because it wasn't being
cleared around elements that had only a single token.
https://github.com/ruby/prism/commit/03bde59c40 -
05:49 PM Revision bfb3b4ea (git): Fix flaky test_clock_gettime_unit for slow Rubies
- If the test takes over 1 second, it will fail because the difference
between t0 and t1 will be over 1 second. If we update t0 on every iteration,
it should make it less flaky because each iteration will need to run in
less than 1 second.... -
05:49 PM Revision e714ff85 (git): [DOC] Correct doc for File#truncate
-
05:48 PM Revision 027e3931 (git): Pathname harmonize doc (#18155)
-
05:47 PM Revision 96f8cfd3 (git): [DOC] Fix formatting in two places (#18154)
-
05:46 PM Revision 5d610c62 (git): [DOC] Doc for Pathname#open
-
05:45 PM Revision 387a69e8 (git): [DOC] Doc for Pathname#fnmatch?
-
05:45 PM Revision b4a41d40 (git): [DOC] Doc for Pathname#dirname
-
05:43 PM Revision 8d32043a (git): [DOC] Doc for Pathname#file?
-
05:42 PM Revision 7d6828a3 (git): [DOC] What's Here for Pathname
-
11:40 AM Revision 395f8b92 (git): [ruby/prism] Bound the leading-zero skip in pm_integer_parse
- The PM_INTEGER_BASE_DEFAULT branch skips leading zeros without checking
`end`, so it reads one byte past the range for an all-zero input.
pm_float_node_rational_create() reaches it: it allocates `length` bytes
for the mantissa, writes o... - 08:07 AM Revision 34f041ca (git): Silence debugger availability probes in EnvUtil
- `EnvUtil::Debugger.search` runs each debugger to test whether it is
usable, and the probe output goes straight to the test output. On
Windows, the lldb bundled with Visual Studio BuildTools fails to
delay-load python311.dll and dumps an ... -
07:32 AM Revision 12c1ddef (git): [ruby/stringio] Fix thread safety of strio_free
- (https://github.com/ruby/stringio/pull/223)
Follow up to #222
This refcount previously wasn't thread safe (and shouldn't have been
declared `RUBY_TYPED_THREAD_SAFE_FREE`), but it's easy enough to fix
using ruby/atomic.h (Ruby 3.0+)
ht... -
07:25 AM Revision 48bf7981 (git): [ruby/ipaddr] Follow up on #114: update tests for `multicast?` and `link_local_multicast?`
- https://github.com/ruby/ipaddr/commit/4c5bf4f79a
- 02:27 AM Revision aab76676 (git): Bump the jit group across 1 directory with 2 updates
- Bumps the jit group with 2 updates in the /zjit directory: [libc](https://github.com/rust-lang/libc) and [rand](https://github.com/rust-random/rand).
Updates `libc` from 0.2.180 to 0.2.189
- [Release notes](https://github.com/rust-lang... -
12:12 AM Revision 384c0fd8 (git): ZJIT: Import hir in codegen.rs (#18134)
07/31/2026
-
09:51 PM Revision 3a409091 (git): [ruby/mmtk] Fix GC.start for disabled GC
- https://github.com/ruby/mmtk/commit/932d7ce62a
-
09:51 PM Revision a08e8d94 (git): [ruby/mmtk] Fix renamed on_pause_start/end functions
- https://github.com/ruby/mmtk/commit/458bb5b843
-
09:51 PM Revision ccc182fe (git): [ruby/mmtk] Let MMTk handle enabling/disabling collection
- https://github.com/ruby/mmtk/commit/ab9c69b2c9
-
09:51 PM Revision 5a1a52a6 (git): [ruby/mmtk] Bump mmtk-core
- https://github.com/ruby/mmtk/commit/4550e4a5ae
- 07:23 PM Revision 4ac0baa7 (git): ZJIT: Reserve space in new_insns
- We know the output of the pass will be roughly the same size as the
input of the pass, so don't start from scratch with an empty vec that
will require multiple re-allocations. - 07:23 PM Revision a89e3b15 (git): ZJIT: Remove some uses of find() in codegen
- 07:23 PM Revision 7d9cd30b (git): ZJIT: Don't use find() in remove_redundant_patch_points
- Cuts pass time from 65ms to 35ms on lobsters.
- 07:23 PM Revision dead5c71 (git): ZJIT: Don't use find() in clean_cfg
- Cuts pass time from 68ms to 63ms on lobsters.
- 07:23 PM Revision dee83948 (git): ZJIT: Don't use find() in optimize_load_store
- Cut pass time from ~80ms to ~50ms on lobsters.
- 07:23 PM Revision da1b4f75 (git): ZJIT: Don't use find() in convert_no_profile_sends
- Cut strength reduce time from ~200ms to ~180ms on lobsters.
- 07:23 PM Revision dc76e876 (git): ZJIT: Don't use find() in fold_constants
- Cut constant folding time from ~70ms to ~40ms on lobsters.
-
06:24 PM Bug #22223 (Open): Socket.tcp with connect_timeout returns a phantom "connected" socket for a refused connection on macOS 27 (kernel answers EISCONN on connect retry; SO_ERROR never consulted)
- ## Summary
On macOS 27.0 (beta, build 26A5388g, arm64 — M5), `Socket.tcp(host, port, connect_timeout: X)` returns a socket object instead of raising `Errno::ECONNREFUSED` when nothing is listening on the port. The returned socket is n... -
03:41 PM Misc #22221: DevMeeting-2026-08-06
- * [Feature #22068] Adding post-quantum cryptography (PQC) support across Ruby standard libraries (jaruga)
* I explain the feature with my motivations, and answer questions from other developers.
* I want to share how to proceed for p... -
02:43 PM Misc #22221: DevMeeting-2026-08-06
- * [Bug #22197] Backtraces show methods which do not exist (eregon)
* As the title says, backtraces sometimes list methods which do not exist, because of mixing definition name with run-time owner (`Method#owner`).
* Since we print fi... -
02:42 PM Misc #22221: DevMeeting-2026-08-06
- * [Feature #22212] Add Thread::Backtrace::Location#source_range (eregon)
* Proposes a portable API returning a `Ruby::SourceRange` for an exception's `backtrace_locations` or for `caller_locations`.
* This gives tools stable start/... -
07:24 AM Misc #22221: DevMeeting-2026-08-06
- * [Feature #22213] Allow no-argument and chained calls of Proc#refined (shugo)
* A no-argument call returns the receiver itself, and a chained call returns a Proc with additional refinements: `prc.refined(*ms).refined(*ns)` is equivale... -
06:44 AM Misc #22221 (Open): DevMeeting-2026-08-06
- # The next dev meeting
**Date: 2026/08/06 13:00-17:00** (JST)
Log: *TBD*
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bug tracker.
- Dev meeting is a place we can ask Matz, nobu, nurse and o... -
02:21 PM Bug #21682: The result of IO#pos is inconsistent after using IO#ungetc.
- I haven't heard anything.
There was no response to the PR either, but if I can point out one thing, I think the CI failure was accidental.
I may be overthinking this, but by limiting the scope of this issue too much, we might be miss... -
02:01 PM Feature #22222: Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
- I guess one concrete issue here with using `rb_str_new_static()` is the mmaped file/stack buffer will be freed soon after the `RubyVM::InstructionSequence.load_from_binary(String)` call, but that String object might live longer, there is...
-
01:08 PM Feature #22222: Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
- Yes, I get that, but my point is that these constraints are very hard to ensure in my case.
-
11:36 AM Feature #22222: Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
- The only requirements for `rb_str_new_static` are that the caller is responsible for freeing the allocated memory, and that the memory is not freed while the object is still in existence.
You can think of it as requiring the same level ... -
08:43 AM Feature #22222: Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
- @nobu yes I know, but as you mention, it's meant to point at static C strings, not mmaped files or stack buffers, so it doesn't work for Bootsnap.
-
08:31 AM Feature #22222: Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
- `rb_str_new_static` does not `memcpy` (of course you have the responsibility to keep the `String`).
-
08:08 AM Feature #22222 (Open): Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
- Currently the only API to deserialize instruction sequence is `RubyVM::InstructionSequence.load_from_binary(String)`.
It works fine, but isn't ideal for gems like bootsnap, as it needs to allocate a fairly large string and `memcpy` in... - 01:38 PM Revision 805d510e (git): Lock-free rb_sym2id/rb_sym2str
- This shouldn't slow anything down on x86 (plain load vs acquire load). A slight
slowdown for ARM is expected.
The new top-level id_entry_dir is replacing the hidden array and is RCU'd under
a lock.
Co-authored-by: Matt Valentine-House ... - 01:35 PM Revision bb235bdd (git): Avoid build-time race condition when cross-compiling from a source tarball
- Since commit 66529eef883c ("Force to update revision.h when commits
differ"), the Makefile rule for $(REVISION_H) is always marked as PHONY
when building from a source tarball. This has no benefit,
file2lastrev.rb will just print a warni... -
01:31 PM Revision 3f8fe449 (git): Remove useless if statement around RUBY_GC_HEAP_FREE_SLOTS
-
01:20 PM Revision db1a7e06 (git): Ignore linear performance tests in rexml
- Recently, these tests have frequently timed out during the stage of
constructing the input string, before calling `REXML::Document.new`.
This is likely caused by memory exhaustion due to the recently
introduced parallel tests. -
01:17 PM Revision eb363c84 (git): [ruby/prism] Fix statuc literals rehashing on resize
- https://github.com/ruby/prism/commit/ef818e32c9
-
01:03 PM Revision aa63c432 (git): [ruby/prism] Fix up duplicate key warning
- When there are strings that resolve to the same bytes but resolve
to different encodings, we need to not warn.
https://github.com/ruby/prism/commit/b776e364cd -
09:24 AM Feature #9779: Add Module#descendants
- I've added specs to the pull request: https://github.com/ruby/ruby/pull/17807/changes/ed81db60a57ec586d4c5300282bc8c5ebcaa0e1e
-
07:54 AM Feature #21987 (Rejected): Assume `chdir(2)` isn't called and cache `rb_dir_getwd_ospath()`
- 07:42 AM Revision 630f2b70 (git): [DOC] Update bundled gems list at 6203e5c368a821d593a871844a5644
-
06:44 AM Misc #22107 (Closed): DevMeeting-2026-07-09
- 06:26 AM Revision 6203e5c3 (git): Update default gems list at 5cee58911273a3298ab8f68520dcf9 [ci skip]
-
06:25 AM Revision 5cee5891 (git): [ruby/json] Release 2.21.2
- https://github.com/ruby/json/commit/5a32e4367c
-
06:23 AM Revision 1d7e8051 (git): [ruby/io-console] [DOC] Ruby C API availability
- Record the Ruby releases that made the checked C APIs available.
https://github.com/ruby/io-console/commit/f098c8b5ff -
06:23 AM Revision 3914aded (git): [ruby/io-console] Remove stale checks
- * rb_io_get_write_io: 1.9.3
* rb_syserr_fail_str: 2.0.0 and backported to 1.9.3
https://github.com/ruby/io-console/commit/60c81c6162 -
06:22 AM Revision 8a443116 (git): [ruby/json] Also don't compute ResumableParser cursor position for warning
- Same reason we don't for errors, since the resumable parser doesn't
keep the entire stream in memory, it can't always be accurate, and
the buffer may even have been freed.
Anyway, for a long lived stream, it wouldn't be very helpful eit... - 03:41 AM Revision 7ed9c82d (git): Only clear $~ once when #match "fails" (#18101)
- ```
❯ ips --ruby ruby-dev --ruby ruby-master -e '"".match(/a/)'
ruby 4.1.0dev (2026-07-28T19:56:48Z master 120c8fa88c) +PRISM [arm64-darwin25]
"".match(/a/): 23.493M i/s (± 1.1%)
ruby 4.1.0dev (2026-07-28T19:56:48Z master 120c... -
03:18 AM Bug #15980: Coverage shows while/until after raise if/unless as uncovered line
- Fixed in https://github.com/ruby/ruby/pull/18122
-
02:22 AM Revision c1bf73e7 (git): Fix unused variable warning in test_thread_timer_and_interrupt
- `err` became unused when the flaky assertion was removed in
c05f55416f1, and warns on every rubyci build.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> - 02:06 AM Revision 8f372fcb (git): Re-bootstrap vcpkg after updating its registry
- microsoft/vcpkg bumped `scripts/vcpkg-tools.json` to schema version 2,
which the vcpkg.exe bundled in the runner images cannot parse, so every
Windows job started failing at `vcpkg install` right after the `git pull`.
Co-Authored-By: Cl... - 01:40 AM Revision 3ebc7895 (git): Re-bootstrap vcpkg after updating its registry
- microsoft/vcpkg bumped `scripts/vcpkg-tools.json` to schema version 2,
which the vcpkg.exe bundled in the runner images cannot parse, so every
Windows job started failing at `vcpkg install` right after the `git pull`.
Co-Authored-By: Cl... -
12:13 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- I've wanted to fix this for a while. We should do what TruffleRuby does and others have described. Of the options ko1 proposed, I think with both these tables need to hold weak references (making them essentially the same thing) otherwis...
- 12:13 AM Revision 825c4579 (git): ZJIT: Add test coverage for the `ArrayMax` and `ArrayMin` (#18030)
- - Codegen tests for `ArrayMin` (mirroring the existing `ArrayMax` ones)
- HIR opt tests asserting that `ArrayMax` / `ArrayMin` are emitted
- An Array#min redefinition test mirroring `test_dont_optimize_array_max_if_redefined` - 12:12 AM Revision 9bff5cc2 (git): ZJIT: Add coverage test for polymorphic ISEQ dispatch at one call site (#17467)
- A monomorphic-specialized call site (warmed up with class A) must still
return correct results when a second class B with its own ISEQ method of
the same name flows through it. The receiver type guard should send the B
receiver to the si...
07/30/2026
-
11:40 PM Bug #22219: IO::Buffer#free, #resize and #transfer should raise FrozenError if the receiver is frozen
- ### PR
for `IO::Buffer#free` and `IO::Buffer#resize`: https://github.com/ruby/ruby/pull/18129
for `IO::Buffer#transfer`: https://github.com/ruby/ruby/pull/18130 -
03:24 PM Bug #22219 (Open): IO::Buffer#free, #resize and #transfer should raise FrozenError if the receiver is frozen
- Currently `IO::Buffer#free`, `#resize` and `#transfer` can be called even if the receiver is frozen. All three release, reallocate or hand away the memory the buffer references, so they change the state of the buffer. Therefore it seems ...
-
10:29 PM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- > in each Proc or binding
A small precision here which might be helpful is svars are only stored on method frames, never on block frames. So it's per method frame and Proc are unaffected (they just access the encapsulating method fram... -
09:21 PM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- To give a bit more details, TruffleRuby then always reserves one slot in the frame for svar's, and lazily allocate the storage for them on first access:
https://github.com/truffleruby/truffleruby/blob/33598a0447c4cd0b56eb56b80e81b094ea5... -
09:16 PM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- TruffleRuby already make these always thread-local, and there has been 0 compatibility issue reported about that.
It's basically option (1) mentioned by @ko1, i.e. a dictionary/ThreadLocal object on the frame, but with the optimization ... -
03:30 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- I agree that the current behavior is a Ractor bug. In fact, this is one of the blockers preventing us from removing the "experimental" warning from Ractor. These variables should be thread-local.
The main implementation challenge is h... -
02:07 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- > ethically detectable
statically detectable -
02:06 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- Oh, it's also worth pointing out that there are Regexp method equivalents of each of the special backref variables (`last_match` etc). They are less commonly used, I believe, and usually called directly on Regexp, but that's another exam...
-
02:03 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- > it's easy to know if a method access these special variables (getspecial instruction),
That is not sufficient. There are methods that read *and* write these special variables without the user ever accessing the literal globals.
... - 10:10 PM Revision 3e9592ec (git): ZJIT: Assert that we never profile Qundef (#18128)
- 09:48 PM Revision 0e5f3094 (git): Fix bignum power_cache across Ractors (used by big2str/str2big)
- This global cache was unsynchronized and across Ractors that is racy and
leads to undefined behavior. The repro code included as a regression test
was crashing with SEGV or producing bad results from bignum#to_s before this
fix. -
09:42 PM Bug #22220: Performance regression when requiring `aws-sdk-ec2` in Ruby 4.0.6
- Seems caused by [1f473ed633a364f8c89b69a76adfb22a4bf21f96](https://github.com/ruby/ruby/commit/1f473ed633a364f8c89b69a76adfb22a4bf21f96)
-
06:25 PM Bug #22220 (Open): Performance regression when requiring `aws-sdk-ec2` in Ruby 4.0.6
- Ruby 4.0.6 introduced a large performance regression when loading `aws-sdk-ec2` (~30s on my machine, compared to <1s for ruby 4.0.5). Script to reproduce:
```
for v in 4.0.5 4.0.6; do
docker run --rm ruby:$v-slim bash -c '
ge... -
08:09 PM Feature #22068: Adding post-quantum cryptography (PQC) support across Ruby standard libraries
- @seki or other ruby/drb maintainers, I opened the issue ticket <https://github.com/ruby/drb/issues/52>, sending the PR. The PR link is on the issue ticket. I would appreciate your reviews for the PR.
-
08:06 PM Revision f2ff7246 (git): ZJIT: Run doc tests on CI
- So code in documentation are tested.
-
08:06 PM Revision 41794563 (git): ZJIT: Simplify way to disable coercion for `PtrPrintMap`
-
06:53 PM Revision d53ddbe2 (git): Make rb_internal_thread_event_hooks_rw_lock_atfork static
- 06:22 PM Revision daab4208 (git): ZJIT: Simplify and optimize ProfiledType::new (#18126)
- Reduce the number of branches and only look up the shape once instead of
twice.
Brings a profiling-heavy run (profiling for 1000 calls) of lobsters from
700ms to 660ms profile time. Unfortunately getting the current time for
stats is st... - 06:09 PM Revision 03e2f86c (git): ZJIT: Profile caller splat length distributions (#17967)
- * ZJIT: Profile caller splat length distributions
Related to: https://github.com/Shopify/ruby/issues/1004
Before specializing sends with caller splats, collect the distribution of
caller splat array lengths.
The splat length determine... - 05:49 PM Revision 762fa2fc (git): Increase SYNTAX_SUGGEST_TIMEOUT for ppc64le/s390x from 10 to 60 seconds
- The "does not timeout on massive files" integration test in
spec/syntax_suggest/integration/syntax_suggest_spec.rb is only activated
when SYNTAX_SUGGEST_TIMEOUT is set. The CI workflow sets it to 10 for
ppc64le/s390x runners, but this is... -
01:04 PM Revision a2ddafb4 (git): [ruby/mmtk] Add obj_need_obj_free_p
- We don't need to call obj_free on certain types of objects anymore including
T_FLOAT, T_RATIONAL, T_COMPLEX, and T_OBJECT. It makes freeing those objects
faster.
Benchmark:
i = 0
while i < 10_000_000
Object.new
i +=... -
11:58 AM Bug #21682: The result of IO#pos is inconsistent after using IO#ungetc.
- Has there been any progress behinds the scenes on this?
-
10:37 AM
Bug #22218 (Closed): Line TracePoint misses executed loop condition after a guard
- Applied in changeset commit:git|79e6d37b5569be4c772e9d41e8a5447e82c09683.
----------
Preserve line events across jump optimization. (#18122)
[Bug #22218] -
10:14 AM Bug #22218 (Closed): Line TracePoint misses executed loop condition after a guard
- `TracePoint.new(:line)` can miss the line event for an executed loop condition when the loop follows a conditional guard.
This is related to [Bug #15980](https://bugs.ruby-lang.org/issues/15980), which fixed the same control-flow prob... - 10:37 AM Revision 79e6d37b (git): Preserve line events across jump optimization. (#18122)
- [Bug #22218]
- 09:04 AM Revision f275e95f (git): Re-bootstrap vcpkg after updating its registry
- microsoft/vcpkg bumped `scripts/vcpkg-tools.json` to schema version 2,
which the vcpkg.exe bundled in the runner images cannot parse, so every
Windows job started failing at `vcpkg install` right after the `git pull`.
Co-Authored-By: Cl... -
08:50 AM Revision c692cc8f (git): [ruby/rubygems] Point bundler.io URLs at guides.rubygems.org
- bundler.io has been wound down and its content now lives on RubyGems Guides: the Bundler man pages under /command-reference/, the Gemfile reference at /gemfile/, and the remaining guides as individual pages. The redirects still work, but...
- 07:48 AM Revision c418600f (git): [DOC] Update bundled gems list at 019357d131b819847f7c0094dc5a5d
- 07:38 AM Revision 019357d1 (git): Update bundled gems list as of 2026-07-30
-
06:36 AM Revision acc86e6d (git): [ruby/rubygems] Warn when duplicate source declarations conflict on cooldown
- Declaring the same source URL twice with different cooldown values
silently drops one of them, because duplicate declarations are deduped
into a single source and cooldown applies per server, not per gem.
The reporter of #9723 used a sec... - 06:24 AM Revision 553f19d9 (git): [DOC] Fix the $? description of Process::Status.wait (#18109)
- The documentation says that Process::Status.wait sets the thread-local
variable $? when there are child processes, but it never does.
rb_process_status_wait does not call rb_last_status_set, and $? is left
untouched:
$? ... -
05:42 AM Revision e15f28c5 (git): [ruby/rubygems] Redact URI userinfo from settings names in Bundler User-Agent
- The `options/` segment of Bundler's User-Agent is built from
`Bundler.settings.all`, which returns only setting names. Mirror
settings, however, embed a URI in the key itself
(`mirror.http://user:token@host/`), so the URI userinfo become... -
05:42 AM Revision 145a4bba (git): [ruby/rubygems] Validate gem name before building compact index cache paths
- Bundler::CompactIndexClient::Cache#info_path and #info_etag_path join
the gem name into the cache directory without validation. The name comes
from the remote index, either versions lines or transitive dependency
names in info files, so ... -
04:07 AM Bug #22217 (Open): Segmentation fault when resuming execution with `Coverage.start` and ruby/debug
- Resuming execution from `ruby/debug` while coverage collection is enabled via `Coverage.start` can cause a segmentation fault and crash the Ruby process.
The crash is intermittent, but reproduces frequently using the same steps. I con...
07/29/2026
- 11:49 PM Revision 94933bfe (git): Don't label bindings-only changes with jit label (#18116)
-
11:24 PM Revision 8495d0ec (git): win32/rm.bat: report removal failures via exit code
- The `error` variable was set on failure but never reached the exit
code, so removal failures such as a locked DLL left `nmake clean`
green while stale artifacts remained. Exit with `error` at the end.
Since `rd /s` does not set ERRORLEV... -
11:23 PM Revision ba576930 (git): [ruby/rubygems] Fail `bundle check` when frozen mode needs lockfile changes
- `BUNDLE_FROZEN=1 bundle check` reported that dependencies are satisfied and exited 0 even when the lockfile was missing CHECKSUMS entries, because `write_lock` only warns in frozen mode. Run the same frozen validation as `bundle install`...
-
11:03 PM Feature #22212: Add Thread::Backtrace::Location#source_range
- ko1 (Koichi Sasada) wrote in #note-14:
> Just to confirm: the PR's implementation of `Thread::Backtrace::Location#source_range` seems fragile because it reparses the script from the file system.
> ...
Yes, this is intentional to avoid ... -
03:18 PM Feature #22212: Add Thread::Backtrace::Location#source_range
- Just to confirm: the PR's implementation of `Thread::Backtrace::Location#source_range` seems fragile because it reparses the script from the file system.
Is this behavior intentional?
I understand the implementation and its current lim... -
08:59 PM Revision e67f0251 (git): [ruby/prism] Pinned back references and pinned numbered references are not allowed
- https://github.com/ruby/prism/commit/35c587b1c2
-
08:44 PM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- > But the problem still stands: you can't know just by looking at Ruby code (sans type hints or JIT profiles) whether a given method might access the caller's frame in "special" ways.
I don't want to derail the discussion too much, bu... -
07:45 PM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- > I've always considered this a bug. If possible they should definitely be scoped to the current thread (or rather fiber?).
I prototyped this for JRuby some years ago, and I believe Rubinius (and perhaps TruffleRuby) implemented it this... -
06:51 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
- > Updates to backref and lastline are visible across threads and already can lead to concurrency issues even on CRuby.
I've always considered this a bug. If possible they should definitely be scoped to the current thread (or rather fi... -
08:06 PM Revision a69bb3ab (git): Implement GC fast path for gen_new_range
- Implements GC fast path for newrange instruction when we do not need to
call <=> method (when either endpoint is nil or both are fixnums).
Benchmark:
def run(max)
i = 0
while i < max
a = i..max
i += 1
... -
07:20 PM Revision 8ebf16fa (git): id_table.c: keep managed id table live across foreach/dup callbacks
- rb_managed_id_table stores its rb_id_table body as embedded data
(RUBY_TYPED_EMBEDDABLE), so managed_id_table_ptr returns a pointer
interior to the wrapper object. rb_managed_id_table_foreach,
_foreach_values, and _dup hand that interio... -
07:02 PM Revision 1cbb5537 (git): [ruby/mmtk] Skip tests in TestStruct
- https://github.com/ruby/mmtk/commit/62fde9fc52
-
07:02 PM Revision e0e96393 (git): [ruby/mmtk] Skip tests in Test_StringCapacity
- https://github.com/ruby/mmtk/commit/5767c1d970
-
07:02 PM Revision d84e57fb (git): [ruby/mmtk] Implement large object space
- https://github.com/ruby/mmtk/commit/b458664cb1
-
07:02 PM Revision 3ae87b77 (git): [ruby/mmtk] Remove MMTK_MAX_OBJ_SIZE
- https://github.com/ruby/mmtk/commit/2f925b352a
-
06:10 PM Revision 20449aa1 (git): ZJIT: Use TooManyArgsForLir reason for oversized direct block calls
-
06:10 PM Revision 6ea07a48 (git): Fix a comment about too many args
- Co-authored-by: Kevin Menard <kevin@nirvdrum.com>
-
06:10 PM Revision 8b2bd6a5 (git): ZJIT: Add HIR opt tests for oversized direct block calls
-
06:10 PM Revision 3731d665 (git): ZJIT: Reject direct block calls with too many args for LIR
- The invokeblock fast path (InvokeBlockIseqDirect) passes captured self
plus each block argument in C argument registers, but
block_call_inlinable_iseq never bounded the argument count. Yielding 6+
arguments to a matching-arity block made... -
06:09 PM Revision 72749d7d (git): ZJIT: Allowlist pointee types in PtrPrintMap::map_ptr
- Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
-
06:09 PM Revision ab191be2 (git): ZJIT: Only accept raw pointers in PtrPrintMap::map_ptr
- Previously map_ptr<T>() took *const T, so a reference like &IseqPtr
silently coerced to *const IseqPtr and mapped the address of the
reference itself instead of the pointer value, which is how the bug
fixed by the previous commit slipped... -
06:09 PM Revision 821af045 (git): ZJIT: Map pointer values instead of temporary addresses in HIR dump
- 06:05 PM Revision 9f6753e6 (git): ZJIT: Use BitSet, not HashSet, for LIR block sets
- No need for hashing in LIR RPO.
- 06:05 PM Revision 4a6e60e6 (git): ZJIT: Rewrite LIR successors function to avoid cloning edges
- We only need the target blocks, not the argument vectors.
-
05:16 PM Revision 5845220c (git): Fix directory mappings for MMTk in sync_default_gems.rb
-
04:34 PM Revision a2cc692d (git): Make Proc#refined's memoized iseq copy and memo shareable
- Proc#refined memoizes {copied_iseq, cref} per source iseq in a
process-global map so the copy can be reused from any Ractor. The
cref's refinements table is already frozen and marked shareable for
that reason, but the copied iseq and th... -
03:03 PM Revision 3ca77abb (git): Drop MMTK_HEAP_MAX in test_oom
- Sync ruby/mmtk@11ea3a437f788fb085a61d1c7d931a9527dc13ba.
-
02:56 PM Revision d6e2feea (git): Return a byte count from ractor_sync_memsize()
- st_table_size() is the number of entries, but ractor_memsize() adds the result to sizeof(rb_ractor_t) as a byte count, so a Ractor was reported as costing one byte per open port. Use st_memsize(), as ractor_selector_memsize() in this fil...
- 02:42 PM Revision 72cf6fff (git): ZJIT: Make UnboxFixnum effectless (#18103)
- It's just an integer right shift.
- 02:09 PM Revision a32dded0 (git): ZJIT: Iterate over state in SetLocal (#18102)
- We added state to `SetLocal` but didn't change `for_each_operand_impl`.
-
10:52 AM Revision 6c2b1174 (git): Clarify strict-prototypes workaround [ci skip]
- Document the affected Clang and Autoconf versions.
-
08:50 AM Bug #22211: Fiber::Scheduler stalls on Ractor::Port.receive
- Interesting!
I've been playing with workarounds in Ruby-land where I have up to one extra thread per Ractor, which executes `Ractor.select(coordinating_port, *ports)` with a backlog of waiting fibers per port, and then uses a `Conditi... -
07:48 AM Revision bb593378 (git): [ruby/json] Improve max_nesting documentation
- https://github.com/ruby/json/commit/5499aa54a4
-
05:06 AM Revision b4e40f78 (git): [ruby/rubygems] Document Bundler checksum behavior for default gems
- Signed-off-by: Patrick Linnane <patrick@linnane.io>
https://github.com/ruby/rubygems/commit/56a82a2573 -
04:44 AM Revision 0de0afb2 (git): [ruby/rubygems] Assert on the lockfile in the cooldown bypass control spec
- On x86_64-linux hosts `--cooldown 0` resolves to the platform-specific
build, so `include_gems` failed expecting the ruby platform.
https://github.com/ruby/rubygems/commit/d7be25160e
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> -
04:44 AM Revision e86de2aa (git): [ruby/rubygems] Pin cross-platform cooldown exclusion in an e2e spec
- Exclusion is keyed on [name, version] and deliberately ignores
platform, so pushing a fresh platform-specific build under an
already-ripe version number cannot slip new code past the cooldown.
No spec covered that behavior.
https://gith... -
04:44 AM Revision 011591a0 (git): [ruby/rubygems] Add --cooldown flag to bundle lock and bundle cache
- Both commands resolve, but only install, update, add and outdated
accepted the flag, so the resolver's failure hint suggesting
`--cooldown 0` was not actionable on `bundle lock --update`.
https://github.com/ruby/rubygems/commit/2c4f4f39... -
02:42 AM Revision 2d616a9b (git): Remove unused autoload table copier
- Remove the copier left unused when class fields cloning replaced raw
table copying in commit 3abdd4241fd5. - 02:36 AM Revision dd152821 (git): Bump taiki-e/install-action
- Bumps the github-actions group with 1 update in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `taiki-e/install-action` from 2.85.2 to 2.85.3
- [Release notes](https://github.com/taiki-e/i... -
02:36 AM Feature #22213: Allow no-argument and chained calls of Proc#refined
- I've updated the implementation to defer the copy of the block until the returned Proc is first called: https://github.com/ruby/ruby/pull/18052/changes/d4a6282429f59f45f2c5f482618cdcaf63ff0df4
A Proc that is never called is never copied,... - 12:57 AM Revision d13a49fc (git): ZJIT: Fix kwargs handling in invokeblock ifunc specialization (#17971)
- gen_invokeblock_ifunc drops the callinfo and passes argv straight to
rb_vm_yield_with_cfunc, which hardcodes kw_splat = 0, so keyword
arguments lost their keyword-ness. Gate the ifunc specialization on
block_call_inlinable, the same chec...
07/28/2026
-
11:26 PM Revision 2999c81c (git): Fix memory leak in MatchData
- The following script leaks memory:
10.times do
# MatchData#offset allocates an external char_offset buffer
100_000.times.map do
m = /(a)(b)(c)(d)/.match("abcd")
m.offset(0)
m
end
GC.s... -
09:45 PM Bug #22216 (Open): Regexp backref and IO lastline are incompatible with Ractor
- ## Problem
Several Regexp-matching methods currently write (and sometimes read) the implicit "backref" `$~` variable in the local frame (and related variables like `$'`).
Several IO methods read or write the "last line" `$_` variab... -
09:31 PM Revision cf819091 (git): Reapply "ZJIT: Add counters for throw and exception_handler" (#17945) (#18099)
- This reverts commit ff6ac97529962b824d528b4bf32485179bb25805.
- 09:20 PM Revision c05f5541 (git): Remove flaky assertion in test_thread_timer_and_interrupt
- Don't rely on exact timings even if they seem generous enough. This has
failed recently on CI (MacOS-15-intel). -
07:56 PM Revision 120c8fa8 (git): Fix memory leak when sweeping hashes with st_table
- The GC sweep fast path had an inverted condition for hashes in
rb_gc_obj_needs_cleanup_p. Hashes with an st_table needs to be freed.
The following script leaks memory:
10.times do
100_000.times do
# Hashes with more t... -
07:26 PM Revision 7a4de474 (git): [ruby/openssl] pkcs7: fix flaky test test_enveloped
- OpenSSL::PKCS7#decrypt is unreliable when given only a private key and
the PKCS#7 structure contains multiple recipients. It may occasionally
raise an exception or return garbage data. Update the test to avoid
this.
This became much mor... - 06:54 PM Revision 67eb41e0 (git): Fix cross-ractor busy-waiting in vm_once_dispatch
- Use a proper nogvl + native mutex broadcast solution to deal with
cross-ractor thread synchronization. - 06:54 PM Revision 1a12d846 (git): Fix once insn when multiple Ractors race to execute the iseq
- The `once` insn (ex: for interpolated regexp with /o option) should only be
executed once even across Ractors. The `once` value is associated with
the iseq, which is shared across Ractors.
Ideally, waiting threads in other Ractors would... -
06:19 PM Bug #22211: Fiber::Scheduler stalls on Ractor::Port.receive
- The tricky part in integrating the fiber scheduler with `Ractor::Port` `send/receive` is what to do when you want to wakeup (unblock) a fiber on another Ractor. Normally unblocking a fiber is done on the same Ractor and it's done in a co...
-
05:47 PM Revision 3ab7644a (git): Add writebarrier for Array#reverse
- 05:01 PM Revision 438674be (git): ZJIT: Require trivial inline target to end at leave (#18063)
- * ZJIT: Fix trivial inlining for optional argument entries
Use SendDirect's jit_entry_idx when reading the callee bytecode for
trivial inlining, so optional-argument calls inspect the same entry
point that SendDirect selected.
This avo... -
04:31 PM Bug #22214 (Closed): SEGV when struct ractor_port.r is referenced after Ractor::Port.allocate
- Applied in changeset commit:git|d3aee406de6693a06b87d95fdafa258be1ee1681.
----------
Raise TypeError for uninitialized Ractor::Port
Ractor::Port has a public allocator, so Ractor::Port.allocate returns a port whose owner Ractor is stil... -
02:02 PM Bug #22214: SEGV when struct ractor_port.r is referenced after Ractor::Port.allocate
- PR: https://github.com/ruby/ruby/pull/18092
-
01:26 PM Bug #22214 (Closed): SEGV when struct ractor_port.r is referenced after Ractor::Port.allocate
- `Ractor::Port` has a public allocator, so `Ractor::Port.allocate` returns a port whose owner Ractor (`struct ractor_port.r`) is still NULL; only `ractor_port_init()` fills it in. Methods dereference it without a check.
```ruby
Ractor... -
04:31 PM Revision d3aee406 (git): Raise TypeError for uninitialized Ractor::Port
- Ractor::Port has a public allocator, so Ractor::Port.allocate returns a port whose owner Ractor is still NULL; only ractor_port_init() fills it in. The methods dereferenced it unchecked:
Ractor::Port.allocate.closed? # [BUG] Segmentati... -
03:00 PM Feature #22215 (Open): Introduce narrow internal interfaces for bundled extensions
- ## Abstract
Introduce narrow internal interfaces for bundled extensions so that they do not need to depend on VM implementation headers such as `vm_core.h` or thread implementation files such as `thread_pthread.h`.
These interfaces... -
02:57 PM Revision c2473016 (git): Set STR_DUPLICATE_MAX_EMBED_LEN to 256
- I benchmarked various values of STR_DUPLICATE_MAX_EMBED_LEN and the
performance impacts. For String#dup, creating a view is faster until it
is below 256 bytes. Unsurprisingly, if we add modification to the string,
then it is faster to ea... - 12:03 PM Revision 9b76442b (git): [DOC] Fix return value documentation of IO::Buffer#<=> and #hexdump (#18089)
- The call-seq of IO::Buffer#<=> says it returns "true or false", but
rb_io_buffer_compare always returns an integer: -1 or 1 when the sizes
differ, and the result of memcmp as is when the sizes are equal. Since
the value comes straight fr... - 11:11 AM Revision 624075c8 (git): [DOC] Fix the buffer size in the IO::Buffer#& example (#18087)
- The example shows the result as `+4`, but the operation returns a buffer of
the same size as the source, which is 10 bytes here:
$ ruby -e 'p((IO::Buffer.for("1234567890") & IO::Buffer.for("\xFF\x00\x00\xFF")).size)'
10
The res... -
10:51 AM Revision f61f8f04 (git): [ruby/prism] Appease typecheck
- https://github.com/ruby/prism/commit/e25f51b19c
-
10:20 AM Revision 6a0b6ef6 (git): [ruby/prism] Better compatibility for hash string-like symbol keys in parser translator
- There's some special handling in regards to empty symbols and those containing newlines
that should apply here. Makes it produce the correct amount of sym/dsym nodes
https://github.com/ruby/prism/commit/8b567cc403 -
10:19 AM Revision 0728ece0 (git): [ruby/prism] Avoid a quadratic walk when parsing long call chains
- parse_expression_terminator runs after every infix operator and called
pm_block_call_p, which walks the whole receiver chain, even when the
binding power alone already decided the result. Check the binding power
first; pm_block_call_p is... -
08:41 AM Bug #22105: Cannot initialize a WeakRef in a Ractor
- Fix: https://github.com/ruby/weakref/pull/88
-
05:23 AM Revision fdf6dba1 (git): [ruby/rubygems] Regenerate man pages
- https://github.com/ruby/rubygems/commit/6c1bf4b7d1
-
05:23 AM Revision 58cf248b (git): [ruby/rubygems] Link bundle-platform(1) to the PLATFORMS section of gemfile(5)
- The detailed explanation of platforms lives in gemfile(5), but
bundle-platform(1) never pointed readers there.
https://github.com/ruby/rubygems/commit/0af79d82ff -
05:23 AM Revision bbb8e912 (git): [ruby/rubygems] Clarify that Gemfile :path points to unpacked gem sources
- The :path option was misread as a way to install a packaged .gem
file. State explicitly that it expects a directory with the gem's
unpacked source code.
https://github.com/ruby/rubygems/commit/dc7fdaa2a6 -
04:46 AM Bug #18947: Unexpected Errno::ENAMETOOLONG on Windows
- https://github.com/ruby/ruby/pull/18088
-
02:31 AM Bug #18947: Unexpected Errno::ENAMETOOLONG on Windows
- There is another way that does not need the registry key. Go's runtime sets the undocumented `IsLongPathAwareProcess` bit (0x80 at PEB offset 3) at startup, which `RtlAreLongPathsEnabled` reads, so long paths work per-process regardless ...
-
12:15 AM Revision 37fc35ac (git): Compact sets after removal of items for more methods (#18081)
- This changes the following methods to compact the set after removal:
* `^`
* `-`
* `difference`
* `subtract`
* `keep_if`
* `select!`
* `filter!`
[Bug #22210]