Activity
From 05/16/2025 to 05/22/2025
05/22/2025
-
11:44 PM Feature #21359: Introduce `Exception#cause=` for Post-Initialization Assignment
- > Serializing exceptions properly without Marshal is probably quite hard yes, not only about the cause but also the internal backtrace representation, the backtrace_locations objects, other internal state for core exceptions that can't a...
-
08:00 PM Feature #21359: Introduce `Exception#cause=` for Post-Initialization Assignment
- ioquatix (Samuel Williams) wrote in #note-2:
> Yes, in Async, I want to set the cause of an exception before raising it later on a fiber.
#21360 would be enough for that, although you'd need to wrap the exception + cause-to-be in som... -
12:12 PM Feature #21359: Introduce `Exception#cause=` for Post-Initialization Assignment
- Yes, in Async, I want to set the cause of an exception before raising it later on a fiber.
Additionally, serialisation and deserialisation of exceptions is almost impossible without being able to set the cause, e.g. any kind of Ruby RPC. -
10:15 AM Feature #21359: Introduce `Exception#cause=` for Post-Initialization Assignment
- Do you have real-world examples where you would use this, e.g. in gems?
-
08:39 AM Feature #21359 (Assigned): Introduce `Exception#cause=` for Post-Initialization Assignment
- Ruby currently allows an exception’s `cause` to be explicitly set **only at the time of raising** using `raise ..., cause: ...`. However, there are valid use cases where it would be convenient to set the cause when creating an exception....
-
11:28 PM Feature #21365 (Closed): Add `Namespace#eval`
- I would like a way to eval code on to a `Namespace` object. Could we add an eval method that _doesn't_ take a binding object? Writing a new file every time I want to test Namespaces is too cumbersome.
Thanks! -
11:23 PM Bug #21364 (Open): Constant lookup in namespaces should be consistent
- This might be related to #21363, but I'm not sure.
I expect that a top level `Bar` constant should have the same value as `Object::Bar`. For example:
```ruby
File.binwrite("ns.rb", <<-RUBY)
# namespace 3
Bar = 123
module M
... -
11:17 PM Bug #21363 (Open): `Namespace.current` should always return the Namespace in which it was defined
- I think `Namespace.current` should always return the namespace in which it was defined. Here is an example to demonstrate what I mean:
```ruby
File.binwrite("ns.rb", <<-RUBY)
# namespace 3
module M
def self.test
p Namesp... -
10:39 PM Revision 161aede1 (git): Disabled TRAP cache of CodeQL
- 10:04 PM Revision bc2e95ee (git): Apply new RDoc config options
- 10:04 PM Revision 03eb777c (git): Sync RDoc 6.14.0
- 09:05 PM Revision 9583b7af (git): ZJIT: Parse newhash into HIR
- 09:05 PM Revision f1fe3d80 (git): ZJIT: Parse duphash into HIR
-
08:53 PM Bug #21362: Namespace: Inline method caches poisoned with builtins
- Yeah such builtin/core Ruby files clearly need to be loaded and executed in the root namespace from a performance POV, otherwise it means no inline caches (my initial worry in https://bugs.ruby-lang.org/issues/21311#note-15).
It's quite... -
08:34 PM Bug #21362 (Assigned): Namespace: Inline method caches poisoned with builtins
- ``` ruby
File.write("/tmp/ntest.rb", <<~'RUBY')
class Integer
def succ = self + 2
end
module Test
def self.run = 10.times.to_a
end
RUBY
module Test
def self.run = 10.times.to_a
end
ns = Namespace.new
ns.require("... -
07:53 PM Feature #21361: Set execution file and line
- I'm not sure we want to encourage generating Ruby code (generated code in many cases is pretty bad IMO, e.g. huge methods), and this feature would encourage it implicitly.
Ruby is often expressive and flexible enough that there is no ne... -
04:46 PM Feature #21361 (Open): Set execution file and line
- I'd like to be able to set the execution file and execution line for the purpose of generated Ruby code. My specific use case is the Ruby files that are templated in Prism, but I also believe it would be beneficial for ERB. The functiona...
- 06:51 PM Revision 5a3f3f09 (git): ZJIT: Parse getinstancevariable, setinstancevariable into HIR (#13413)
-
04:21 PM Revision ca1ea957 (git): 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 also mentions that it's obsolescent since all
current compilers have this... -
04:20 PM Revision 616771e3 (git): Merge RubyGems-3.6.9 and Bundler-2.6.9
-
04:20 PM Revision d766eceb (git): Merge RubyGems-3.6.8 and Bundler-2.6.8
-
04:19 PM Revision 81258275 (git): windows-2025 runner removed D drive from their environment
-
04:19 PM Revision c104fc41 (git): Disabled TRAP cache of CodeQL
- 04:18 PM Revision d96e9bd0 (git): [DOC] Set canonical root for online docs (#13410)
-
03:19 PM Bug #21340 (Closed): Bump autoconf version to properly handle C23 bool/stdbool defines
- Thanks!
commit:2297afda7ff3926c51fea700dfbf0f0eb4fea1e5 should also work for the 3.3 branch since it also requires VC 2015. #19982 -
02:17 PM Revision b080aabb (git): Update string.rb
- Co-authored-by: Peter Zhu <peter@peterzhu.ca>
-
02:17 PM Revision 3403055d (git): [DOC] Tweaks for String#byteindex
-
12:10 PM Revision d15fdb5c (git): Win32: Initialize the systemtime function before converting FILETIME
-
10:16 AM Feature #21311: Namespace on read (revised)
- First, I would like to thank mame for the explanation in regards to the namespace discussion, or rather the pre-discussion in regards to design decision(s). Probably not everyone knew about the prior discussion(s), so it seems useful to ...
-
10:10 AM Revision f18883b2 (git): Namespaces: Don't initialize fields for T_ICLASS
- ICLASS don't have instance variables or anything like that.
`gc_mark_classext_iclass` didn't mark it, and `classext_iclass_free`
wasn't freeing it. -
10:00 AM Feature #21358: Advanced filtering support for #dig
- You might be able to achieve similar behavior using pattern matching.
```ruby
item => batters: {batter: [*, {type: "Chocolate", id:}, *]}
id #=> "1002"
```
-
09:39 AM Feature #21360 (Closed): Inconsistent Support for `Exception#cause` in `Fiber#raise` and `Thread#raise`
- The `raise` method supports setting the cause of an exception using the `cause:` keyword, but this behavior does not work as expected when calling `Fiber#raise` or `Thread#raise`, resulting in a `TypeError`. This breaks consistency with ...
-
09:32 AM Revision 5862be0e (git): Skip failing tests with mingw platform
- https://github.com/ruby/ruby/actions/runs/15159221855/job/42621232822?pr=13397
```
1)
File.atime returns the last access time for the named file with microseconds FAILED
Expected 0 == 123456
to be truthy but was false
D:/a/rub... -
09:32 AM Revision b7aca78c (git): [ruby/io-console] Use gperf 3.1 to generate ANSI-C code
- https://github.com/ruby/io-console/commit/3798aae42d
-
09:32 AM Revision c239069d (git): Fix redefinition of `clock_gettime` and `clock_getres`
- winpthreads-git 12.0.0.r720 provides `clock_gettime` and
`clock_getres` as inline functions. -
09:32 AM Revision 395e5de8 (git): Update the latest version of ruby/setup-ruby
-
07:00 AM Bug #21333: heap-use-after-free caused by rehash during update
- If this gets backported, please also consider https://bugs.ruby-lang.org/issues/21357. This fix caused a different problem, the patch for that can be found in that issue.
-
06:57 AM Bug #21357: Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
- Thanks! Works nicely.
-
03:26 AM Bug #21357 (Closed): Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
- Applied in changeset commit:git|056497319658cbefe22351c6ec5c9fa6e4df72bd.
----------
[Bug #21357] Fix crash in Hash#merge with block
Prior to https://github.com/ruby/ruby/commit/49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c
the `optional_ar... -
02:33 AM Bug #21357: Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
- Possible fix https://github.com/ruby/ruby/pull/13404 (if tests pass 🤞🏻)
-
06:54 AM Revision ff1d6157 (git): Don't need to store download cache of vcpkg
- vcpkg can detect their cache from `vcpkg/installed`.
-
04:08 AM Revision ec41b1e8 (git): Fix for old mingw without `clock_gettime` and `clock_getres`
-
03:39 AM Bug #21337: Using `not` on the RHS of a logical operator becomes valid syntax with Prism
- I prefer the behavior of Prism here. Intuitively, `true && not true` seems like it should be valid just like `true and not true`
-
03:25 AM Revision 05649731 (git): [Bug #21357] Fix crash in Hash#merge with block
- Prior to https://github.com/ruby/ruby/commit/49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c
the `optional_arg` passed from `rb_hash_update_block_i` to `tbl_update`
was a hash value (i.e. a VALUE). After that commit it changed to an
`update_cal... -
03:20 AM Feature #21353: Add shape_id to RBasic under 32 bit
- jhawthorn (John Hawthorn) wrote in #note-2:
> it is hard for us to follow that path when shapes are so different under 32-bit
So we're in agreement here, and in fact I think shapes should be **exactly the same** under both 32bit and 64b... -
01:55 AM Revision 7154b420 (git): Fix a -Wmaybe-uninitialized
- lev in rb_gc_vm_lock() is uninitialized in single ractor mode.
-
12:23 AM Revision 6a16c3e2 (git): Remove too_complex GC assertion
- Classes from the default namespace are not writable, however they do not
transition to too_complex until they have been written to inside a user
namespace. So this assertion is invalid (as is the previous location it
was) but it doesn't ... -
12:03 AM Bug #21348: Should Tracepoint track retry as another "call" event?
- Thanks for confirming that the behavior needs to be fixed @eregon.
05/21/2025
-
11:01 PM Feature #21358 (Feedback): Advanced filtering support for #dig
- Currently, `#dig` can be used to access nested data structures using "simple" keys, such as array indices or hash keys.
Real-world applications sometimes require non-trivial data access, for example, finding an item in an array based ... -
07:23 PM Revision 7b106609 (git): Use rb_inspect for Ractor error
- Previously the object was used directly, which calls `to_s` if defined.
We should use rb_inspect to get a value suitable for display to the
programmer. -
07:02 PM Bug #21357: Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
- I reduced it down significantly:
```rb
require "yaml"
YML = <<~YML
foo:
- bar: abc
baz: def
bat: ghi
YML
x = 1500 # lower numbers don't consistently crash
(0..x).each_with_object({}) do |_i, hash|
has... -
12:51 PM Bug #21357 (Closed): Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
- I've encountered crahses on ruby-head in recent days, related to hash methods like `merge` and `merge!`. I can now reproduce it locally while running the rubocop-rspec test suite:
* Clone https://github.com/rubocop/rubocop-rspec
* Ru... -
05:27 PM Revision ef935705 (git): Use shape_id for determining "too complex"
- Using `rb_shape_obj_too_complex_p` looks up the shape, but we already
have the shape id. This avoids looking up the shape twice. - 04:51 PM Revision 6df6aaa0 (git): Update class.c
- Co-authored-by: Satoshi Tagomori <tagomoris@gmail.com>
-
04:51 PM Revision 6ea893f3 (git): Add assertion for RCLASS_SET_PRIME_CLASSEXT_WRITABLE
- When classes are booted, they should all be writeable unless namespaces
are enabled. This commit adds an assertion to ensure that classes are
writable. -
03:53 PM Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines
- alanwu (Alan Wu) wrote in #note-5:
> @ntkme @christo if you have time, please try building with the latest master branch and see if the build issues are resolved. We can get this backported if so.
I can confirm this fixes the issue I... -
08:55 AM Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines
- I've pushed commit:2297afda7ff3926c51fea700dfbf0f0eb4fea1e5 which I think should resolve build issues without touching the autoconf version.
@ntkme @christo if you have time, please try building with the latest master branch and see i... -
03:27 PM Revision 511b6bcb (git): Reenable MMTk tests
-
03:27 PM Revision ac23fa09 (git): Use rb_id_table_foreach_values for mark_cc_tbl
- We don't need the key, so we can improve performance by only iterating
on the value.
This will also fix the MMTk build because looking up the key in
rb_id_table_foreach requires locking the VM, which is not supported in
the MMTk worker ... -
03:23 PM Revision b4c900de (git): ZJIT: More type level docs in zjit::hir [DOC]
- Given `InsnId` is at the top of the file and everywhere, hopefully this
will help first time readers. -
02:35 PM Revision 3487117e (git): [ruby/mmtk] Fix object ID in rb_gc_impl_define_finalizer
- The 0th element of the finalizer table array should be the object ID.
https://github.com/ruby/mmtk/commit/75e4a82652 -
01:48 PM Revision 8f50bb7c (git): JITs: Add back MACOSX_DEPLOYMENT_TARGET=11.0 setting to avoid warning
- See: 41251fdd309d4ff8f699268e33c32a114257211e
-
01:12 PM Revision 9a41d76b (git): Fix one-by-one error of numbered parameter ID
-
09:28 AM Bug #21356: Error when accessing local variable named "default" with Binding#local_variable_get
- Good catch, you are correct. Thank you! https://github.com/ruby/ruby/pull/13396
-
08:31 AM Bug #21356 (Closed): Error when accessing local variable named "default" with Binding#local_variable_get
- On Ruby master when using `Binding#local_variable_get` with the name `:default` it raises the following error:
```
'Binding#local_variable_get': numbered parameter 'default' is not a local variable (NameError)
```
I saw that this... -
08:11 AM Revision 081a44f5 (git): Disabled TRAP cache of CodeQL again
-
08:02 AM Bug #21355 (Closed): `csv/test/csv/interface/test_read.rb` at test-bundled-gems is flaky recent days
- I faced test failure of `make test-bundled-gems` in GitHub Actions. It caused by `csv` testing with `Ractor`.
https://github.com/ruby/ruby/actions/runs/15156308046/job/42611877817?pr=13391#step:9:697
```
/home/runner/work/ruby/ru... -
07:29 AM Revision 0964593e (git): Shrink `sym_proc_cache` by half
- There is no need to store the symbol and the proc given the
proc has a reference to the symbol.
This makes the cache half as small, now fitting in an object
slot, but also make it easier to allow that cache to be
used by ractors, assumi... - 07:08 AM Revision c980cab1 (git): [DOC] Add bundled gem doc links
- - rake
- reline
- logger
- csv
- rexml
- racc - 07:03 AM Revision df66d2be (git): Update bundled gems list as of 2025-05-21
-
06:12 AM Bug #21354 (Closed): Symbol#to_proc is not ractor safe - Applied in changeset commit:git|f6cbf499bc98b851034fffb49fcbb59d495f6f7b.
----------
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 with... - 06:12 AM Revision f6cbf499 (git): 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. Instead, we create a new proc each time. If this
results in poor performance w... -
02:33 AM Revision 97e774b9 (git): [rubygems/rubygems] Bump up to rack-3.1.15 that is removed dependency of CGI::Cookie
- https://github.com/rubygems/rubygems/commit/cecc280f61
-
02:33 AM Revision 3ac239f7 (git): [rubygems/rubygems] Copy prerelease attribute to dependency resolver sets
- https://github.com/rubygems/rubygems/commit/5956e7f8e5
-
02:30 AM Revision 27b06383 (git): [ruby/mmtk] Fix object ID for finalizers
- We should get the object ID for finalizers in rb_gc_impl_define_finalizer
instead of when we create the finalizer job in make_final_job because
when we are in multi-Ractor mode, object ID needs to walk the references
which allocates an i... -
01:04 AM Revision 1c661242 (git): Make Addrinfo objects Ractor shareable
- Allow Addrinfo objects to be shared among Ractors. Addrinfo objects are
already immutable, so I think it's safe for us to tag them as
RUBY_TYPED_FROZEN_SHAREABLE shareable too.
05/20/2025
-
10:49 PM Feature #21353: Add shape_id to RBasic under 32 bit
- @Dan0042 We've been finding a lot of cases where flags actually make sense as part of the shape rather than flags, like FL_FROZEN and FL_EXIVAR per the description, but also possibly object_id and likely more (ex. capacity, FL_EMBEDDED) ...
-
08:11 PM Feature #21353: Add shape_id to RBasic under 32 bit
- In general this sounds like a good idea, but I think it would be better to have a struct that works the same way for both 32bit and 64bit systems, and also avoids reserving an entire 32 bits, which is overkill for shape ids.
What abou... -
08:18 AM Feature #21353 (Closed): Add shape_id to RBasic under 32 bit
- Currently on 64bit systems, for every types, the `shape_id` is stored inside the `RBasic.flags` field, and is 32bit
long.
However, on 32bit systems like i686 and WASM, it is much more complicated.
For `T_OBJECT`, `T_CLASS` and `T_MO... - 10:41 PM Revision b08e20d3 (git): ZJIT: Allow DCE to remove some CCalls (#13363)
- Allow DCE to remove some CCalls
Add `elidable` field that signals that there would be no discernible
effect if the call to the method were removed. The default is false. -
04:57 PM Revision b043abc0 (git): Only define RVALUE_OVERHEAD if undefined
- This allows RVALUE_OVERHEAD to be defined elsewhere.
-
04:56 PM Revision 84bfcaa8 (git): Add two more TSan suppressions
-
04:56 PM Revision e7f97eb2 (git): Use atomic load for signal buff size
-
04:56 PM Revision 05e0e722 (git): Use atomic load to read interrupt mask
-
04:22 PM Revision cd15cc25 (git): ZJIT: Run `make zjit-test` under combo build with YJIT
-
04:22 PM Revision 1fed568e (git): ZJIT: Add --allow-multiple-definition for make zjit-test
-
03:58 PM Revision 2297afda (git): 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 also mentions that it's obsolescent since all
current compilers have this... -
03:35 PM Revision ce5eb280 (git): YJIT: ZJIT: CI: Smoke test for --[y,z]jit-dump-disasm
-
03:35 PM Revision dfc0fe36 (git): Add jit.rs as dependency in Makefile
-
01:46 PM Bug #21354: Symbol#to_proc is not ractor safe
- PR here: https://github.com/ruby/ruby/pull/13380
We are looking at how to make the cache ractor safe but it will be done in a separate PR. -
01:37 PM Bug #21354 (Closed): Symbol#to_proc is not ractor safe
- There is caching in `Symbol#to_proc` (`rb_sym_to_proc`) that makes the assumption that we're always in the main ractor. With multiple ractors, this caching logic is not ractor-safe in that cached procs created in one ractor can leak into...
-
01:27 PM Revision bf082a37 (git): CI: Check if runnable first, before set up directories
-
01:16 PM Misc #21350: Bundled gems lack online documentation
- I also don't think the documentation for bundled gems necessarily has to be included in the Ruby core documentation, as long it is easily accessible from it.
If possible, how about creating a link-to-documentation-only entry for class... -
01:15 PM Bug #21341: `Namespace is not a module (TypeError)` without enabling the namespace
- I want to let Matz determine how to handle this problem :D
-
01:07 PM Bug #21341: `Namespace is not a module (TypeError)` without enabling the namespace
- I guess I found a widely used real-world app that defines a toplevel `Namespace` class, and it seems very difficult for them to resolve this conflict...
https://github.com/gitlabhq/gitlabhq/blob/master/app/models/namespace.rb
Perhaps we... -
08:21 AM Bug #21341: `Namespace is not a module (TypeError)` without enabling the namespace
- > But the incompatibility may not have been considered since toplevel Ruby used to warn in 3.4 for Ruby::VERSION and others.
Yes, we likely need to emit a deprecation warning when a top-level `Namespace` constant is defined. -
06:41 AM Bug #21341: `Namespace is not a module (TypeError)` without enabling the namespace
- It looks intentional to me:
> Namespace.new
(irb):1:in 'Namespace#initialize': Namespace is disabled. Set RUBY_NAMESPACE=1 environment variable to use Namespace. (RuntimeError)
But the incompatibility may not have been considered s... -
01:12 PM Revision d0a8f6ba (git): [DOC] Fix call-seq of Dir.glob
- `patterns` may be an array but not the rest argument.
-
11:43 AM Revision 8dbff6e4 (git): Silence error messages of `cd` to non-existent opt directories
-
09:22 AM Revision a82e7132 (git): Fix uplevel for `cgi` under bundler
- Since there is `bundled_gems.rb` it is not always one. Fixes the following:
```sh
$ ruby -w -rbundler/inline -e "gemfile {}; require 'cgi'"
/home/earlopain/.rbenv/versions/ruby-dev/lib/ruby/3.5.0+0/bundled_gems.rb:59: warning: CGI librar... - 07:03 AM Revision bfe89c7a (git): Update bundled gems list as of 2025-05-19
- 06:51 AM Revision edff5234 (git): [DOC] Describe new return value of source_location
- Proc#source_location, Method#source_location and
UnboundMethod#source_location carry more information since
073c4e1cc712064e626914fa4a5a8061f903a637.
https://bugs.ruby-lang.org/issues/6012
https://github.com/ruby/ruby/pull/12539 -
04:34 AM Feature #21287 (Closed): Remove SortedSet autoload and set/sorted_set
- Applied in changeset commit:git|c52f4eea564058a8a9865ccc8b2aa6de0c04d156.
----------
Remove SortedSet autoload and set/sorted_set
Implements [Feature #21287] -
04:34 AM Revision c52f4eea (git): Remove SortedSet autoload and set/sorted_set
- Implements [Feature #21287]
05/19/2025
-
09:04 PM Misc #21350: Bundled gems lack online documentation
- There actually are quite a few bundled gems having their own docs now, including [CSV](https://ruby.github.io/csv/).
I've opened a PR to add them: https://github.com/ruby/ruby/pull/13374
I think we're already heading towards this d... -
08:22 PM Misc #21350: Bundled gems lack online documentation
- In the meanwhile https://www.rubydoc.info/ is a good workaround to get online docs of all gems, e.g. https://www.rubydoc.info/gems/csv
Though it doesn't handle RDoc includes yet it seems. -
08:15 PM Misc #21350: Bundled gems lack online documentation
- I agree each bundled gem hosting its own docs is the best.
In some cases it might be valuable to host multiple versions of the docs, although that quickly adds complexity.
In fact the same applies for normal gems as well.
For exampl... -
04:07 PM Misc #21350: Bundled gems lack online documentation
- https://github.com/ruby/ruby/pull/13371
-
08:25 PM Bug #21348: Should Tracepoint track retry as another "call" event?
- I agree with the OP that `:call` shouldn't trigger a second time here, since there is only one call to `foo`.
`retry` is similar to a loop, and of course we don't add extra `:call` TracePoint events for loops. -
08:18 PM Bug #21351: Ruby master segfaults when initializing `Zlib::GzipReader`
- Closed because this doesn't happen in `ruby 3.5.0dev (2025-05-19T17:34:29Z master a7ef9a44a6) +PRISM [arm64-darwin24]` anymore.
-
08:15 PM Bug #21351 (Closed): Ruby master segfaults when initializing `Zlib::GzipReader`
-
11:02 AM Bug #21351 (Closed): Ruby master segfaults when initializing `Zlib::GzipReader`
- ### Ruby Version
```
ruby 3.5.0dev (2025-05-13T14:16:58Z master bb180b87b4) +PRISM [arm64-darwin24]
last_commit=[Bug #21331] Prohibit modification during stlike loop
```
### Steps to reproduce
```
$ ruby -e "require 'zlib'; ... -
05:34 PM Revision a7ef9a44 (git): ZJIT: Propagate disasm feature to ZJIT and YJIT (#13372)
- Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
-
03:33 PM Feature #21309: Can Thread::Mutex be Ractor shareable?
- @nevans See https://github.com/ruby/net-http/blob/b652fa506b3fc8420172683e62b13bcdf58dbf3d/lib/net/http.rb#L1657
And https://github.com/ruby/net-http/issues/6#issuecomment-2877372273 by @osyoyu.
Also #21347 seems related to all that. -
03:14 PM Feature #21309: Can Thread::Mutex be Ractor shareable?
- Eregon (Benoit Daloze) wrote in #note-6:
> osyoyu (Daisuke Aritomo) wrote in #note-5:
> ...
Does `Net::HTTP` use `Timeout` to implement its timeouts? `Timeout::Error` is used as a superclass for the `net-protocol` timeout errors, but ... -
01:49 PM Revision 93ce95d4 (git): [DOC] Fix indentation
- RDoc markdown parser requires exact 4 spaces or tab as indentation.
-
01:47 PM Revision 22c1201b (git): [DOC] Fold long lines
-
01:41 PM Revision d84f2031 (git): [DOC] Escape dot in regexp
-
01:06 PM Bug #21352 (Closed): Invalid read in shape lookup code
- Applied in changeset commit:git|83d636f2d01f6bc1fd044a6f6c3071303b68dd82.
----------
Free shapes last
[Bug #21352]
`rb_objspace_free_objects` may need to check objects shapes
to know how to free them. -
12:20 PM Bug #21352: Invalid read in shape lookup code
- I suspect it's caused by either a T_NONE or a T_IMEMO. I have a feature branch that ran into that issue I think and I haven't merged yet, but I could just cherry-pick that fix.
-
12:16 PM Bug #21352 (Closed): Invalid read in shape lookup code
- Prism runs tests with valgrind and it recently started to report an invalid read in `rb_shape_lookup`. Example workflow: https://github.com/ruby/prism/actions/runs/15111527208/job/42471945845?pr=3564
```
Invalid read of size 8
rb_... -
01:06 PM Revision 83d636f2 (git): Free shapes last
- [Bug #21352]
`rb_objspace_free_objects` may need to check objects shapes
to know how to free them. -
09:16 AM Bug #21345: crash on evaluating 'a=>a,*,'
- Potential fix https://github.com/ruby/prism/pull/3564
-
08:58 AM Bug #20112 (Closed): Ractors not working properly in ruby 3.3.0
-
08:57 AM Bug #20112: Ractors not working properly in ruby 3.3.0
- I can't repro on my mac so it seems Linux only.
It has been corrected on master since both 3.5.0-preview1 and master are now faster with ractors than with threads.
```
ruby 3.5.0dev (2025-05-19T04:27:50Z master 40c957ba21) +PRISM ... -
05:37 AM Bug #21338: TracePoint Not Triggered for Kernel#block_given?
- Hi @k0kubun - ok great - that sounds like an intentional change in Ruby 3.4 then.
I don't understand your recommendation though "to define every method you call in the profiled code yourself". The ruby-prof test code has remained fairly... -
04:27 AM Revision 40c957ba (git): Fix a typo and capitalize a character
-
02:55 AM Bug #21333 (Closed): heap-use-after-free caused by rehash during update
-
02:19 AM Revision 47595509 (git): [ruby/json] Remove some unnecessary top level constant lookups
- https://github.com/ruby/json/commit/7c03ffc3e0
- 02:19 AM Revision e4a44b1f (git): [ruby/json] remove redundant `self.`
- https://github.com/ruby/json/commit/c060943d04
- 02:19 AM Revision 9b25023f (git): [ruby/json] use `.` over `::` for consistency
- https://github.com/ruby/json/commit/f5c1b8c45d
- 02:19 AM Revision dc69bebd (git): [ruby/json] Update json_encoding_test.rb
- https://github.com/ruby/json/commit/0ac54a8161
- 02:19 AM Revision 3468811e (git): [ruby/json] fix for pretty_generate throwing wrong number of arguments error
- https://github.com/ruby/json/commit/8433571dcf
-
02:19 AM Revision 57e41766 (git): [rubygems/rubygems] Fix test warnings introduced by recent CGI changes
- They read like this:
```
/home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/util.rb:13: warning: method redefined; discarding old rfc1123_date
/opt/hostedtoolcache/Ruby/3.4.3/x64/lib/ruby/3... -
02:19 AM Revision 0f867d97 (git): Rename a couple of spec files
- Generally are "realworld" specs are the ones using VCR cassettes of real
requests. These files don't use that, so I moved them to a different
place. -
02:15 AM Revision 6e8be3a6 (git): [rubygems/rubygems] Test JRuby 10
- Necessary changes to get tests passing are:
* Rewrite one "out of memory" error spec to not define a subclass inside
a RSpec context block. Due to some [JRuby issue], that's failing in
JRuby 10, so I rewrote the test so that the Bun... -
02:15 AM Revision bfab76ab (git): [rubygems/rubygems] Normalize platforms in warbler lockfile
- https://github.com/rubygems/rubygems/commit/c7c50343bb
- 02:15 AM Revision 0dfe427c (git): [rubygems/rubygems] Fix typo "shippped" => "shipped"
- https://github.com/rubygems/rubygems/commit/1762d18d7b
-
02:15 AM Revision aea60361 (git): [rubygems/rubygems] Missing tweak
- https://github.com/rubygems/rubygems/commit/407c1cbcfe
-
02:15 AM Revision 4be199e4 (git): [rubygems/rubygems] Simplify Gem::Platform#initialize
- Based on PR feedback
Signed-off-by: Samuel Giddins <segiddins@segiddins.me>
https://github.com/rubygems/rubygems/commit/562d7aa087 -
02:15 AM Revision 8f61e175 (git): [rubygems/rubygems] RuboCop
- Signed-off-by: Samuel Giddins <segiddins@segiddins.me>
https://github.com/rubygems/rubygems/commit/768784910b -
02:15 AM Revision eb48418b (git): [rubygems/rubygems] Ensure that Gem::Platform parses strings to a fix point
- The issue was that the property that
```ruby
platform = Gem::Platform.new $string
platform == Gem::Platform.new(platform.to_s)
```
was not always true.
This property (of acchieving a fix point) is important,
since `Gem::Platform` gets... -
12:46 AM Revision 72387ebd (git): Fix typos: misspell -w -error -source=text namespace.c
-
12:21 AM Bug #21349 (Rejected): default gems should have version >= 1
- > Versions starting with 0 often imply a prereleased or beta status.
No, we don't use that versioning policy.
05/18/2025
-
05:55 PM Feature #21346: Introduce `String#ensure_suffix`
- @nobu added! Thanks for the review.
-
03:33 AM Feature #21346: Introduce `String#ensure_suffix`
- matheusrich (Matheus Richard) wrote in #note-3:
> > You say "queries that might find this pattern". That seems to say that you haven't found it yet.
> ...
Maybe like this?
```ruby
"Hell".sub(/(?<!o!)\z/, "o!") #=> "Hello!"
"Hell... -
11:58 AM Misc #21350: Bundled gems lack online documentation
- Yeah it's a problem that we should resolve it before Ruby 3.5's release.
However, if the gem's source is no longer synced to `ruby/ruby`, then with the current RDoc features it's very hard to generate its documentation as part of Ruby's... -
09:40 AM Misc #21350 (Closed): Bundled gems lack online documentation
- Libraries which have been converted into bundled gems seem to have no online documentation.
For example, `csv` had its documentation inside docs.ruby-lang.org up to Ruby 3.3:
https://docs.ruby-lang.org/en/3.3/CSV.html
but after it... -
07:25 AM Bug #21257: YJIT can generate infinite loop when OOM
- ruby_3_3 commit:f57dd4470b9ba1e2e0007e814f94e8bb4fd2ab6f merged revision(s) commit:80a1a1bb8ae8435b916ae4f66a483e91ad31356a.
-
07:25 AM Revision f57dd447 (git): merge revision(s) 80a1a1bb8ae8435b916ae4f66a483e91ad31356a: [Backport #21257]
- YJIT: Fix potential infinite loop when OOM (GH-13186)
Avoid generating an infinite loop in the case where:
1. Block `first` is adjacent to block `second`, and the branch from `first` to
`second` is a fallthrou... -
04:40 AM Bug #21344: Segment Fault Caused by no Backported Patches
- ruby_3_3 commit:1f226f1efeeae3a5091c60e2f51e027d0598f394 merged revision(s) commit:b959263b58e26ef630c085f9f7ddc04373a998c7.
-
04:32 AM Revision 1f226f1e (git): merge revision(s) b959263b58e26ef630c085f9f7ddc04373a998c7: [Backport #21344]
- Fix Exception#detailed_message for GC compaction
Before this commit, the test fails with RGENGC_CHECK_MODE enabled:
TestException#test_detailed_message_under_gc_compact_stress [test/ruby/test_exception.rb:1466]:
... -
04:31 AM Bug #21297: Update net-imap for ruby 3.2, 3.3, 3.4
- ruby_3_3: merged at commit:74f46982ebfbec4d21b6fc8aff47f2e290307d36.
- 04:30 AM Revision 74f46982 (git): Bump net-imap to v0.4.21 for Ruby 3.3 (CVE-2025-43857)
- v0.4.20 addresses CVE-2025-43857 (GHSA-j3g3-5qv5-52mj).
v0.4.21 fixes bugs in `Net::IMAP::SequenceSet`. -
04:06 AM Misc #21325: make ruby more middle-aged man friendly
- pynix (Pynix wang) wrote in #note-3:
> nobu (Nobuyoshi Nakada) wrote in #note-2:
> ...
I don't say that overriding `format` is not ok.
Just renaming `Kernel#format` is not acceptable.
> to_s will be good, like Integer, `255.to_s(16... -
03:39 AM Bug #21329: `date_core.so` is broken with the recent MSYS2 update
- Hello, nice to meet you.
I'm a Windows user.
As for this problem,
in the following folder of msys2 installed by scoop
C:\Users\username\scoop\apps\msys2\current\ucrt64\bin
> libwinpthread-1.dll
> ...
Overwrite the same file above,
... -
03:00 AM Revision 551c444f (git): merge revision(s) b48b841378f80e16378ceb83f3b78e52df9ae023, 2fe8b9cd3d308d754f3d33a948dfb1dd782a10dc: [Backport #21327]
- digest.so needs ruby/digest.h which is installed by build-ext
Copy to path with the base name -
02:28 AM Bug #21327: Windows builds seem broken after clock_gettime changes?
- ruby_3_3 a3adc05a4e1f5c5d1cd95eee92da9693b23360bf merge revision(s) 3e47e7a499acd256be549935fcb559d3c82e556c, 46e4c8673747de96838d2c5dec37446d23d99d88
-
01:33 AM Bug #21349 (Rejected): default gems should have version >= 1
- Many of the default gems have version numbers less than 1, including venerable offerings such as net-http and yaml. Versions starting with 0 often imply a prereleased or beta status. Surely if a gem has been released as part of the bas...
-
01:24 AM Revision 8a1d738b (git): merge revision(s) 3113bc8d445c4c24ed3827adfc50bb88c99b6364:
- stat command is not provided on Windows
05/17/2025
-
11:10 PM Bug #21348 (Open): Should Tracepoint track retry as another "call" event?
- When `retry` is executed in a method, Tracepoint records it as a new "call" event.
``` ruby
# tracepoint-retry.rb
# method that retries once
def foo
attempts ||= 1
raise "Fail" if attempts == 1
rescue
attempts += 1
r... -
04:30 PM Feature #21346: Introduce `String#ensure_suffix`
- > You say "queries that might find this pattern". That seems to say that you haven't found it yet.
I'm not sure what you mean. I just meant that the regex can find this pattern, but I can't guarantee it will _only_ find that.
> ...
As... -
08:24 AM Feature #21346: Introduce `String#ensure_suffix`
- You say "queries that might find this pattern". That seems to say that you haven't found it yet.
What's the result for
"Hello".ensure_suffix("o!")
Is it "Helloo!", or is it "Hello!"? -
02:21 PM Feature #21347: Add `open_timeout` as an overall timeout option for `Socket.tcp`
- @osyoyu
> Just out of curiosity: Is the example given in https://bugs.ruby-lang.org/issues/21347#note-1 a case when connect_timeout is 1000 ms (not 100 ms) ?
It's just a typo. `connect_timeout: 1000ms` is right, sorry. -
11:18 AM Feature #21347: Add `open_timeout` as an overall timeout option for `Socket.tcp`
- I am +1 to this feature. As a `Socket.tcp` / `TCPSocket` user, I am usually concerned about the time required to open the connection as a whole, rather than name resolution and connect(2) as separate parts. I also like that the mental mo...
-
07:37 AM Feature #21347: Add `open_timeout` as an overall timeout option for `Socket.tcp`
- Sorry, the example in the sentence "Currently, a connect_timeout is raised only after the last connection attempt exceeds the timeout." is incorrect. The correct version is as follows:
Example:
When `connect_timeout: 100ms` is set an... -
07:27 AM Feature #21347 (Closed): Add `open_timeout` as an overall timeout option for `Socket.tcp`
- I propose to add an overall timeout option to `Socket.tcp` (and `TCPSocket.new`)
### Background
Currently, `TCPSocket.new` and `Socket.tcp` accept two kind of timeout options:
- `resolv_timeout`, which controls the timeout for DNS... -
01:43 PM Feature #21311: Namespace on read (revised)
- As of today, I also lean on the side of not feeling comfortable with this particular aspect of namespaces.
Isolation is easy to explain and understand. While new, I believe it is intuitive 👍.
However, this so open cross-namespace r... -
01:14 PM Feature #21311: Namespace on read (revised)
- fxn (Xavier Noria) wrote in #note-101:
>
> ...
Well, you posted the code, not that it needed demonstrating as it was already admitted. Two references to **the same object** showing divergent instance state (ivars). This is not just a ... -
06:07 AM Feature #21311: Namespace on read (revised)
- For everyone following, we are talking about stuff like:
```ruby
# main.rb
module Kernel
@a = 1
end
p Kernel.object_id
p Kernel.instance_variable_defined?(:@a)
ns = Namespace.new
ns.require_relative('foo')
ns::Foo.m(Kernel)
# foo.r... -
05:53 AM Feature #21311: Namespace on read (revised)
- bughit (bug hit) wrote in #note-99:
> Object id in this conversation is a proxy for identity, so the correct question is: Can today a single program have an object that is value unequal to itself. The current answer is no, and allowin... -
09:47 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
- Eregon (Benoit Daloze) wrote in #note-7:
> So my suggestion would be:
> ...
I'm not against to interpret the default encoding as UTF-8, but don't think transcoding is intuitive as different encoding symbols are different even if they a... -
09:43 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
- Eregon (Benoit Daloze) wrote in #note-8:
> @nobu What happens when using your patch to Marshal.dump a class and then trying to load it on an older Ruby? Will it create an instance variable `E` or error?
Just an error.
> ...
If the... -
07:44 AM Bug #21331: heap-use-after-free caused by rehash during transform_values!
- ruby_3_3 commit:cb49400d680894d69534b0b4cd10b085de325e2a merged revision(s) commit:7793b59c8d2a13c124fe276e11723db23facce04.
-
06:57 AM Revision cb49400d (git): merge revision(s) 7793b59c8d2a13c124fe276e11723db23facce04: [Backport #21331]
- [Bug #21331] Prohibit hash modification during stlike loop
-
06:56 AM Revision b25bfd33 (git): merge revision(s) 7f5b4fb26ea8c0a736a37101327905eebebee8bf:
- Remove unused retval assignments
-
06:41 AM Revision a3adc05a (git): merge revision(s) 3e47e7a499acd256be549935fcb559d3c82e556c, 46e4c8673747de96838d2c5dec37446d23d99d88:
- Fix redefinition of `clock_gettime` and `clock_getres`
winpthreads-git 12.0.0.r720 provides `clock_gettime` and
`clock_getres` as inline functions.
Detect `clock_gettime` and `clock_getres` for winpthreads -
06:27 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
- ruby_3_3 commit:b1b6752fbeb2d23dbea639bd4b331c9e8b56f49c merged revision(s) commit:0d6263bd416338a339651fb97fe4d62701704c4b.
-
06:21 AM Revision b1b6752f (git): merge revision(s) 0d6263bd416338a339651fb97fe4d62701704c4b: [Backport #21220]
- Fix coverage measurement for negative line numbers
Fixes [Bug #21220]
Co-Authored-By: Mike Bourgeous <mike@mikebourgeous.com>
Co-Authored-By: Jean Boussier <jean.boussier@gmail.com> - 12:42 AM Revision aa0f689b (git): [ruby/net-http] Freeze some constants to improve Ractor compatibility
- Freeze `Net::HTTP::SSL_IVNAMES`, `Net::HTTPResponse::CODE_CLASS_TO_OBJ`
and `Net::HTTPResponse::CODE_TO_OBJ` to improve Ractor compatibility.
This change allows the following code to work:
Ractor.new {
uri = URI.parse('http:/...
05/16/2025
-
10:46 PM Feature #21311: Namespace on read (revised)
- bughit (bug hit) wrote in #note-99:
> Can today a single program have an object that is value unequal to itself.
I mean by the default and intuitive definition of value equality which is comparing instance state. Obviously you can de... -
10:29 PM Feature #21311: Namespace on read (revised)
- fxn (Xavier Noria) wrote in #note-98:
> Think about it, can today a single program have objects with the same ID that are not equal? Yes! Absolutely it can!
Object id in this conversation is a proxy for identity, so the correct question... -
09:53 PM Feature #21311: Namespace on read (revised)
- @bughit I totally see what you mean, and I had myself this very objection up in the thread.
While my post had the aim of spreading the word and make namespaces accessible to a broader audience, I have personally still not reached a de... -
06:57 PM Feature #21311: Namespace on read (revised)
- fxn (Xavier Noria) wrote in #note-96:
>
> ...
This argument would work for other languages where classes are magical templates that can be endowed with all kinds of special traits. But this is ruby where a class is an object, an instanc... -
06:23 PM Feature #21311: Namespace on read (revised)
- bughit (bug hit) wrote in #note-95:
> The example I used to illustrate the absurdity of this is two string references to the "same" string object but having different string values.
I am not sure I follow. The edge case in which th... -
05:11 PM Feature #21311: Namespace on read (revised)
- fxn (Xavier Noria) wrote in #note-90:
>
> ...
There are things that new features should not do, like redefining and corrupting the concept of a object.
> 2. @tagomoris made the good point that in _today_'s Ruby, refinements already... -
07:32 AM Feature #21311: Namespace on read (revised)
- Eregon (Benoit Daloze) wrote in #note-93:
> vo.x (Vit Ondruch) wrote in #note-88:
> ...
Just to be clear, I don't agitate for loading RubyGems, just wonder where the line is. Having clean pristine environment is very unique opportunity... -
10:18 PM Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines
- google-protobuf is also failing to compile native extension on windows ruby head and 3.4.4 with msys2 gcc 15.
```
In file included from
D:/rubyinstaller-head-x64/include/ruby-3.5.0+1/ruby/defines.h:74,
from
D:/rubyinstaller-head-x64/inc... -
08:54 PM Feature #14916: Proposal to add Array#===
- This is probably unnecessary now that pattern matching exists.
-
08:47 PM Feature #4539: Array#zip_with
- @matz maybe too obvious, but how about `zip_map`?
-
08:02 PM Feature #21346: Introduce `String#ensure_suffix`
- If approved, I can add `String#ensure_prefix` and the bang versions of those methods.
-
08:00 PM Feature #21346 (Open): Introduce `String#ensure_suffix`
## Problem
Ensuring a string has a specific suffix or prefix is a common operation in many applications.
Bundler itself uses it:
https://github.com/rubygems/rubygems/blob/d409ec8b5fc647fabe30e37e17cd1ea857634f6b/bundler/lib/bund...-
06:47 PM Bug #21345: crash on evaluating 'a=>a,*,'
- This is most probably a Prism bug, since it seems to work fine with `parse.y` as the parser:
```shell
$ ruby --parser parse.y -ve 'a=>a,*,'
ruby 3.4.4 (2025-05-14 revision a38531fd3f) [arm64-darwin24]
-e:1: syntax error, unexpected end-o... -
04:19 PM Bug #21345 (Closed): crash on evaluating 'a=>a,*,'
- ```
ruby -e 'a=>a,*,'
-e: [BUG] Unexpected node type in pattern matching expression: PM_IMPLICIT_REST_NODE
ruby 3.4.3 (2025-04-14 revision d0b7e5b6a0) +PRISM [arm64-darwin24]
-- Crash Report log information ----------------------... -
06:16 PM Revision 22c09135 (git): rb_copy_generic_ivar: reset shape_id when no ivar are present
-
06:16 PM Revision 1e33a451 (git): gc: Execute run_final with the lock held
- The finalizer table can't be read nor modified without the VM lock.
-
06:16 PM Revision ec8900e3 (git): rb_gc_impl_copy_finalizer: generate a new object id
- Fix a regression introduced by: https://github.com/ruby/ruby/pull/13155
-
06:16 PM Revision a2944270 (git): Add missing lock to `rb_gc_impl_copy_finalizer`
- 05:50 PM Revision d9248856 (git): ZJIT: Create more ergonomic type profiling API (#13339)
-
05:31 PM Revision eead8316 (git): Prevent enabling yjit when zjit enabled (GH-13358)
- `ruby --yjit --zjit` already warns and exits, but it was still possible
to enable both with `ruby --zjit -e 'RubyVM:YJIT.enable`.
This commit prevents that with a warning and an early return. (We could
also exit, but that seems a bit un... -
04:50 PM Revision cc90adb6 (git): [DOC] Tweaks for String#append_as_bytes
-
04:47 PM Revision a1882496 (git): [DOC] Tweaks for String#b
-
04:46 PM Revision 1f09c9fa (git): [DOC] Tweaks for String#ascii_only?
-
03:52 PM Bug #21338: TracePoint Not Triggered for Kernel#block_given?
- I see that you're calling `Numeric#times` in your profiled test code. We used to use a `block_given?` C call inside it to check if a block is given. @nobu changed it to `defined?(yield)` at commit:3dccb716daaee74d2ae00a5766fe1779fe220a81...
-
12:46 PM Bug #21338: TracePoint Not Triggered for Kernel#block_given?
- Yes, we intentionally moved the implementation for `block_given?` to C. Again, a method can move between C and Ruby between versions.
I just tested rb_tracepoint_new() with RUBY_EVENT_C_CALL and `block_given?`, and an event definitely f... -
03:17 PM Revision c5c252c0 (git): Add a test case for `it` in a regex.
- Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
-
03:17 PM Revision 4921845b (git): [Bug #21313] Handle `it` in rescue and ensure blocks.
- The following is crashing for me:
```shell
ruby --yjit --yjit-call-threshold=1 -e '1.tap { raise rescue p it }'
ruby: YJIT has panicked. More info to follow...
thread '<unnamed>' panicked at ./yjit/src/codegen.rs:2402:14:
...
```
It s... -
01:11 PM Feature #21335: Namespaces should be present in the backtrace
- mame (Yusuke Endoh) wrote in #note-4:
> ```
> ...
I took me quite a while to notice that 0x00007ff4d61f9f20 and 0x00007ff4d61f93e0 were different.
Just my personal preference, but if `#<Namespace:0x00007ff4d61f93e0>` is assigned to ... -
12:22 PM Revision 097d742a (git): [Bug #20009] Support marshaling non-ASCII name class/module
-
12:15 PM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
- @nobu What happens when using your patch to Marshal.dump a class and then trying to load it on an older Ruby? Will it create an instance variable `E` or error?
I guess if there is no matching BINARY constant it would error anyway, but i... -
12:10 PM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
- So my suggestion would be:
* Interpret the serialized module/class name as UTF-8, not as BINARY. And of course if it's only 7-bit as US-ASCII (already the case).
* If the module/class name uses another encoding, we could either transcode... -
12:08 PM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
- Mmh, but Marshal.dump+load of such non-7-bit modules/classes works on TruffleRuby, although it needs a tiny fix:
```patch
diff --git a/src/main/ruby/truffleruby/core/marshal.rb b/src/main/ruby/truffleruby/core/marshal.rb
index 102468e... -
10:35 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
- I made a patch which works well except for tests added by [ruby/spec@907cb35](https://github.com/ruby/spec/commit/907cb35e21).
Since the dumped strings in these tests have not been loadable, I think they are useless actually.
https://gi... -
08:40 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
- Currently instance variables of class/module are prohibited.
It may be possible to put the encoding information there. - 12:08 PM Revision 5e01c0e4 (git): ZJIT: Remove unnecessary cloning
-
11:23 AM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
- mame (Yusuke Endoh) wrote in #note-13:
> Unless there is a valid use case for that, it would be good to raise an Exception, instead of no-op.
FYI TruffleRuby implemented FrozenError when `rb_str_locktmp()` is used on a frozen String ... -
11:04 AM Revision 9cec38c1 (git): "binary" is not valid encoding name in Emacs
-
10:49 AM Bug #21344: Segment Fault Caused by no Backported Patches
- Ah, I have misunderstood that the fix was on rexml.gem.
-
10:46 AM Bug #21344: Segment Fault Caused by no Backported Patches
- rexml is already bundled gems in ruby 3.2/3.3.
The users can use any versions of rexml specified with lock file.
-
10:26 AM Bug #21344 (Closed): Segment Fault Caused by no Backported Patches
- Close to mark for backport.
-
08:04 AM Bug #21344 (Closed): Segment Fault Caused by no Backported Patches
In my local machine(3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux-gnu]), which is the default version in ubuntu2404, a segmentation fault can be stably triggered by the poc including malicious xml data.
The poc here:
```ruby...-
07:34 AM Bug #21343: Namespace: singleton classes of root namespace leak between namespaces
- Seems adjacent to https://bugs.ruby-lang.org/issues/21330.
The `klass` field like the `flags` one isn't part of the `classext_t`, so it's not effectively namespaced.
- 05:14 AM Revision a0fe0095 (git): Don't enumerate `io->blocking_operations` if fork generation is different. (#13359)
-
05:03 AM Bug #21313: `it` in rescue/ensure on prism
- I encountered this issue today and attempted a fix: https://github.com/ruby/ruby/pull/13360
I hope that was appropriate. -
01:14 AM Revision 35000ac2 (git): Prevent double free for too big repetition quantifiers (#13332)
- Prevent double free for too big repetition quantifiers
The previous implementation calls `free(node)` twice (on parsing and compiling a
regexp) when it has an error, so it leads to a double-free issue. This
commit enforces `free(node)` ...