Activity
From 05/10/2025 to 05/16/2025
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 <[email protected]>
-
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)` ...
05/15/2025
-
11:35 PM Bug #21343 (Open): Namespace: singleton classes of root namespace leak between namespaces
- Ruby classes all have singleton classes, those singleton classes have singleton classes, and so on with infinite nesting. Since we don't have infinite resources, we create these lazily.
Because of this, only a certain number of single... - 10:31 PM Revision 6b10d401 (git): ZJIT: Bail out of recursive compilation if we can't compile callee
- Right now we just crash if we can't compile an ISEQ for any reason
(unimplemented in HIR, unimplemented in codegen, ...) and this fixes
that by bailing out. -
10:18 PM Revision d67d169a (git): Use atomics for system_working global
- Although it almost certainly works in this case, volatile is best not
used for multi-threaded code. Using atomics instead avoids warnings from
TSan.
This also simplifies some logic, as system_working was previously only
ever assigned to... -
09:44 PM Revision d845da05 (git): Force reset running time in timer interrupt
- Co-authored-by: Ivo Anjo <[email protected]>
Co-authored-by: Luke Gruber <[email protected]> -
09:19 PM Revision 55c9c75b (git): Maintain same behavior regardless of tracepoint state
- Always use opt_new behavior regardless of tracepoint state.
-
08:21 PM Feature #21311: Namespace on read (revised)
- vo.x (Vit Ondruch) wrote in #note-88:
> can you also elaborate how does it look with RubyGems? Do I need to `require "rubygems"` to be able to load e.g. bundled gems libraries?
Each user namespace will automatically load its own copy... -
08:14 PM Feature #21311: Namespace on read (revised)
- > But, since namespaced code starts with a blank slate
I was more wondering where is the cut line, because it might not be obvious. E.g. in the case of RubyGems, the overridden `require` is not something one thinks about these days.
... -
07:42 PM Feature #21311: Namespace on read (revised)
- vo.x (Vit Ondruch) wrote in #note-88:
> Thanks. Very nice overview.
Thank you.
> ...
Nah, no prob, it has been a long one with so many angles.
> can you also elaborate how does it look with RubyGems? Do I need to `require "rubygems"` ... -
07:38 PM Feature #21311: Namespace on read (revised)
- bughit (bug hit) wrote in #note-89:
> If this is referring to instance state, like ivars, this is a corruption of the concept of an object. If the state is different it can't be the same object. It would be like two string references be... -
07:12 PM Feature #21311: Namespace on read (revised)
- > Technically, the reference is the same, the object ID is the same, but the builtin object state is per-namespace now.
If this is referring to instance state, like ivars, this is a corruption of the concept of an object. If the state... -
06:56 PM Feature #21311: Namespace on read (revised)
- fxn (Xavier Noria) wrote in #note-87:
> I have written a [blog post](https://gist.github.com/fxn/86ad8584d7813caf03dac9222f8dcf41) trying to present this feature in a digested way and provide a mental model for all Ruby programmers.
... -
12:06 PM Feature #21311: Namespace on read (revised)
- I have written a [blog post](https://gist.github.com/fxn/86ad8584d7813caf03dac9222f8dcf41) trying to present this feature in a digested way and provide a mental model for all Ruby programmers.
Hope it is all factually correct, and it ... -
07:40 PM Bug #21315: Finalizers violate the `rb_ractor_confirm_belonging` assertion
- it will be fixed with ractor-local GC patch.
-
06:13 PM Revision 04f538c1 (git): Remove dependency on sanitizers.h in default.c when BUILDING_MODULAR_GC
-
06:06 PM Bug #21342: Segfault: invalid keeping_mutexes when using Mutex in Thread then Fiber after GC
- Looks like it's not that simple. This smells of memory corruption because we end up in this loop:
```c
-> 230 while (*keeping_mutexes && *keeping_mutexes != mutex) {
231 // Move to the next mutex in the list:
23... -
05:52 PM Bug #21342: Segfault: invalid keeping_mutexes when using Mutex in Thread then Fiber after GC
- Looks like we're missing a null check:
```
* frame #0: 0x0000000100349cb4 miniruby`thread_mutex_remove(thread=0x0000000000000000, mutex=0x0000600001147f00) at thread_sync.c:225:12
frame #1: 0x000000010033c1f0 miniruby`rb_mutex... -
05:14 PM Bug #21342: Segfault: invalid keeping_mutexes when using Mutex in Thread then Fiber after GC
- Additionally, on macOS, the script crashes but then gets in a seemingly endless loop after printing the 'C level backtrace information' line, and can't be killed with ^C.
-
04:44 PM Bug #21342 (Closed): Segfault: invalid keeping_mutexes when using Mutex in Thread then Fiber after GC
- Ruby crashes with a `[BUG] invalid keeping_mutexes error` when attempting to GC locked mutex that was used in a Thread within a Fiber context after garbage collection. The error indicates an attempt to unlock a mutex that is not locked, ...
-
04:51 PM Revision 06a56a7f (git): [ruby/openssl] ssl: fix potential memory leak in SSLContext#setup
- If SSL_CTX_add_extra_chain_cert() fails, the refcount of x509 must be
handled by the caller. This should only occur due to a malloc failure
inside the function.
https://github.com/ruby/openssl/commit/80bcf727dc -
04:50 PM Revision b43c7cf8 (git): [ruby/openssl] cipher: remove Cipher#encrypt(password, iv) form
- OpenSSL::Cipher#encrypt and #decrypt have long supported a hidden
feature to derive a key and an IV from the String argument, but in an
inappropriate way.
This feature is undocumented, untested, and has been deprecated since
commit http... -
04:40 PM Revision 0b9644c2 (git): [ruby/openssl] AWS-LC has support for parsing ber constructed strings now
- https://github.com/ruby/openssl/commit/cdfc08db50
-
03:31 PM Bug #21340 (Open): Bump autoconf version to properly handle C23 bool/stdbool defines
- We see this on CI that uses Ubuntu 24.04, since it uses autoconf 2.71 like the environment that makes the release tarballs.
https://github.com/ruby/ruby/actions/runs/15047656643/job/42294231514#step:8:159
> checking for stdbool.h that ... -
01:45 PM Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines
- nobu (Nobuyoshi Nakada) wrote in #note-1:
> Isn't `HAVE_STDBOOL_H` defined?
> ...
Not if you build on GCC 15 (or C23) using the ./configure script packaged with the official ruby release tar.gz.
GCC 15 bumps the default C standard ... -
01:16 AM Bug #21340 (Feedback): Bump autoconf version to properly handle C23 bool/stdbool defines
- Isn't `HAVE_STDBOOL_H` defined?
`HAVE_STD_BOOL_H` should be for `std_bool.h`.
- 03:21 PM Revision b2ab1b04 (git): Update bundled gems list as of 2025-05-15
-
03:18 PM Revision 4fc5047a (git): [DOC] Tweaks for String#=~ (#13325)
-
03:05 PM Revision c3eb4068 (git): Update power_assert for `opt_new`
- https://bugs.ruby-lang.org/issues/21298#note-5
-
02:29 PM Revision 31ba8816 (git): Disable GC when building id2ref table
- Building that table will likely malloc several time which
can trigger GC and cause race condition by freeing objects
that were just added to the table.
Disabling GC to prevent the race condition isn't elegant,
but iven this is a depreca... -
02:06 PM Revision 60ffb714 (git): Ensure shape_id is never used on T_IMEMO
- It doesn't make sense to set ivars or anything shape
related on a T_IMEMO.
Co-Authored-By: John Hawthorn <[email protected]> -
11:32 AM Revision ed632cd0 (git): Add missing lock in `rb_gc_impl_undefine_finalizer`
- The table is global so accesses must be synchronized.
-
11:26 AM Revision 3d1b8e72 (git): newobj_fill: don't assume RBasic size
- The previous implementation assumed `RBasic` size is `2 * sizeof(VALUE)`,
might as well not make assumption and use a proper `sizeof`.
Co-Authored-By: John Hawthorn <[email protected]> -
10:49 AM Bug #21339: Namespace: `RubyVM::InstructionSequence.load_iseq` isn't called for the root namespace
- Basically dependent or even caused by #21324 then
-
01:58 AM Bug #21339: Namespace: `RubyVM::InstructionSequence.load_iseq` isn't called for the root namespace
- It works as expected with `--disable=gems`.
```
$ RUBY_NAMESPACE=1 ./local/bin/ruby --disable=gems test.rb
./local/bin/ruby: warning: Namespace is experimental, and the behavior may change in the future!
See doc/namespace.md for kn... -
10:07 AM Bug #21341: `Namespace is not a module (TypeError)` without enabling the namespace
- This only triggers the TypeError for the top-level module Namespace, not when it’s nested inside another module.
```ruby
$ ruby -ve 'module Foo; module Namespace; end; end'
ruby 3.5.0dev (2025-05-15T08:25:56Z master 427ede2dde) +PRI... -
09:59 AM Bug #21341: `Namespace is not a module (TypeError)` without enabling the namespace
- This code comes from a Rails test case, so we can change it if needed. However, there might be other cases to consider.
-
09:40 AM Bug #21341 (Open): `Namespace is not a module (TypeError)` without enabling the namespace
- Ruby on Rails test case has the `module Namespace`.
https://github.com/rails/rails/blob/main/activemodel/test/validators/namespace/email_validator.rb#L5
```ruby
module Namespace
class EmailValidator < ::EmailValidator
end
e... -
09:56 AM Revision 186e60cb (git): YJIT: handle opt_aset_with
- ```
# frozen_string_ltieral: true
hash["literal"] = value
``` -
08:48 AM Revision 2e3f8183 (git): Align styles [ci skip]
-
08:25 AM Revision 427ede2d (git): CI: Fix revision.h on Windows
- - Quote % inside `if` block
- Use short branch name - 06:50 AM Revision 87261c2d (git): Ensure that forked process do not see invalid blocking operations. (#13343)
-
06:39 AM Revision 49b306ec (git): [Bug #21333] Prohibit hash modification inside Hash#update block
-
06:08 AM Revision a5da3682 (git): CI: Refine setup on Windows
- Get rid of hardcoded paths
- 05:51 AM Revision a4ce8639 (git): Add `continue-on-error` to failed Windows 2025 build.
-
04:07 AM Bug #21333: heap-use-after-free caused by rehash during update
- https://github.com/ruby/ruby/pull/13344
05/14/2025
-
11:59 PM Bug #21338: TracePoint Not Triggered for Kernel#block_given?
- ruby-prof does listen for C calls. See:
https://github.com/ruby-prof/ruby-prof/blob/master/ext/ruby_prof/rp_profile.c#L337
``` c
void prof_install_hook(VALUE self)
{
prof_profile_t* profile = prof_get_profile(self);
VALUE even... -
02:11 PM Bug #21338 (Rejected): TracePoint Not Triggered for Kernel#block_given?
- It's a C method in 3.4, so you can listen for `:c_call`:
```
ruby -ve 'TracePoint.new(:c_call) { p _1 }.enable { block_given? }'
```
Wether something is a C or Ruby method is not something we guarantee to be stable, though, so it... -
08:18 AM Bug #21338 (Rejected): TracePoint Not Triggered for Kernel#block_given?
- When updating ruby-prof for Ruby 3.4, various tests now fail because a method enter/leave tracepoint is not triggered for `Kernel#block_given?` For example:
https://github.com/ruby-prof/ruby-prof/blob/master/test/line_number_test.rb#L... -
07:24 PM Revision 7afee53f (git): [DOC] Tweaks for String#<< (#13306)
-
07:24 PM Revision 10e8119c (git): [DOC] Tweaks for String#== (#13323)
-
07:01 PM Revision 76ec41bf (git): Bump ABI_VERSION
- `struct RTypedData` was changed significantly in https://github.com/ruby/ruby/pull/13190
which breaks many extensions.
Bumping the ABI version might save some people from needlessly
investigating crashes. -
06:52 PM Bug #17420: Unsafe mutation of $" when doing non-RubyGems require in Ractor
- Yep, the original ticket was about incorrectly allowing `require` in Ractors and that could segfault.
https://github.com/ruby/ruby/pull/11142 is the proper fix. -
01:59 PM Bug #17420 (Closed): Unsafe mutation of $" when doing non-RubyGems require in Ractor
- I hope I'm not misinterpreting the ticket.
Since https://github.com/ruby/ruby/pull/11142 you can now require from a Ractor. `$"` is of course still not readable from a background ractor, but I think the ticket was really about `require`. -
06:50 PM Bug #21329: `date_core.so` is broken with the recent MSYS2 update
- https://github.com/ruby/setup-msys2-gcc/pull/26#issuecomment-2877229861
The root cause is that the extension is compiled against a newer version of `libwinpthread-1.dll` and headers from msys2, but at the runtime ruby always load `$ruby... -
02:09 AM Bug #21329: `date_core.so` is broken with the recent MSYS2 update
- We need to backport fix if the problem is our side. This ticket is reminder for that.
-
06:34 PM Revision b00a3396 (git): [DOC] Tweaks for String#[] (#13335)
-
06:33 PM Revision 1f72512b (git): [DOC] Tweaks for String#[]=
-
05:31 PM Bug #21037 (Closed): Ractors hang with multiple threads
- Fixed in 1d4822a
-
05:02 PM Bug #21037: Ractors hang with multiple threads
- I didn't tag the commit message properly, but this can be closed. PR https://github.com/ruby/ruby/pull/12633 was merged. Thanks!
-
05:30 PM Bug #17624 (Closed): Ractor.receive is not thread-safe
- Fixed in 1d4822a
-
05:02 PM Bug #17624: Ractor.receive is not thread-safe
- I didn't tag the commit message properly, but this can be closed. PR https://github.com/ruby/ruby/pull/12633 was merged. Thanks!
-
05:21 PM Bug #21315: Finalizers violate the `rb_ractor_confirm_belonging` assertion
- I agree with John, I think we need to find the next eligible ractor for finalizers after ractor termination.
-
05:13 PM Feature #21279: Bare "rescue" should not rescue NameError
- I wondered how it looks in the real world (not really, I only ran against tests) so I wrote some code:
```rb
require "prism"
by_message = Hash.new(0)
by_location = Hash.new(0)
class Visitor < Prism::Visitor
attr_reader :hit
def in... - 05:11 PM Revision ee7dcef0 (git): Update default gems list at 57f8dde0f2228dbc67503403d740a7 [ci skip]
-
05:10 PM Revision 57f8dde0 (git): [ruby/erb] Version 5.0.1
- https://github.com/ruby/erb/commit/42f389dc45
-
05:06 PM Revision ef0e4406 (git): Revert "Set WASMTIME_BACKTRACE_DETAILS=1 for WASM basictest"
- This reverts commit cb88edf0bfdc2ce6bfbe3b4e0463a4c2dc5d2230.
It didn't help. You need to go to a different repository (ruby/ruby.wasm)
to see meaningful backtraces.
https://github.com/ruby/ruby.wasm/actions/runs/15000135135/job/4214467... -
04:35 PM Bug #21340 (Closed): Bump autoconf version to properly handle C23 bool/stdbool defines
- Right now if I install a recent release using rbenv or asdf, or manually download the latest release 3.4.3 or the preview 3.5.0, the included `./configure` seems to have been generated by an old version of autoconf. After running `./conf...
-
04:06 PM Feature #21311: Namespace on read (revised)
- Eregon (Benoit Daloze) wrote in #note-85:
> What are the advantages of running multiple Rails apps in one process instead of one process per Rails app?
One advantage is operational simplicity, only one process to boot / monitor. Nam... -
02:04 PM Feature #21311: Namespace on read (revised)
- What are the advantages of running multiple Rails apps in one process instead of one process per Rails app?
That seems similar to the "Mounting multiple server-less applications in one process" motivation, and so I see the same disadvan... -
03:39 PM Revision 1825ae45 (git): ZJIT: Add CI runs for building with YJIT
-
03:39 PM Revision 92b218fb (git): YJIT: ZJIT: Allow both JITs in the same build
- This commit allows building YJIT and ZJIT simultaneously, a "combo
build". Previously, `./configure --enable-yjit --enable-zjit` failed. At
runtime, though, only one of the two can be enabled at a time.
Add a root Cargo workspace that c... -
02:26 PM Bug #20726 (Closed): Issue with hash without braces when assigned to constant with ractor literals
- This no longer reproduce with either parser, so I'm going to assume it was fixed.
-
02:20 PM Bug #21339 (Assigned): Namespace: `RubyVM::InstructionSequence.load_iseq` isn't called for the root namespace
- ```ruby
File.write("/tmp/compile-cache.rb", <<~'RUBY')
class << RubyVM::InstructionSequence
def load_iseq(path)
p [:load_iseq, path]
RubyVM::InstructionSequence.compile_file(path)
end
end
RUBY
File.write(... -
02:05 PM Bug #18412 (Closed): Segfault in test_ractor.rb
- This report being about CI failures, I'm going to assume it was fixed otherwise we'd still see it today.
-
02:04 PM Bug #17998 (Closed): ractor: process hanging (with ractors initialized, but not being used)
- The reproduction steps aren't very clear to me.
But the backtrace shows `fork` and `finalizers` are involved. Since Ractors received fixes around this area recently and the issue date back to 3.0.1, I'm going to assume it has been fix... -
01:52 PM Bug #17677 (Closed): Ractor crashes fork when blocking
- I can't reproduce on master nor on any version since 3.0.3.
I'm going to assume this was fixed. -
12:41 PM Revision b5575a80 (git): Reduce `Object#object_id` contention.
- If the object isn't shareable and already has a object_id
we can access it without a lock.
If we need to generate an ID, we may need to lock to find
the child shape.
We also generate the next `object_id` using atomics. -
11:13 AM Revision 920dc0fe (git): ZJIT: Split long `use` line and add a module doc.
-
11:13 AM Revision 4eff1727 (git): ZJIT: More tests for parsing param forms
-
11:13 AM Revision 37d6de53 (git): ZJIT: Infer ArrayExact for the rest parameter
- The rest parameter is always a rb_cArray, even when anonymous. (This is
different from kw_rest, which can be nil.) -
11:13 AM Revision 767e8e16 (git): ZJIT: Fix rest parameter not parsed into a BB parameter
- Use total parameter size instead of lead parameter size when parsing
iseq into hir. Also, copy over IntoUsize for compile-time checked
u32->usize cast. -
11:13 AM Revision 074dce83 (git): ZJIT: Add IntoUsize, ported from YJIT
-
09:41 AM Revision f9c3fecc (git): Rename `id_to_obj_tbl` -> `id2ref_tbl`
- As well as associated functions, this should make it more obvious
what the purpose is. -
08:26 AM Revision 94001197 (git): Fix `object_id` for classes and modules in namespace context
- Given classes and modules have a different set of fields in every
namespace, we can't store the object_id in fields for them.
Given that some space was freed in `RClass` we can store it there
instead. -
08:21 AM Bug #21297 (Closed): Update net-imap for ruby 3.2, 3.3, 3.4
-
08:17 AM Revision 130d6aae (git): Reclaim one `VALUE` from `rb_classext_t` by shrinking `super_classdepth`
- By making `super_classdepth` `uint16_t`, classes and modules can
now fit in 160B slots again.
The downside of course is that before `super_classdepth` was large
enough we never had to care about overflow, as you couldn't
realistically c... -
07:16 AM Bug #21333: heap-use-after-free caused by rehash during update
- byroot (Jean Boussier) wrote in #note-3:
> So `#update` with block isn't considered iteration, so it doesn't increase the `iterlevel` hence `#rehash` is mistakenly allowed.
> ...
byroot (Jean Boussier) wrote in #note-2:
> ```ruby
> .... -
06:20 AM Bug #21331: heap-use-after-free caused by rehash during transform_values!
- @nobu given you reverted your fix, should we re-open?
-
12:15 AM Bug #21331: heap-use-after-free caused by rehash during transform_values!
- ruby_3_4 commit:862480a316c014d2b4659b22cd12e311c0810105 merged revision(s) commit:bb180b87b43c45e17ff49735a26d7a188d5c8396.
-
06:13 AM Revision f855bcc6 (git): Applied rake vendor:install
-
06:13 AM Revision cc3d304b (git): [rubygems/rubygems] Try cgi-0.5.0.beta2
- https://github.com/rubygems/rubygems/commit/5d5e37bf23
-
06:13 AM Revision a89460a8 (git): [rubygems/rubygems] Reenable skipped specs in truffleruby since they should be fixed
- https://github.com/rubygems/rubygems/commit/a7cbec95c1
-
06:13 AM Revision 52d72979 (git): [rubygems/rubygems] Update vendored version and patch for net-http and net-http-persistent
- https://github.com/rubygems/rubygems/commit/b9a4722d5e
-
06:08 AM Revision a7af85a7 (git): Use gh cache
-
06:08 AM Revision af741305 (git): Purge the oldest TRAP cache with gh actions-cache cli
-
06:08 AM Revision 3b459b5a (git): Disabled TRAP cache of CodeQL
-
04:58 AM Bug #21336 (Closed): "Cannot malloc during GC" on WASM
- Closed by commit:b66c5c3b1b31581960bcb69d49b618d69ae2a87f
-
12:53 AM Bug #21336 (Closed): "Cannot malloc during GC" on WASM
- The patch for [Bug #21331] https://github.com/ruby/ruby/pull/13317 introduced a new bug for WASM build.
```
basictest/test.rb:array ...........................basictest/test.rb:53: [BUG] Cannot malloc during GC
ruby 3.5.0dev (2025-0... -
04:57 AM Bug #21337 (Closed): Using `not` on the RHS of a logical operator becomes valid syntax with Prism
- The following syntax behavior differs between Ruby 3.3 (parse.y by default) and Ruby 3.4 (Prism by default).
```ruby
if true && not true; end
```
## Expected
In Ruby 3.3 and earlier, the following code results in a syntax erro... -
03:11 AM Revision a38531fd (git): v3.4.4
-
03:10 AM Revision d8e7ab99 (git): YJIT: Split the block on optimized getlocal/setlocal (#13331)
-
03:09 AM Revision 86f5cec7 (git): Add misc/tsan_suppressions.txt
-
03:01 AM Revision a21b88a6 (git): [Bug #21331] Prohibit hash modification during stlike loop
-
03:00 AM Revision 22f2047a (git): Remove unused retval assignments
-
03:00 AM Revision fbcb3271 (git): Revert "[Bug #21331] Prohibit modification during stlike loop"
- This reverts commit bb180b87b43c45e17ff49735a26d7a188d5c8396, which
caused "malloc during GC" error on wasm. -
01:37 AM Revision 7793b59c (git): [Bug #21331] Prohibit hash modification during stlike loop
-
01:28 AM Feature #21335: Namespaces should be present in the backtrace
- mame (Yusuke Endoh) wrote in #note-2:
> As the current behavior of the backtrace, if the receiver class is completely bound to the constant names, they are prefixed to the method names in the backtrace.
Ah, ok, I didn't know that. T... -
01:08 AM Feature #21335: Namespaces should be present in the backtrace
- The `ns_id` seems good to be shown in backtrace (I'm unsure about this format is good or not):
```
foo.rb:7:in namespace(1) 'Foo.test'
``` -
12:50 AM Feature #21335: Namespaces should be present in the backtrace
- It is possible to change how to display the backtrace to show class names that are not completely bound to constants.
I have conservatively designed the current spec of the backtrace to avoid potential confusing output, but I'm not sure... -
12:45 AM Feature #21335: Namespaces should be present in the backtrace
- As the current behavior of the backtrace, if the receiver class is completely bound to the constant names, they are prefixed to the method names in the backtrace. So, if you do:
```ruby
NS1 = Namespace.new
NS1.load "foo.rb"
NS2 =... -
01:26 AM Revision 7f5b4fb2 (git): Remove unused retval assignments
-
01:23 AM Revision b66c5c3b (git): Revert "[Bug #21331] Prohibit modification during stlike loop"
- This reverts commit bb180b87b43c45e17ff49735a26d7a188d5c8396, which
caused "malloc during GC" error on wasm. -
12:19 AM Bug #21327: Windows builds seem broken after clock_gettime changes?
- ruby_3_4 commit:65e02ab1a6e4482f417ec1d1cb4453958ad36ca3 merged revision(s) commit:3e47e7a499acd256be549935fcb559d3c82e556c, commit:b48b841378f80e16378ceb83f3b78e52df9ae023, commit:2fe8b9cd3d308d754f3d33a948dfb1dd782a10dc.
-
12:19 AM Bug #21327 (Closed): Windows builds seem broken after clock_gettime changes?
- Applied in changeset commit:git|65e02ab1a6e4482f417ec1d1cb4453958ad36ca3.
----------
merge revision(s) 3e47e7a499acd256be549935fcb559d3c82e556c, b48b841378f80e16378ceb83f3b78e52df9ae023, 2fe8b9cd3d308d754f3d33a948dfb1dd782a10dc: [Backpo... -
12:18 AM Revision 65e02ab1 (git): merge revision(s) 3e47e7a499acd256be549935fcb559d3c82e556c, b48b841378f80e16378ceb83f3b78e52df9ae023, 2fe8b9cd3d308d754f3d33a948dfb1dd782a10dc: [Backport #21327]
- Fix redefinition of `clock_gettime` and `clock_getres`
winpthreads-git 12.0.0.r720 provides `clock_gettime` and
`clock_getres` as inline functions.
digest.so needs ruby/digest.h which is installed by build-ext
... -
12:17 AM Bug #21334: Namespaces and object reference sharing
- I would have appreciated something like, the two last examples are clear, could you provide code for the first one?
By rejecting this way, you have lost me. -
12:03 AM Bug #21334: Namespaces and object reference sharing
- This is not about whether the ticket is "normal" or not. The fact is, your explanation is vague and incomplete. You may feel it’s obvious, but it isn’t.
Do not assume others are smart enough to understand your explanation based on nat... -
12:14 AM Revision 862480a3 (git): merge revision(s) bb180b87b43c45e17ff49735a26d7a188d5c8396: [Backport #21331]
- [Bug #21331] Prohibit modification during stlike loop
-
12:13 AM Bug #21289: Fix C level backtraces for USE_ELF
- ruby_3_4 commit:ac311437d3c4d60fe4ac100e9652b0cbc3e5f481.
-
12:12 AM Bug #21257: YJIT can generate infinite loop when OOM
- ruby_3_4 commit:50b1759be00713535c41f5650feb3967c533450a.
-
12:05 AM Revision cb88edf0 (git): Set WASMTIME_BACKTRACE_DETAILS=1 for WASM basictest
- https://github.com/ruby/ruby/actions/runs/15008767265/job/42173424631
"error while executing at wasm backtrace" doesn't have meaningful
symbols. We can't debug this from just looking at the "[BUG] Cannot
malloc during GC" message.
As su...
05/13/2025
-
11:54 PM Revision 1d3221ad (git): [ruby/erb] Give up on using resolve_feature_path
- Apparently `$LOAD_PATH.resolve_feature_path('erb/escape')` returns true
for miniruby but `require 'erb/escape'` fails on it.
I still don't want to check it and rescue LoadError at the same time
because the code looks too complicated. Le... -
11:41 PM Bug #21334: Namespaces and object reference sharing
- I have spent countless hours of my free time on namespaces in the last days. I experimented with the feature again tonight, and wrote this ticket with care, looking for edge cases, and presenting them, past midnight.
While rejecting on ... -
11:09 PM Bug #21334: Namespaces and object reference sharing
- > If you call something like ref.http_client.fetch, the method fetch is executed in the context of the namespace where http_client lives. That's the namespace where blank? is defined. So in that case, the call should work.
`blank?` was ... -
11:01 PM Bug #21334 (Rejected): Namespaces and object reference sharing
- I've lost count of how many times I've said this, but here it is again:
**You must provide reproducible code, your expectation, and actual results.**
The current implementation of namespaces is incomplete, and code using real-world... -
10:25 PM Bug #21334: Namespaces and object reference sharing
- > Maybe redefine communication across namespaces in a very restrictive way that make these issues by design
Maybe redefine communication across namespaces in a very restrictive way that **prevents** these issues by design -
10:19 PM Bug #21334 (Rejected): Namespaces and object reference sharing
- # Implications related to builtin classes and modules
As we know, when a namespace is created, builtin classes in the namespace are as in the root one. This applies to all references to them, explicit or implicit.
This is at the co... -
11:31 PM Revision e8e7daa7 (git): [ruby/erb] Reapply "Refactor the logic of require 'erb/escape'
- (https://github.com/ruby/erb/pull/61)"
This reverts commit https://github.com/ruby/erb/commit/1c9200aab071.
Now that we've bumped BASERUBY, we shouldn't need to rescue the
LoadError.
https://github.com/ruby/erb/commit/846b20fe0e -
10:51 PM Feature #21335 (Open): Namespaces should be present in the backtrace
- Namespaces can call in to other name spaces. I think it might be helpful if namespace information is in the backtrace.
For example:
```ruby
File.binwrite "foo.rb", <<-eorb
class Foo
def self.test(ns1, ns2, count)
if count... -
10:46 PM Feature #21311: Namespace on read (revised)
- Eregon (Benoit Daloze) wrote in #note-82:
> @matz What real-world use cases do you see for Namespace?
One thing I can think of is running multiple Rails applications in one process. Right now Rails applications are basically singlet... -
11:28 AM Feature #21311: Namespace on read (revised)
- mame (Yusuke Endoh) wrote in #note-51:
> This feature proposal is quite exceptional. Because this is a feature strongly driven by @matz himself, and Ruby is matz's language.
> ...
I took some time before replying here to try to find the ... -
06:13 AM Feature #21311: Namespace on read (revised)
- > (In fact, the overhead appears to be only about 5%.)
That's when namespaces aren't used. Since creating a namespace start some sort of de-optimization phase, I assume the impact is way worse with `RUBY_NAMESPACE=1`, but I couldn't ... -
01:46 AM Feature #21311: Namespace on read (revised)
- jhawthorn (John Hawthorn) wrote in #note-79:
> Sorry, I didn't get a chance to review this before it was merged. I really don't think adding this level of indirection to RCLASS_EXT access and similar is a good idea.
Since I was the o... -
10:20 PM Bug #21322: Namespaces and builtin classes as arguments and return values
- This ticket was kind of oriented to docs.
I believe the emphasis has to be different and have created https://bugs.ruby-lang.org/issues/21334.
This one can be close if you will. -
08:46 PM Bug #21333: heap-use-after-free caused by rehash during update
- So `#update` with block isn't considered iteration, so it doesn't increase the `iterlevel` hence `#rehash` is mistakenly allowed.
At first sight the fix is to treat `#update` like an iteration when yielding. -
08:33 PM Bug #21333: heap-use-after-free caused by rehash during update
- ```ruby
$a = (1..1337).to_h { |k| [k, k] }
$b = (1..1337).to_h { |k| [k, k * 2] }
$a.update($b) { |k, o, n|
$a.rehash
}
```
Seem to do the trick. -
08:33 PM Bug #21333: heap-use-after-free caused by rehash during update
- The reproduction script seem missing something? `$b` is `nil` here so the script simply fail.
-
12:19 PM Bug #21333 (Closed): heap-use-after-free caused by rehash during update
- Hi, we found a heap-use-after-free caused by rehash during update
```
$a = (1..1337).to_h { |k| [k, k] }
$a.update($b) { |k, o, n|
$a.rehash
}
```
```
$ git log | head -n4
commit a6435befa76c2ae0525147f934bd9cd1914ffb8a
... -
08:39 PM Revision 2279da2c (git): Bump the required BASERUBY version to 3.1 (#13321)
-
08:30 PM Revision b6698114 (git): Add specs for Set mutation during iteration
-
08:27 PM Bug #21332 (Closed): heap-use-after-free caused by mutating the set
- Applied in changeset commit:git|1ee4b43a56e9539d3b09c08114c59cb49857b956.
----------
Set#merge: raise if called during iteration
[Bug #21332] -
07:41 PM Bug #21332: heap-use-after-free caused by mutating the set
- `Set#merge` is missing a check for iteration: https://github.com/ruby/ruby/pull/13322
-
12:19 PM Bug #21332 (Closed): heap-use-after-free caused by mutating the set
- Hi, we found a heap-use-after-free caused by mutating the set.
hash() returning 0 is important to create the collision and then trigger eql?
```
$flag = false
$c = 0
class C
def hash
return 0
end
def eq... -
08:27 PM Revision 1ee4b43a (git): Set#merge: raise if called during iteration
- [Bug #21332]
- 08:23 PM Revision 1d4822a1 (git): Get ractor message passing working with > 1 thread sending/receiving values in same ractor
- Rework ractors so that any ractor action (Ractor.receive, Ractor#send, Ractor.yield, Ractor#take,
Ractor.select) will operate on the thread that called the action. It will put that thread to sleep if
it's a blocking function and it needs... -
08:05 PM Revision 2fee379f (git): Checkout .github on omnibus result for notifications
- It currently fails like: Can't find 'action.yml'
-
06:23 PM Revision cbaf85cb (git): [ruby/erb] Update the reason why we need to rescue LoadError
- https://github.com/ruby/erb/commit/c2d1f82817
-
06:23 PM Revision c71f9b8a (git): [ruby/erb] Revert "Refactor the logic of require 'erb/escape'
- (https://github.com/ruby/erb/pull/61)"
This reverts commit https://github.com/ruby/erb/commit/1c393aa738f3.
https://github.com/ruby/erb/commit/1c9200aab0 - 06:10 PM Revision f82dce14 (git): Update default gems list at 9db0704e67c8af3b47429e28e1da5e [ci skip]
-
06:09 PM Revision 9db0704e (git): [ruby/erb] Version 5.0.0
- https://github.com/ruby/erb/commit/08b544cdb8
-
06:07 PM Revision 8982bbcb (git): [ruby/erb] Publish constant ERB::VERSION
- Even cgi.gem publicly defines CGI::VERSION today. It's just weird that
ERB::VERSION is kept private at this point.
https://github.com/ruby/erb/commit/46801cbd47 -
06:02 PM Bug #21327: Windows builds seem broken after clock_gettime changes?
- I just tested this with the ruby_3_4 branch. It's failing with:
```
../ruby/win32/win32.c:4795:1: error: redefinition of 'clock_gettime'
4795 | clock_gettime(clockid_t clock_id, struct timespec *sp)
| ^~~~~~~~~~~~~
In file i... -
12:59 AM Bug #21327: Windows builds seem broken after clock_gettime changes?
- It's fixed at https://github.com/ruby/ruby/pull/13302
But cross build is still broken.
* https://rubyci.s3.amazonaws.com/crossruby/crossruby-master-mingw32/log/20250513T000922Z.fail.html.gz
* https://rubyci.s3.amazonaws.com/crossr... - 06:00 PM Revision 4a9d46ce (git): [ruby/erb] Refactor the logic of require 'erb/escape'
- (https://github.com/ruby/erb/pull/61)
https://github.com/ruby/erb/commit/1c393aa738 - 05:50 PM Revision 735f2838 (git): [ruby/erb] Support all cgi.gem versions
- (https://github.com/ruby/erb/pull/60)
https://github.com/ruby/erb/commit/de9bb8c3cc -
05:15 PM Revision 9420fc8a (git): [ruby/stringio] Add a comment to explicit RUBY_FL_USER2 |
- RUBY_FL_USER3
(https://github.com/ruby/stringio/pull/133)
This way when someone removes these flags from Ruby or update them,
they'll find this reference when greping.
Followup: https://github.com/ruby/stringio/pull/128
https://github... -
05:14 PM Revision 96b823a2 (git): [DOC] Tweaks for String#<=>
-
04:37 PM Bug #21331 (Closed): heap-use-after-free caused by rehash during transform_values!
- Applied in changeset commit:git|bb180b87b43c45e17ff49735a26d7a188d5c8396.
----------
[Bug #21331] Prohibit modification during stlike loop -
01:49 PM Bug #21331: heap-use-after-free caused by rehash during transform_values!
- https://github.com/ruby/ruby/pull/13317
-
12:18 PM Bug #21331 (Closed): heap-use-after-free caused by rehash during transform_values!
- Hi, we found a heap-use-after-free caused by rehash during transform_values!.
```
$a = (1..1337).to_h { |k| [k, k] }
$a.transform_values! { |v|
$a.rehash
v * 2
}
```
```
$ git log | head -n4
commit a6435befa76c2ae05... -
02:47 PM Bug #20905: Ruby VM hangs while using ractors
- I was able to reproduce the bug, and rebasing @luke-gru 's patch does indeed fix the hang (I reduced 100M to 10M though cause it's very long otherwise).
@jhawthorn or @tenderlovemaking could you review the PR? The patch make sense to ... -
02:42 PM Bug #17624: Ractor.receive is not thread-safe
- Related to https://bugs.ruby-lang.org/issues/21037
-
02:34 PM Bug #19338 (Closed): Ruby hangs when ouputting warnings inside ractor with VM lock held
- I was able to reproduce this on 3.3, but not on 3.4 not master. So I'll assume it was fixed and close.
-
02:16 PM Revision bb180b87 (git): [Bug #21331] Prohibit modification during stlike loop
- 02:16 PM Revision 1e2a67e1 (git): Fix typo in `NEWS.md`.
-
01:54 PM Bug #21166: Fiber Scheduler is unable to be interrupted by `IO#close`.
- I've renamed `rb_thread_io_interruptible_operation` to `rb_thread_io_blocking_operation` which better suits the naming convention internally.
-
01:52 PM Bug #21166: Fiber Scheduler is unable to be interrupted by `IO#close`.
- https://github.com/ruby/ruby/pull/13127 has been merged, allowing us to move forward with this feature.
-
12:55 PM Revision 2ca87694 (git): Reclaim one `VALUE` from `rb_classext_t`
- The `includer` field is only used for `T_ICLASS`, so by moving
it into the existing union we can save one `VALUE` per class
and module. -
12:00 PM Bug #21330: Namespace: Class and Module frozen status is not namespaced
- The frozen flag is what I missed. I think we should move the flag to `rb_classext_t`.
-
09:56 AM Bug #21330 (Closed): Namespace: Class and Module frozen status is not namespaced
- ```ruby
File.write("/tmp/test.rb", <<~'RUBY')
Hash.freeze
RUBY
ns = Namespace.new
ns.require("/tmp/test.rb")
class Hash
def monkey_patch
end
end
```
Expected behavior:
Since the monkey patch is in a different na... -
11:52 AM Bug #21316: Namespaces leak with permanent names
- @Eregon It has already been fixed. Thank you.
-
11:49 AM Bug #21316: Namespaces leak with permanent names
- @make_now_just In the first two cases, it should be `.dump_in_ns` not `.dump`
-
11:20 AM Bug #21316: Namespaces leak with permanent names
- I found an issue on `Marshal` and `Namespace` maybe related to this ticket.
When dumping an object defined in a namespace using Marshal, the result will vary depending on whether the namespace is held as a variable or constant, and whet... -
11:47 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
- byroot (Jean Boussier) wrote in #note-1:
> ### Half-way solution
> ...
I think this would be a pretty good solution actually, it seems very unlikely to have class names which can't be encoded in UTF-8. -
10:54 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
- In my opinion, we need to introduce a new format for dumping classes/modules correctly.
Marshal uses `c` and `m` (`TYPE_CLASS` and `TYPE_MODULE`) as format prefixes currently, so the format is the following:
```
| 1 byte | ... | ... -
11:40 AM Bug #21324: Namespace loads RubyGems in root Namespace but it should not
- Loading RubyGems creates more constants than just `Gem`:
```
$ ruby -v --disable-gems -e 'a=Object.constants; require "rubygems"; b=Object.constants; p b-a'
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x86_64-linux]
[:Monitor,... -
06:47 AM Bug #21324: Namespace loads RubyGems in root Namespace but it should not
- I've identified the issue and prepared a fix.
The problem is that RubyGems is being loaded into the root namespace during Ruby's boot process, and then all user namespaces inherit this same Gem constant through the Copy-on-Write mecha... -
11:18 AM Bug #19367 (Closed): Issue with ractor local storage API
- Applied in changeset commit:git|c941fced211c7472d6a61e7469b70282ac506ea6.
----------
Throw RuntimeError if getting/setting ractor local storage for non-main ractor
[Bug #19367] -
11:18 AM Revision c941fced (git): Throw RuntimeError if getting/setting ractor local storage for non-main ractor
- [Bug #19367]
-
11:14 AM Bug #21329: `date_core.so` is broken with the recent MSYS2 update
- Some debugging happening at https://github.com/ruby/date/pull/125 already! Should this be moved to the date repo, by the way?
-
03:19 AM Bug #21329 (Closed): `date_core.so` is broken with the recent MSYS2 update
- From https://github.com/ruby/psych/issues/730 and https://github.com/nobu/rdoc/actions/runs/14969443434/job/42046842539#step:5:35
```
Error: test_accept_blank_line(RDocMarkupToAnsiTest): LoadError: 127: The specified procedure could ... -
10:28 AM Revision 7517d762 (git): [DOC] Fix a link and sort links in NEWS.md
-
10:02 AM Revision 5974841d (git): Remove outdated references to FL_SEEN_OBJ_ID
- 10:02 AM Revision 425fa0ae (git): Make `waiting_fd` behaviour per-IO. (#13127)
- - `rb_thread_fd_close` is deprecated and now a no-op.
- IO operations (including close) no longer take a vm-wide lock. -
08:35 AM Revision a6435bef (git): variable.c: Refactor rb_obj_field_* to take shape_id_t
-
07:57 AM Feature #21308: Replacing the Float#to_s (dtoa.c) implementation with a modern algorithm
- The change in https://github.com/ruby/json/pull/768 was an easy win, because the previous implementation was calling into question`Float#to_s` via `rb_funcall`. The overhead of doing so is so extreme, that any implementation that would s...
-
07:52 AM Feature #20610: Float::INFINITY as IO.select timeout argument
- @akr the test is insufficient, you should probably update RubySpec too.
-
07:00 AM Revision fa2414f2 (git): Fix a typo
-
06:49 AM Revision e46fbe62 (git): Psych and SafeYAML was loaded Gem.load_yml, these changes is unnecessary
-
05:37 AM Revision 4d9a1d5b (git): Handle to look up CGI::EscapeExt instead of using LoadError. cgi/escape is provided snce Ruby 2.3
- 05:13 AM Revision c4055709 (git): Update default gems list at cd7495a1d0e003360c96bb9746c1a8 [ci skip]
-
05:12 AM Revision cd7495a1 (git): [ruby/json] Further improve parsing errors
- Report EOF when applicable instead of an empty fragment.
Also stop fragment extraction on first whitespace.
https://github.com/ruby/json/commit/cc1daba860 -
05:12 AM Revision 8cc1aa82 (git): [ruby/json] Add missing single quotes in error messages
- https://github.com/ruby/json/commit/f3dde3cb2f
-
05:12 AM Revision 73d0bd5e (git): [ruby/json] Release 2.12.0
- https://github.com/ruby/json/commit/41f1f6939d
-
05:12 AM Revision 50ef2083 (git): [ruby/json] parser.c: include line and column in error messages
- https://github.com/ruby/json/commit/30e35b9ba5
-
05:12 AM Revision 8f008598 (git): [ruby/json] parser.c: refactor `raise_parse_error` to have document start
- https://github.com/ruby/json/commit/832b5b1a4c
-
04:10 AM Revision a93d9fdc (git): Add a missing dependency for stringio
- 18d395e0784401585b5c14300e689de55e208647
-
03:22 AM Bug #21280 (Closed): StringIO#set_encoding warns when backed by chilled string literal
- Fixed by commit:18d395e0784401585b5c14300e689de55e208647
-
03:20 AM Revision 5e59ae18 (git): [ruby/stringio] Fix Ruby 3.4 check
- https://github.com/ruby/stringio/commit/a27c5d5e2e
Co-authored-by: Sutou Kouhei <[email protected]> -
03:20 AM Revision 18d395e0 (git): [ruby/stringio] Do not issue warning when calling set_encoding if string is chilled
- StringIO does not warn for unchilled unfrozen string or for frozen
string, so it should not warn for chilled string.
https://github.com/ruby/stringio/commit/4ac33b8c70 -
02:22 AM Revision f91480d7 (git): merge revision(s) 719486a642f0e282b02b958069b8b39b85b3aa1e: [Backport #21286]
- Fix C23 (GCC 15) WIN32 compatibility for rb_define_* functions
Fixes [Bug #21286] -
02:20 AM Bug #21286: Windows - MSYS2 just updated to GCC 15.1.0, builds failing
- ruby_3_2 commit:53c09781495b0096eec88e4268a48a13b245097a merged revision(s) commit:719486a642f0e282b02b958069b8b39b85b3aa1e.
-
02:05 AM Revision 9b8c846b (git): Add an additional test to module_eqq
-
01:10 AM Bug #21302 (Closed): Remove or Fix Set#to_h
- Fixed by commit:203199251f723d02f23f5782523d16f91277ea82
-
01:09 AM Revision 20319925 (git): Remove Set#to_h
- This overrides Enumerable#to_h, but doesn't handle a block, breaking
backwards compatibility.
Set#to_h was added in the marshalling support commit, but isn't
necessary for that, as the underlying function is called. Remove
the method de... -
12:05 AM Revision b758b6f2 (git): Prevent namespace inspected strings from GC
05/12/2025
-
11:50 PM Feature #21311: Namespace on read (revised)
- Sorry, I didn't get a chance to review this before it was merged. I really don't think adding this level of indirection to RCLASS_EXT access and similar is a good idea.
Let's look at `rb_class_get_superclass` as an example. This shoul... -
11:16 PM Feature #21311 (Assigned): Namespace on read (revised)
-
09:59 PM Feature #21311: Namespace on read (revised)
- As another datapoint on Linux (Ubuntu 24.04, AMD Ryzen 9800X3D), it looks like it is slower (around 0-5%) but also has higher memory usage by about 5-10%.
```
pre-namespace: ruby 3.5.0dev (2025-05-11T03:09:26Z master 49742414f6) +PRI... -
01:07 PM Feature #21311 (Open): Namespace on read (revised)
- byroot (Jean Boussier) wrote in #note-75:
> > Please open another ticker for further problems, issues, bugs, etc.
> ...
I had a plan to add CI configuration to add `RUBY_NAMESPACE=1` checks and I thought it would not be a part of this.... -
12:52 PM Feature #21311: Namespace on read (revised)
- > Please open another ticker for further problems, issues, bugs, etc.
Right now `RUBY_NAMESPACE=1 make -j btest` fails, are you actively working on adding a CI step that run with `RUBY_NAMESPACE=1` or should I open another ticket to t... -
12:42 PM Feature #21311 (Closed): Namespace on read (revised)
- I've merged the change into master. So, let me close this issue.
Please open another ticker for further problems, issues, bugs, etc. -
11:16 PM Bug #21327 (Assigned): Windows builds seem broken after clock_gettime changes?
-
11:16 PM Bug #21326 (Assigned): Instruction generation differences between parse.y and prism for `def a(x, ...); b(...); end`
-
11:16 PM Bug #21315 (Assigned): Finalizers violate the `rb_ractor_confirm_belonging` assertion
-
11:16 PM Bug #21313 (Assigned): `it` in rescue/ensure on prism
-
11:16 PM Bug #21298 (Assigned): `ObjectSpace.allocation_class_path` returns inconsistent results depending on `TracePoint` state
-
11:16 PM Feature #21277 (Assigned): Windows ARM support
-
11:16 PM Feature #21275 (Assigned): Update to Unicode 17.0
-
11:16 PM Bug #21270 (Assigned): init_fast_fallback_inetsock_internal (default for TCPSocket.new/TCPSocket.open) isn't fiber aware
-
11:16 PM Bug #21266 (Assigned): YJIT GC safety crash with proc objects as block argument
-
11:16 PM Feature #21221 (Assigned): Proposal to upstream ZJIT
-
11:16 PM Bug #21212 (Assigned): IO::Buffer can be freed while its slice is locked
-
11:16 PM Bug #21208 (Assigned): `Ractor#send(move: true)` allow moving objects that are on the stack, and used by C code.
-
11:16 PM Bug #21200 (Assigned): Ractor spuriously hangs, segfaults or errors on TestEtc#test_ractor_parallel
-
11:16 PM Bug #21187 (Assigned): Strings concatenated with `\` getting frozen with literal hashes (PRISM only)
-
11:16 PM Bug #21158 (Assigned): Ractor using 'receive_if' sits in busy wait when there are skipped messages in the incoming queue
-
11:16 PM Bug #21146 (Assigned): VM_ASSERT(expr) gives bad bug report results when another ractor fails an assertion during printing of report
-
11:16 PM Bug #21108 (Assigned): C-c (SIGINT) crashes ruby when looping Ractors are not taken?
-
11:16 PM Bug #21090 (Assigned): SEGV from require in Thread in Ractor
-
11:16 PM Bug #21037 (Assigned): Ractors hang with multiple threads
-
11:16 PM Bug #21007 (Assigned): Ractor scheduler issue when multiple threads in a ractor
-
11:16 PM Bug #20905 (Assigned): Ruby VM hangs while using ractors
-
11:16 PM Bug #20473 (Assigned): Ractor array/hash literals
-
11:16 PM Bug #20346 (Assigned): FiberScheduler.unblock not called by Thread#join when Thread body contains Ractor.take
-
11:16 PM Bug #20167 (Assigned): Code execution isn't recorded in Ractor
-
11:16 PM Bug #19981 (Assigned): bootstraptest/test_ractor.rb: Segmentation fault on arm32
-
11:16 PM Bug #19112 (Assigned): Ractor garbage collection breaks/disables all active tracepoints
-
11:16 PM Bug #18733 (Assigned): Heavy GC allocations cause performance issue with Ractor
-
11:16 PM Bug #18412 (Assigned): Segfault in test_ractor.rb
-
09:10 PM Revision b0502e8f (git): Remove respond_to check from Class#bind_call
-
06:15 PM Bug #21286: Windows - MSYS2 just updated to GCC 15.1.0, builds failing
- I will :) I'm planning to cut an early Ruby 3.4 release this week.
-
10:02 AM Bug #21286: Windows - MSYS2 just updated to GCC 15.1.0, builds failing
- Will you create new ruby stable releases in the next days? I'm asking because I've seen many CI failures and bug reports due to this GCC-15 issue and I wonder if I should release a new RubyInstaller series with this patch or if there wil...
-
04:59 PM Revision c6528548 (git): [ruby/erb] Use cgi/escape instead of deprecated cgi/util
- 04:22 PM Revision 03a7f1ff (git): Update default gems list at 957473d87fc7741c8d36caed8f05db [ci skip]
-
04:21 PM Revision 957473d8 (git): [ruby/psych] Bump version for release
- https://github.com/ruby/psych/commit/b9dec9f811
-
04:19 PM Revision 0c94ae04 (git): [ruby/psych] Fix dumping `StringIO` (and potentially others) on Ruby <= 2.7
- In Ruby < 3.0, the superclass of StringIO was actually already `Data`,
but it doesn't have the expected shape. So, on these earlier versions it errors:
> NoMethodError: undefined method `members' for #<StringIO:0x00005641dd5f2880>
> ...
... -
04:03 PM Revision 53a27f11 (git): YJIT: Split the block on optimized getlocal/setlocal (#13282)
-
03:57 PM Revision 0b6cee73 (git): ZJIT: Stop padding side exits (#13295)
-
03:13 PM Feature #21258: Retire CGI library from Ruby 3.5
- CGI may be an "old" protocol but that maturity brings stability. It means I don't need to run an app server process (like puma) at all. I don't need to worry about open ports, memory leaks, resource leaks, connection pooling, etc. It's e...
-
03:07 PM Revision 64944cf4 (git): [DOC] Remove a garbage
-
02:51 PM Revision 85d9ebc9 (git): Remove duplicate asan_unpoisoning_object
- It's already defined in internal/sanitizers.h.
-
02:16 PM Revision bc6d48bd (git): [DOC] Tweak for String#+@ (#13285)
-
01:57 PM Revision 311b9352 (git): [ruby/erb] [DOC] Make documentation 100%
- https://github.com/ruby/erb/commit/9152ce8db4
-
08:45 AM Revision 46e4c867 (git): Detect `clock_gettime` and `clock_getres` for winpthreads
-
08:45 AM Revision 91375d75 (git): CI: Create proper revision.h on Windows
-
08:45 AM Revision d2ffdb10 (git): Explicit cast down from `double` to `int`
-
08:45 AM Revision ed280611 (git): Do not let files depend on a phony target
-
08:45 AM Revision 543e3a18 (git): Cast up `int` instruction code to `VALUE`
- Fix Visual C warnings:
```
iseq.c(3793): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size
iseq.c(3794): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size
``` -
08:45 AM Revision f1f0cc14 (git): Separate `__has_attribute` from `defined(__has_attribute)`
- Fix Visual C warnings:
```
regenc.h(121): warning C4067: unexpected tokens following preprocessor directive - expected a newline
``` -
07:49 AM Revision 131ba059 (git): test_object_id.rb: use better randomness
- When the test is repeated 20 or more times in the same process
it's not that unlikely for `rand(100_000)` to return the same thing
twice, causing `TestObjectIdTooComplexClass` to fail.
```
1) Failure:
TestObjectIdTooComplexClass#test_... -
03:52 AM Revision f638e148 (git): Support to sync cgi/escape from ruby/cgi repo
- 02:09 AM Revision 4464cbe5 (git): [rubygems/rubygems] Fix doctor command parsing of otool output
- I have several gem dylibs that have a line matching "(compatibility "
with no file path preceding it.
https://github.com/rubygems/rubygems/commit/de9dc2bdc4 -
02:09 AM Revision af799140 (git): [ruby/json] Favor decimal notation over scientific notation for floats
- e.g.
```
JSON.dump(1746861937.7842371)
```
master:
```
"1.https://github.com/ruby/json/commit/746861937784+9"
```
This branch and older json versions:
```
https://github.com/ruby/json/commit/1746861937.7842371
```
In the end it's shor...
05/11/2025
-
09:56 PM Bug #21328: Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
- Or, use GCC 14 for a while, if possible. (I am not familiar with MSYS2)
-
09:56 PM Bug #21328 (Closed): Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
- I believe this is the same issue as #21286.
Please apply the patch of https://github.com/ruby/ruby/pull/13202 yourself, or wait for Ruby 3.3.9. -
03:27 PM Bug #21328 (Closed): Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
- We are facing an issue that starts in 05/03/2025
We have an Azure Devops Pipeline that build and test a project, but in the test step we have the following error:
```
Gem::Ext::BuildError: ERROR: Failed to build gem native extension... -
08:37 PM Revision dc5555d7 (git): Fix -Wmaybe-uninitialized
- ../namespace.c: In function ‘current_namespace’:
../namespace.c:221:48: warning: ‘proc_ns’ may be used uninitialized [-Wmaybe-uninitialized]
221 | if (permit_calling_builtin || (proc_ns && NAMESPACE_USER_P(proc_ns))... -
08:05 PM Revision 8b7a4d16 (git): Handle GC triggering while building the initial `id_to_obj_tbl`
- GC can trigger while we build the table, and if it sweeps an object
with an ID, it may not find it in the `id_to_obj` table. -
05:50 PM Revision 2fe8b9cd (git): Copy to path with the base name
-
05:50 PM Revision b48b8413 (git): digest.so needs ruby/digest.h which is installed by build-ext
-
05:50 PM Revision 204740b7 (git): Revert "Try removing building C API specs in CRuby makefiles entirely"
- This reverts commit 2a9236366d6016738a756caecab03263565a20c7.
spec/ruby/optional/capi/spec_helper.rb doesn't work well for mingw. -
05:50 PM Revision 3e47e7a4 (git): Fix redefinition of `clock_gettime` and `clock_getres`
- winpthreads-git 12.0.0.r720 provides `clock_gettime` and
`clock_getres` as inline functions. -
05:35 PM Revision f2e5f6db (git): Allow T_CLASS and generic types to be too_complex
- The intial complex shape implementation never allowed objects
other than T_OBJECT to become too complex, unless we run out of
shapes.
I don't see any reason to prevent that.
Ref: https://github.com/ruby/ruby/pull/6931 -
05:02 PM Feature #21219: `Object#inspect` accept a list of instance variables to display
- ℹ️ In case it's of interest/inspiration, I released [Inspectable](https://alchemists.io/projects/inspectable) 0.2.0 which tackles what is described in this issue by making it easy to redact sensitive information, slim down verbosity, or ...
-
04:32 PM Misc #21325: make ruby more middle-aged man friendly
nobu (Nobuyoshi Nakada) wrote in #note-2:
> `format` is an alias of `#sprinf` inherited from `Kernel`.
> ...
if format is not ok,
to_s will be good, like Integer, `255.to_s(16)`-
10:27 AM Misc #21325: make ruby more middle-aged man friendly
- `format` is an alias of `#sprinf` inherited from `Kernel`.
We can't rename it. -
04:16 PM Feature #21311: Namespace on read (revised)
- > wanted to make sure everyone is aware of this
What I want all in the thread to realize is that if somewhere in the tree of your object, some code relies on a core extension, that object is automatically not cross-namespace-safe, and y... -
03:09 PM Feature #21311: Namespace on read (revised)
- Example:
```ruby
# main.rb
class C
attr_reader :target
def initialize(target)
@target = target
end
end
ns = Namespace.new
ns.require_relative 'foo'
c = C.new(Object)
ns::Foo.new.m(c)
# foo.rb
class Foo
def m(c)
(c.... -
03:05 PM Feature #21311: Namespace on read (revised)
- fxn (Xavier Noria) wrote in #note-70:
> Maybe you have the C code in your head, I am looking at it as a Ruby programmer would. I have one object reference, and I pass it in method call, no namespace-level constant resolution involved in... -
02:53 PM Feature #21311: Namespace on read (revised)
- > That should not happen, and if it happens, it's a bug. Could you write and show the script to reproduce it?
Exactly, as far as I can tell it does not happen, which to me it means we do not have (1) in place.
It was a way to say that,... -
02:50 PM Feature #21311: Namespace on read (revised)
- fxn (Xavier Noria) wrote in #note-68:
> @tagomoris when I said that (1) would break Ruby semantics I meant that **in the same namespace** you would have two objects with the same ID and different state. That does not happen as far as I ... -
02:44 PM Feature #21311: Namespace on read (revised)
- @tagomoris when I said that (1) would break Ruby semantics I meant that **in the same namespace** you would have two objects with the same ID and different state. That does not happen as far as I can tell.
-
02:24 PM Feature #21311: Namespace on read (revised)
- @tagomoris From the point of view of the Ruby programmer, I have an object, I pass it, and the callee receives a different object. To me, that is (2). Somehow, the object itself has mutated.
We are not talking about constant lookup in t... -
01:59 PM Feature #21311: Namespace on read (revised)
- @fxn I'm unsure I correctly understand what you mean... Let me check your point.
You said:
* The current namespace implementation behaves like (2), not (1).
* The passed value to `ns::C.x` (in the callee namespace side) will be a di... -
10:11 AM Feature #21311: Namespace on read (revised)
- Some of the issues I have noted seem to be addressable and have been added to the TODO. (I have written tickets for them.)
But there is [one](https://bugs.ruby-lang.org/issues/21322) that seems fundamental and worries me. Since this tic... -
10:00 AM Feature #21311: Namespace on read (revised)
- @byroot Thank you for working on the feature. I'll merge the patches soon (had merged one already).
About the crash with `RUBY_NAMESPACE=1`, I'll work on it ASAP after merging the branch once.
I know that the 3-5% performance degrada... -
09:30 AM Feature #21311: Namespace on read (revised)
- Alright, so I can't benchmark with `RUBY_NAMESPACE=1` because I keep running into that crash and can't figure it out.
In the process of trying to find a fix I found multiple other bugs:
- https://github.com/tagomoris/ruby/pull/7
... -
08:12 AM Feature #21311: Namespace on read (revised)
- I submitted a fix for the crash here: https://github.com/tagomoris/ruby/pull/5
But now it's crashing in `require`
```
/Users/byroot/.gem/rubies/head-namespaces/gems/activesupport-7.2.2.1/lib/active_support/inflector/inflections.rb... -
08:02 AM Feature #21311: Namespace on read (revised)
- headline benchmarks (in non-ideal conditions, I was on battery, etc) and **whithout** `RUBY_NAMESPACE=1`:
```
master: ruby 3.5.0dev (2025-05-11T03:09:26Z master 49742414f6) +PRISM [arm64-darwin24]
namespace: ruby 3.5.0dev (2025-05... -
07:47 AM Feature #21311: Namespace on read (revised)
- Trying to run benchmarks with `RUBY_NAMESPACE=1` crashes during init:
```
opt/rubies/head-namespaces/bin/ruby: [BUG] Segmentation fault at 0x0000000000000008
ruby 3.5.0dev (2025-05-11T00:30:16Z namespace-on-read-.. 6629795fff) +PRIS... -
07:34 AM Feature #21311: Namespace on read (revised)
- I opened a PR on yjit-bench with workarounds for both the fiddle issue and the CGI issue: https://github.com/Shopify/yjit-bench/pull/363
I'll see if I can benchmark your branch. -
07:13 AM Feature #21311: Namespace on read (revised)
- > bin/rails aborted!
> ...
Yes, the `cgi` changes broke Rails. You can add `gem "cgi"` to the benchmark's Gemfile to workaround that.
Both Rails nightly CI and Shopify nightly CI are still broken from the recent Set change and got br... -
12:42 AM Feature #21311: Namespace on read (revised)
- `make yjit-bench` is now failing even on master HEAD.
> bin/rails aborted!
> ...
I saw commits to re-organize cgi.
Hmm, I can wait for the fix and will make benchmark outputs if others don't make changes which conflict with the name... -
03:44 PM Bug #21322: Namespaces and builtin classes as arguments and return values
- We have followed the discussion in https://bugs.ruby-lang.org/issues/21311.
I may contribute a doc patch to explain the scope to which root object references behave differently in different namespaces.
A consequence of this design is t... -
01:24 PM Bug #21322: Namespaces and builtin classes as arguments and return values
- The third option is more aligned with my intuitive idea of a new entity with new rules. Instead of a container of methods and constants that `::` can work with, you may need a new kind of language-level entity an "isolate", a "cell", a "...
-
01:01 PM Bug #21322: Namespaces and builtin classes as arguments and return values
- @eregon maybe, but the fact is that you pass an object, and the callee receives a different object. This is not consistent with the current language.
Ideas:
* Introduce the concept of "namespace-level root objects", documented to be sw... -
03:38 PM Revision 54c2edc0 (git): Fix `Namespace#inspect` to display its internal id
-
02:32 PM Revision b94df81b (git): RUBY_TYPED_WB_PROTECTED should be specified with write barrier protection on this object.
- https://github.com/tagomoris/ruby/pull/7
RUBY_TYPED_FREE_IMMEDIATELY can be added because namespace_entry_free does no IO nor
things to block. -
02:32 PM Revision 574127b0 (git): Add missing gc_mark in `autoload_const_mark`
- If we're referencing the namespace object we have to mark it.
-
02:32 PM Revision ae2d5378 (git): Suppress warning about unused variable without VM_CHECK_MODE
-
02:32 PM Revision e9b538bb (git): Fix `namespace_initialize` to not crash on boot
- ```
/opt/rubies/head-namespaces/bin/ruby(sigsegv+0x84) [0x104e897e8]
/usr/lib/system/libsystem_platform.dylib(_sigtramp+0x38) [0x18de56de4]
/opt/rubies/head-namespaces/bin/ruby(object_id+0x80) [0x104d7d420]
/opt/rubies/head-namespaces/bi... -
02:32 PM Revision b132322e (git): Skip mmtk/i686 tests for a while
-
02:32 PM Revision bbcc3782 (git): Skip updating max_iv_count when the namespace cannot be determined
-
02:32 PM Revision c2c5b054 (git): Unexpectedly miss-fixed macro during rebase
-
02:32 PM Revision f0b41ef6 (git): Describe the basic documents of Namespace
-
02:32 PM Revision 8199e6e1 (git): Show experimental warning when namespace is enabled
-
02:32 PM Revision 8ecc04dc (git): Delete code for debugging namespace
-
02:32 PM Revision 82f645e8 (git): Namespace::Entry is long living object
-
02:32 PM Revision 294b52fb (git): Follow the code style about else
-
02:32 PM Revision 90e5ce61 (git): Rename RCLASS_EXT() macro to RCLASS_EXT_PRIME() to prevent using it wrongly
- The macro RCLASS_EXT() accesses the prime classext directly, but it can be
valid only in a limited situation when namespace is enabled.
So, to prevent using RCLASS_EXT() in the wrong way, rename the macro and
let the developer check it i... -
02:32 PM Revision ff790c75 (git): Compact prime classext readable/writable flags
- To make RClass size smaller, move flags of prime classext readable/writable to:
readable - use ns_classext_tbl is NULL or not (if NULL, it's readable)
writable - use FL_USER2 of RBasic flags -
02:32 PM Revision e81d5020 (git): Add yjit/zjit bindings for adding namespace
-
02:32 PM Revision 5ee1ec31 (git): initialize method tables before any GC chance
-
02:32 PM Revision f24ba27d (git): avoid calling ZALLOC after NEWOBJ_OF for RClass: need to return RClass not promoted
-
02:32 PM Revision 4b33b468 (git): Fix function pointer type mismatch with `rb_define_private_method`
- `rb_define_private_method` performs strict type checking on the function
pointer. As a result, we cannot pass the function a generic signature.
```
/github/workspace/src/namespace.c:1097:72: note: expected 'VALUE (*)(void)' {aka 'long... -
02:32 PM Revision cf3e2bba (git): Prevent a compile error of clang's -Wformat-pedantic
- ```
/github/workspace/src/proc.c:2023:65: error: format specifies type 'void *' but the argument has type 'const rb_namespace_t *' (aka 'const struct rb_namespace_struct *') [-Werror,-Wformat-pedantic]
2023 | rb_bug("Unexpected ... -
02:32 PM Revision e7e51749 (git): spec/ruby/core/module/ancestors_spec.rb: Add a guard for Namespace feat.
-
02:32 PM Revision cb99e544 (git): Update common.mk dependencies
-
02:32 PM Revision 8d3cd430 (git): Remove unnecessary prototype declarations
- ```
internal/class.h:158:20: warning: ‘RCLASS_SET_CLASSEXT_TABLE’ declared ‘static’ but never defined [-Wunused-function]
158 | static inline void RCLASS_SET_CLASSEXT_TABLE(VALUE obj, st_table *tbl);
| ^~~~~~~~... -
02:32 PM Revision 1e4f7a28 (git): Fix "old-style function definition"
- ```
namespace.c: In function ‘rb_namespace_available’:
namespace.c:55:1: warning: old-style function definition [-Wold-style-definition]
55 | rb_namespace_available()
| ^~~~~~~~~~~~~~~~~~~~~~
``` -
02:32 PM Revision 382645d4 (git): namespace on read
-
03:09 AM Revision 49742414 (git): Revert "Fix redefinition of `clock_gettime` and `clock_getres`"
- This reverts commit 585598623da949c92d0f2ea94029a863142ec908.
This broke Windows CIs
```
linking miniruby.exe
Creating library miniruby.lib and object miniruby.exp
process.obj : error LNK2019: unresolved external symbol clock_gettim...
05/10/2025
- 10:07 PM Revision 915d0277 (git): Fix typo (newsString -> new String)
-
10:01 PM Bug #21327 (Closed): Windows builds seem broken after clock_gettime changes?
- https://github.com/ruby/ruby/actions/workflows/windows.yml
not sure how stable windows normally is, but this looks consistent since this commit (5855986)
Assigning to nobu to investigate. -
09:57 PM Bug #21326 (Closed): Instruction generation differences between parse.y and prism for `def a(x, ...); b(...); end`
- Diff instructions using:
```sh
DUMP="puts RubyVM::InstructionSequence.compile(ARGV.first).disasm.gsub(/^\d+ /, '')"
RUBY="def a(x, ...); b(...); end"
env -u RUBYOPT \
diff -U99 \
<(./build/ruby -v --parser=parse.y -e "$... -
07:04 PM Misc #21325 (Open): make ruby more middle-aged man friendly
- after 35, I lose all interests about programming.
no linux, no vim, no iterm2, and no much much.
when I want to format a ruby time to string.
I will try `Time.now.format("yy-MM-dd")`,
but I get `private method 'format' calle... -
05:32 PM Revision 98667f82 (git): [DOC] Update documentation for ObjectSpace#each_object
- Co-authored-by: Benoit Daloze <[email protected]>
- 05:32 PM Revision 29b3d683 (git): [DOC] Make clear that current behavior is not ideal
- 05:32 PM Revision a51b4a86 (git): [DOC] ObjectSpace#each_object behavior in multi-Ractor mode
- This behavior of ObjectSpace#each_object has been around since Ruby 3.0
when Ractors were first introduced, but was never documented and has
caused some amount of confusion:
https://bugs.ruby-lang.org/issues/17360
https://bugs.ruby-lang... -
04:43 PM Feature #21311: Namespace on read (revised)
- kou (Kouhei Sutou) wrote in #note-54:
> > building fiddle fails
> ...
I couldn't find the log when fiddle is built during `make yjit-bench`...
Anyway, I'll retry yjit-bench on Linux. -
01:13 PM Feature #21311: Namespace on read (revised)
- @mame
> I am personally excited to see Ruby adding a bold new feature that brings real energy and discussion to the community. This is Ruby. Let's enjoy this moment and move forward together with excitement.
Absolutely.
I would have w... -
09:03 AM Feature #21311: Namespace on read (revised)
- > building fiddle fails
Could you share the error message? -
08:37 AM Feature #21311: Namespace on read (revised)
- > So I ran benchmark/app_fib.rb
Fibonnaci isn't a very interesting benchmark here. It's just the same method being called over and over.
`yjit-bench` contains some macro benchmark that are more likely to have inline cache misses he... -
08:31 AM Feature #21311: Namespace on read (revised)
- On my laptop, building fiddle fails and it prevents running `make yjit-bench`.
So I ran benchmark/app_fib.rb and got results (The result after several times continuous runs):
```
# Ruby 3.4.2
$ time ruby benchmark/app_fib.rb
... -
02:55 PM Revision 6dd7a7bb (git): Refactor `rb_obj_field_get` to handle complex shapes
- This allow to get or set fields without having to worry about the
shape type. -
01:39 PM Revision d9502a83 (git): Rename `rb_field_get` -> `rb_obj_field_get`
- To be consistent with `rb_obj_field_set`.
-
01:22 PM Feature #21258: Retire CGI library from Ruby 3.5
- > It means CGI is not promoted bundled gems.
Is there a reason to skip this step?
For previous extractions we could rely on warnings to keep track of gems that need to be updated while continue to test ruby-head, with this immedi... -
12:36 PM Bug #21324 (Open): Namespace loads RubyGems in root Namespace but it should not
- RubyGems has tons of mutable state, isn't core library and isn't "builtin classes" either, so it should not be in root Namespace, but it is currently:
```
$ RUBY_NAMESPACE=1 ruby -ve 'ns = Namespace.new; p ns::Gem.equal?(Gem)'
ruby 3.... -
12:32 PM Bug #21323: irb fails to start with Namespace
- Looks somewhat similar, `benchmark` loads fine in main namespace but not in other namespace:
```
$ RUBY_NAMESPACE=1 ruby -ve 'require "benchmark"; p Benchmark::VERSION; ns = Namespace.new; File.write "ns.rb", "require :benchmark.to_s; ... -
11:14 AM Bug #21323 (Closed): irb fails to start with Namespace
- ```
$ irb
irb(main):001> 6 * 7
=> 42
$ RUBY_NAMESPACE=1 irb
/home/eregon/prefix/ruby-master/bin/ruby: warning: Namespace is experimental, and the behavior may change in the future!
See doc/namespace.md for know issues, etc.
/hom... -
12:22 PM Bug #21317: Namespaces leak with object IDs
- Seems very related to https://bugs.ruby-lang.org/issues/21322 so let's keep this one closed and discuss there.
-
11:13 AM Bug #21317: Namespaces leak with object IDs
- Full reproducer, showing that even though `Object` is the same reference in all namespaces it can have different constants in different namespaces, but only if calling `constants` in that namespace:
```
$ RUBY_NAMESPACE=1 ruby -ve 'ns ... -
10:13 AM Bug #21317 (Closed): Namespaces leak with object IDs
-
10:12 AM Bug #21317: Namespaces leak with object IDs
- @byroot, if you will, I believe this one can be closed too.
-
08:11 AM Bug #21317: Namespaces leak with object IDs
- I suspect this one was an error of mine. I think we can close.
-
05:33 AM Bug #21317: Namespaces leak with object IDs
- Did you actually test the code? `mod1.constants == mod2.constants` returns `true`.
```
$ cat main.rb
ns = Namespace.new
mod1 = Object
mod2 = ns::Object
p mod1 #=> Object
p mod2 #=> Object
p mod1.object_id == mod2.object_id #=... -
12:20 PM Bug #21322: Namespaces and builtin classes as arguments and return values
- Right, IOW it's the duality between builtin classes and other classes.
Builtin classes' constants, methods, ivar and cvars are all a copy per Namespace (and so potentially differ), even though for all builtin classes they are `equal?` w... -
09:50 AM Bug #21322: Namespaces and builtin classes as arguments and return values
- For example, if I instead do
```ruby
ns = Namespace.new
ns.require_relative 'foo'
c = Class.new
c::X = 1
ns::C.x(c)
```
then `obj::X` resolves as expected in the method.
Method calls somehow seem to be swapping `VALUE`s that correspo... -
09:40 AM Bug #21322: Namespaces and builtin classes as arguments and return values
- > I believe this is consistent with the feature
I say so in the sense that objects with the same ID are equal in the namespace.
However, it could be argued that it is not consistent with Ruby.
`Object` is a constant that stores a clas... -
09:12 AM Bug #21322 (Open): Namespaces and builtin classes as arguments and return values
- @tagomoris thanks for the docs under `doc/namespace.md`.
Unless I missed it, I believe there is an edge case related to builtin classes (using the vocabulary there). Consider:
```ruby
# test.rb
ns = Namespace.new
ns.require_rela... -
12:17 PM Bug #21320: Namespaces leak with constant lookup
- Full repro:
```
# Copy the description program to program.rb, e.g. $ xsel -b > program.rb
$ RUBY_NAMESPACE=1 ruby -ve 'puts "in main"; require "./program"; puts "in namespace"; Namespace.new.require "./program"'
ruby 3.5.0dev (2025-... -
08:36 AM Bug #21320: Namespaces leak with constant lookup
- This is probably a consequence of https://bugs.ruby-lang.org/issues/21318.
-
12:13 PM Bug #21316: Namespaces leak with permanent names
- Right I think in the namespace defining the class/module the `Module#name` needs to not have a prefix, or it will break many gems.
OTOH when used outside, it could be very confusing without a prefix.
> suggested that Class#name shoul... -
08:18 AM Bug #21316: Namespaces leak with permanent names
- Main problem here is that there are many programs that depend on that name.
They may store it somewhere for later `const_get`. For example, [polymorphic Active Record associations](https://guides.rubyonrails.org/association_basics.html#... -
06:22 AM Bug #21316: Namespaces leak with permanent names
- This is definitely not ideal. `Class#name` could end up referring to a different constant.
```ruby
# main.rb
NS = Namespace.new
NS.require "./sub"
# sub.rb
class C; end
p C #=> expected: C
#=> actual: NS::C ← This could r... -
11:06 AM Bug #21318: Namespaces leak with Module.nesting
- Complete reproducer:
```
$ RUBY_NAMESPACE=1 ruby -ve 'p Module.nesting; ns = Namespace.new; File.write "ns.rb", "p Module.nesting"; ns.require "./ns"'
ruby 3.5.0dev (2025-05-10T07:50:29Z namespace-on-read-.. bd4f57f96b) +PRISM [x86_64... -
10:11 AM Bug #21321: Namespaces do not support extending mixins
- > and sorry for the noise.
It's alright, even if the feature is experimental, the sooner bugs are noticed the better. So thank you for experimenting. -
10:09 AM Bug #21321: Namespaces do not support extending mixins
- Yes, please, and sorry for the noise.
-
09:59 AM Bug #21321 (Closed): Namespaces do not support extending mixins
- > cannot repro anymore.
Closing then? -
08:39 AM Bug #21321: Namespaces do not support extending mixins
- I was yesterday running a checkout from May 6. Updated the branch now and cannot repro anymore.
-
08:28 AM Bug #21321: Namespaces do not support extending mixins
- @mame I was here till 4 AM experimenting with this feature.
To be organized, I reported different things in different tickets. These two could be related, but I don't know it. If they are, they will be closed together. -
05:54 AM Bug #21321: Namespaces do not support extending mixins
- I don't think it's really necessary to create a separate ticket for this from #21319, is it?
-
09:59 AM Bug #21319 (Closed): Namespaces do not support including mixins
-
08:34 AM Bug #21319: Namespaces do not support including mixins
- I was yesterday running a checkout from May 6. Updated the branch now and cannot repro anymore.
-
05:46 AM Bug #21319: Namespaces do not support including mixins
- I cannot repro the issue.
```ruby
# main.rb
ns = Namespace.new
ns.require "./sub"
p :success
```
```ruby
# sub.rb
module M
end
class C
include M
end
```
```
$ RUBY_NAMESPACE=1 ./miniruby main.rb
./miniruby: w... -
09:26 AM Revision 58559862 (git): Fix redefinition of `clock_gettime` and `clock_getres`
- winpthreads-git 12.0.0.r720 provides `clock_gettime` and
`clock_getres` as inline functions. -
08:29 AM Revision 7add6b2a (git): ruby/spec has a minimum of Ruby 3.2 now
- 06:59 AM Revision 3c37d6ff (git): Update bundled gems list as of 2025-05-09
-
06:41 AM Revision c75202c5 (git): [Feature #15408] Fix up _id2ref_spec.rb