[ruby-core:114356] [Ruby master Bug#19833] Superclass of BasicObject is broken.

Issue #19833 has been reported by ksss (Yuki Kurihara). ---------------------------------------- Bug #19833: Superclass of BasicObject is broken. https://bugs.ruby-lang.org/issues/19833 * Author: ksss (Yuki Kurihara) * Status: Open * Priority: Normal * ruby -v: ruby 3.3.0dev (2023-08-08T00:21:45Z master 69292676a2) [arm64-darwin22] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- I encountered a phenomenon where a non-class object appeared in the superclass of BasicObject. The minimum reproduction code is below. ```rb module Mod end BasicObject.include Mod # or BasicObject.prepend Mod p BasicObject.superclass #=> 2431129 or false ``` I think it is a practical problem because I found it by running code that monitors `singleton_method_added` as follows. https://github.com/ksss/orthoses/blob/341019c78ba625bc5d36c0f359c7d88621990f... -- https://bugs.ruby-lang.org/

Issue #19833 has been updated by znz (Kazuhiro NISHIYAMA). I can reproduce since 3.2. ``` $ docker run --platform linux/amd64 --rm -it ghcr.io/ruby/all-ruby env LANG=C.UTF-8 ALL_RUBY_SINCE=ruby-1.9 ./all-ruby -e 'class BasicObject; include ::Module.new; p superclass; end' ruby-1.9.0-0 nil ... ruby-3.2.0-preview1 nil ruby-3.2.0-preview2 16 ... ruby-3.3.0-preview1 16 ``` ---------------------------------------- Bug #19833: Superclass of BasicObject is broken. https://bugs.ruby-lang.org/issues/19833#change-104099 * Author: ksss (Yuki Kurihara) * Status: Open * Priority: Normal * ruby -v: ruby 3.3.0dev (2023-08-08T00:21:45Z master 69292676a2) [arm64-darwin22] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- I encountered a phenomenon where a non-class object appeared in the superclass of BasicObject. The minimum reproduction code is below. ```rb module Mod end BasicObject.include Mod # or BasicObject.prepend Mod p BasicObject.superclass #=> 2431129 or false ``` I think it is a practical problem because I found it by running code that monitors `singleton_method_added` as follows. https://github.com/ksss/orthoses/blob/341019c78ba625bc5d36c0f359c7d88621990f... -- https://bugs.ruby-lang.org/

Issue #19833 has been updated by nobu (Nobuyoshi Nakada). Backport changed from 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN to 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED https://github.com/ruby/ruby/pull/8185 ---------------------------------------- Bug #19833: Superclass of BasicObject is broken. https://bugs.ruby-lang.org/issues/19833#change-104100 * Author: ksss (Yuki Kurihara) * Status: Open * Priority: Normal * ruby -v: ruby 3.3.0dev (2023-08-08T00:21:45Z master 69292676a2) [arm64-darwin22] * Backport: 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED ---------------------------------------- I encountered a phenomenon where a non-class object appeared in the superclass of BasicObject. The minimum reproduction code is below. ```rb module Mod end BasicObject.include Mod # or BasicObject.prepend Mod p BasicObject.superclass #=> 2431129 or false ``` I think it is a practical problem because I found it by running code that monitors `singleton_method_added` as follows. https://github.com/ksss/orthoses/blob/341019c78ba625bc5d36c0f359c7d88621990f... -- https://bugs.ruby-lang.org/

Issue #19833 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 3.0: DONTNEED, 3.1: DONTNEED, 3.2: REQUIRED to 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONE ruby_3_2 b11f238a811513b31c4f65c822370ac470f438dc merged revision(s) 72d1a790cfe0e4a457db98c587f1acaa5e39f001. ---------------------------------------- Bug #19833: Superclass of BasicObject is broken. https://bugs.ruby-lang.org/issues/19833#change-104133 * Author: ksss (Yuki Kurihara) * Status: Closed * Priority: Normal * ruby -v: ruby 3.3.0dev (2023-08-08T00:21:45Z master 69292676a2) [arm64-darwin22] * Backport: 3.0: DONTNEED, 3.1: DONTNEED, 3.2: DONE ---------------------------------------- I encountered a phenomenon where a non-class object appeared in the superclass of BasicObject. The minimum reproduction code is below. ```rb module Mod end BasicObject.include Mod # or BasicObject.prepend Mod p BasicObject.superclass #=> 2431129 or false ``` I think it is a practical problem because I found it by running code that monitors `singleton_method_added` as follows. https://github.com/ksss/orthoses/blob/341019c78ba625bc5d36c0f359c7d88621990f... -- https://bugs.ruby-lang.org/
participants (4)
-
ksss (Yuki Kurihara)
-
nagachika (Tomoyuki Chikanaga)
-
nobu (Nobuyoshi Nakada)
-
znz (Kazuhiro NISHIYAMA)