[ruby-core:121183] [Ruby master Bug#21159] `Module#set_temporary_name` should freeze given name

Issue #21159 has been reported by ko1 (Koichi Sasada). ---------------------------------------- Bug #21159: `Module#set_temporary_name` should freeze given name https://bugs.ruby-lang.org/issues/21159 * Author: ko1 (Koichi Sasada) * Status: Open * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- I think it is preferable to freeze the name. So `#set_temporary_name` should copy and freeze the name string. ```ruby c = Class.new.set_temporary_name(str = +'<c>') p c #=> <c> str.upcase! p c #=> actual: <C> #=> expected: <c> p c.name.frozen? #=> actual: false #=> expected: true ``` From the Ractor's aspect, shareable modules should refer only immutable string. -- https://bugs.ruby-lang.org/

Issue #21159 has been updated by nobu (Nobuyoshi Nakada). Backport changed from 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED, 3.4: REQUIRED https://github.com/ruby/ruby/pull/12819 ---------------------------------------- Bug #21159: `Module#set_temporary_name` should freeze given name https://bugs.ruby-lang.org/issues/21159#change-112122 * Author: ko1 (Koichi Sasada) * Status: Open * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED, 3.4: REQUIRED ---------------------------------------- I think it is preferable to freeze the name. So `#set_temporary_name` should copy and freeze the name string. ```ruby c = Class.new.set_temporary_name(str = +'<c>') p c #=> <c> str.upcase! p c #=> actual: <C> #=> expected: <c> p c.name.frozen? #=> actual: false #=> expected: true ``` From the Ractor's aspect, shareable modules should refer only immutable string. -- https://bugs.ruby-lang.org/

Issue #21159 has been updated by ufuk (Ufuk Kayserilioglu). Backport changed from 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED, 3.4: REQUIRED to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED, 3.4: DONE ruby_3_4 commit:ddb73fbd115631e6dec3bdd230c1cfc13027602e. ---------------------------------------- Bug #21159: `Module#set_temporary_name` should freeze given name https://bugs.ruby-lang.org/issues/21159#change-112181 * Author: ko1 (Koichi Sasada) * Status: Closed * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED, 3.4: DONE ---------------------------------------- I think it is preferable to freeze the name. So `#set_temporary_name` should copy and freeze the name string. ```ruby c = Class.new.set_temporary_name(str = +'<c>') p c #=> <c> str.upcase! p c #=> actual: <C> #=> expected: <c> p c.name.frozen? #=> actual: false #=> expected: true ``` From the Ractor's aspect, shareable modules should refer only immutable string. -- https://bugs.ruby-lang.org/

Issue #21159 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 3.1: DONTNEED, 3.2: DONTNEED, 3.3: REQUIRED, 3.4: DONE to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONE, 3.4: DONE ruby_3_3 commit:1d3c19871d7a0d05a0f0a80e78cfad843b7ef324 merged revision(s) commit:931ac960b6d11937364b6c4e847fdd575ee67980. ---------------------------------------- Bug #21159: `Module#set_temporary_name` should freeze given name https://bugs.ruby-lang.org/issues/21159#change-112348 * Author: ko1 (Koichi Sasada) * Status: Closed * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONE, 3.4: DONE ---------------------------------------- I think it is preferable to freeze the name. So `#set_temporary_name` should copy and freeze the name string. ```ruby c = Class.new.set_temporary_name(str = +'<c>') p c #=> <c> str.upcase! p c #=> actual: <C> #=> expected: <c> p c.name.frozen? #=> actual: false #=> expected: true ``` From the Ractor's aspect, shareable modules should refer only immutable string. -- https://bugs.ruby-lang.org/
participants (4)
-
ko1 (Koichi Sasada)
-
nagachika (Tomoyuki Chikanaga)
-
nobu (Nobuyoshi Nakada)
-
ufuk (Ufuk Kayserilioglu)