From: "byroot (Jean Boussier) via ruby-core" Date: 2025-05-13T09:56:24+00:00 Subject: [ruby-core:122042] [Ruby Bug#21330] Namespace: Class and Module frozen status is not namespace Issue #21330 has been reported by byroot (Jean Boussier). ---------------------------------------- Bug #21330: Namespace: Class and Module frozen status is not namespace https://bugs.ruby-lang.org/issues/21330 * 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 '': 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/