[#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:122387] [Ruby Bug#21330] Namespace: Class and Module frozen status is not namespaced

From: "jeremyevans0 (Jeremy Evans) via ruby-core" <ruby-core@...>
Date: 2025-06-03 06:08:35 UTC
List: ruby-core #122387
Issue #21330 has been updated by jeremyevans0 (Jeremy Evans).


ko1 (Koichi Sasada) wrote in #note-4:
> 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:
> 
> 
> ```C
> // include/ruby/internal/fl_type.h
> static inline VALUE
> RB_OBJ_FROZEN_RAW(VALUE obj)
> {
>     return RB_FL_TEST_RAW(obj, RUBY_FL_FREEZE);
> }
> ```
> 
> especially, if nobody freeze builtin classes. Any usecases?

roda-sequel-stack (https://github.com/jeremyevans/roda-sequel-stack) supports and recommends freezing all core classes at runtime (after the application is loaded).  This is how production Roda applications are commonly run.  Freezing core classes is recommended to ensure that no libraries the application is using are modifying the core classes at runtime (they probably aren't, but how can you be sure without freezing them)?

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

* 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