[#122369] [Ruby Bug#21392] Data classes do not allow overriding #inspect — "austin (Austin Ziegler) via ruby-core" <ruby-core@...>

Issue #21392 has been reported by austin (Austin Ziegler).

8 messages 2025/06/01

[#122411] [Ruby Bug#21396] Set#initialize should call Set#add on items passed in — "tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>

Issue #21396 has been reported by tenderlovemaking (Aaron Patterson).

12 messages 2025/06/04

[#122506] [Ruby Feature#21435] Kernel#optional as a conditional #then — "Alexander.Senko (Alexander Senko) via ruby-core" <ruby-core@...>

SXNzdWUgIzIxNDM1IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IEFsZXhhbmRlci5TZW5rbyAoQWxleGFu

11 messages 2025/06/10

[#122557] [Ruby Bug#21445] [BUG] push_mark_stack() called for broken object raised since cd9f447be247478d2eb3da985295735cce20cb23 — "yahonda (Yasuo Honda) via ruby-core" <ruby-core@...>

Issue #21445 has been reported by yahonda (Yasuo Honda).

10 messages 2025/06/19

[#122615] [Ruby Misc#21458] Test 'make install'? — "MSP-Greg (Greg L) via ruby-core" <ruby-core@...>

Issue #21458 has been reported by MSP-Greg (Greg L).

11 messages 2025/06/28

[ruby-core:122388] [Ruby Bug#21330] Namespace: Class and Module frozen status is not namespaced

From: "byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date: 2025-06-03 06:30:12 UTC
List: ruby-core #122388
Issue #21330 has been updated by byroot (Jean Boussier).


> I'm afraid that moving frozen flag into class_ext (and each built-in class variants can has each frozen state) makese OBJ_FROZEN code:

It seems like your sentence is missing a word. Did you mean to say that it will make `OBJ_FROZEN` slower? If so yes, absolutely, but I thought it was a given. Namespaces are introducing a level of indirection it need to be checked and isn't cheap.

But on this note I'm currently working on two patches that may help with that:

  - Moving the frozen bit inside the shape_id: https://github.com/ruby/ruby/pull/13289
  - Delegating classes variables handling: https://github.com/ruby/ruby/pull/13411

With those two changes, once finished, I believe I can come up with a `RB_OBJ_FROZEN_RAW` that has almost the exact same performance.

> Any usecases?

What Jeremy said, but also just consistency? It's very hard to reason about a feature that isn't behaving consistently.



----------------------------------------
Bug #21330: Namespace: Class and Module frozen status is not namespaced
https://bugs.ruby-lang.org/issues/21330#change-113553

* Author: byroot (Jean Boussier)
* Status: Open
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
```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 namespace, I'd expect it to not impact code that is running in another namespace.

Actual behavior:

```
test.rb:9:in '<class:Hash>': can't modify frozen class: Hash (FrozenError)
```

The class is frozen globally, breaking code in other namespaces.

Is this by design, or does that mean the frozen status need to be moved in the `classext_t` as well?

cc @tagomoris 



-- 
https://bugs.ruby-lang.org/
______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/


In This Thread

Prev Next