[ruby-core:111456] [Ruby master Bug#19271] irb ignores rbs and debug with YJIT enabled

Issue #19271 has been reported by olivierlacan (Olivier Lacan). ---------------------------------------- Bug #19271: irb ignores rbs and debug with YJIT enabled https://bugs.ruby-lang.org/issues/19271 * Author: olivierlacan (Olivier Lacan) * Status: Open * Priority: Normal * ruby -v: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Not sure this is a serious issue but when starting IRB with YJIT enabled this (potentially confusing) message is immediately printed: ``` $ RUBY_YJIT_ENABLE=1 irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` This is on a fresh installation of Ruby 3.2.0 with an empty Gemfile in the directory. I haven't run gem pristine on any gem since I hadn't installed any gems after installing Ruby 3.2.0 here but FYI: ``` $ gem list | grep "rbs\|debug" debug (1.7.1) rbs (2.8.2) ``` This seems to suggest that C extensions weren't built for those gems when they were installed during the Ruby installation process. Just to be safe I checked and while I do use rbenv and ruby-build to compile and manage Rubies, I don't have a default gem installer set up so as far as I know these gems weren't installed by my system. -- https://bugs.ruby-lang.org/

Issue #19271 has been updated by olivierlacan (Olivier Lacan). Impossible to edit the original issue but `ruby -v` should read: ``` ruby 3.2.0 (2022-12-25 revision a528908271) [arm64-darwin22] ``` I accidentally ran it in the wrong terminal tab when writing the above. ---------------------------------------- Bug #19271: irb ignores rbs and debug with YJIT enabled https://bugs.ruby-lang.org/issues/19271#change-100826 * Author: olivierlacan (Olivier Lacan) * Status: Open * Priority: Normal * ruby -v: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Not sure this is a serious issue but when starting IRB with YJIT enabled this (potentially confusing) message is immediately printed: ``` $ RUBY_YJIT_ENABLE=1 irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` This is on a fresh installation of Ruby 3.2.0 with an empty Gemfile in the directory. I haven't run gem pristine on any gem since I hadn't installed any gems after installing Ruby 3.2.0 here but FYI: ``` $ gem list | grep "rbs\|debug" debug (1.7.1) rbs (2.8.2) ``` This seems to suggest that C extensions weren't built for those gems when they were installed during the Ruby installation process. Just to be safe I checked and while I do use rbenv and ruby-build to compile and manage Rubies, I don't have a default gem installer set up so as far as I know these gems weren't installed by my system. -- https://bugs.ruby-lang.org/

Issue #19271 has been updated by st0012 (Stan Lo). I can reproduce this without `IRB`: ``` $ RUBY_YJIT_ENABLE=1 ruby -e "require 'foo'" Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 <internal:/Users/st0012/.rbenv/versions/3.2.0/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- foo (LoadError) from <internal:/Users/st0012/.rbenv/versions/3.2.0/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require' from -e:1:in `<main>' ``` Even without `RUBY_YJIT_ENABLE=1` too: (This one doesn't have message about `debug` because I installed it during testing) ``` $ ruby -e "require 'foo'" Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 <internal:/Users/st0012/.rbenv/versions/3.2.0/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- foo (LoadError) from <internal:/Users/st0012/.rbenv/versions/3.2.0/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require' from -e:1:in `<main>' ``` I think it's actually related to Ruby's `LoadError` and it's just happen that `IRB` triggers one during initialization. ---------------------------------------- Bug #19271: irb ignores rbs and debug with YJIT enabled https://bugs.ruby-lang.org/issues/19271#change-100829 * Author: olivierlacan (Olivier Lacan) * Status: Open * Priority: Normal * ruby -v: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Not sure this is a serious issue but when starting IRB with YJIT enabled this (potentially confusing) message is immediately printed: ``` $ RUBY_YJIT_ENABLE=1 irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` This is on a fresh installation of Ruby 3.2.0 with an empty Gemfile in the directory. I haven't run gem pristine on any gem since I hadn't installed any gems after installing Ruby 3.2.0 here but FYI: ``` $ gem list | grep "rbs\|debug" debug (1.7.1) rbs (2.8.2) ``` This seems to suggest that C extensions weren't built for those gems when they were installed during the Ruby installation process. Just to be safe I checked and while I do use rbenv and ruby-build to compile and manage Rubies, I don't have a default gem installer set up so as far as I know these gems weren't installed by my system. -- https://bugs.ruby-lang.org/

Issue #19271 has been updated by k0kubun (Takashi Kokubun). Subject changed from irb ignores rbs and debug with YJIT enabled to irb ignores rbs and debug Description updated Assignee set to hsbt (Hiroshi SHIBATA) ruby -v changed from ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21] to ruby 3.2.0 (2022-12-25 revision a528908271) [arm64-darwin22] YJIT or `RUBY_YJIT_ENABLE=1` doesn't interfere with that process, and I confirmed that this is reproducible without YJIT as @st0012 did. So removing the reference to YJIT from the ticket description, also fixing `ruby -v` as you said. ``` $ rm -rf /opt/rubies/3.2.0 $ rm -rf ~/.gem $ ruby-install 3.2.0 $ /opt/rubies/3.2.0/bin/irb Ignoring debug-1.6.3 because its extensions are not built. Try: gem pristine debug --version 1.6.3 Ignoring rbs-2.7.0 because its extensions are not built. Try: gem pristine rbs --version 2.7.0 irb(main)[01:0]> ``` I recall @hsbt said he'll investigate the issue that those warning messages are printed, so I'll send this to his way. ---------------------------------------- Bug #19271: irb ignores rbs and debug https://bugs.ruby-lang.org/issues/19271#change-100834 * Author: olivierlacan (Olivier Lacan) * Status: Open * Priority: Normal * Assignee: hsbt (Hiroshi SHIBATA) * ruby -v: ruby 3.2.0 (2022-12-25 revision a528908271) [arm64-darwin22] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Not sure this is a serious issue but when starting IRB this (potentially confusing) message is immediately printed: ``` $ irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` This is on a fresh installation of Ruby 3.2.0 with an empty Gemfile in the directory. I haven't run gem pristine on any gem since I hadn't installed any gems after installing Ruby 3.2.0 here but FYI: ``` $ gem list | grep "rbs\|debug" debug (1.7.1) rbs (2.8.2) ``` This seems to suggest that C extensions weren't built for those gems when they were installed during the Ruby installation process. Just to be safe I checked and while I do use rbenv and ruby-build to compile and manage Rubies, I don't have a default gem installer set up so as far as I know these gems weren't installed by my system. -- https://bugs.ruby-lang.org/

Issue #19271 has been updated by hsbt (Hiroshi SHIBATA). Status changed from Open to Assigned I couldn't reproduce this with fresh install of Ruby 3.2.0 from tarball. If you use `GEM_HOME` and share it with each Ruby versions or builds, you may encounter this (It's known issue). After I removed `GEM_HOME` environmental variable, I confirmed to work it correctly. ---------------------------------------- Bug #19271: irb ignores rbs and debug https://bugs.ruby-lang.org/issues/19271#change-101011 * Author: olivierlacan (Olivier Lacan) * Status: Assigned * Priority: Normal * Assignee: hsbt (Hiroshi SHIBATA) * ruby -v: ruby 3.2.0 (2022-12-25 revision a528908271) [arm64-darwin22] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Not sure this is a serious issue but when starting IRB this (potentially confusing) message is immediately printed: ``` $ irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` This is on a fresh installation of Ruby 3.2.0 with an empty Gemfile in the directory. I haven't run gem pristine on any gem since I hadn't installed any gems after installing Ruby 3.2.0 here but FYI: ``` $ gem list | grep "rbs\|debug" debug (1.7.1) rbs (2.8.2) ``` This seems to suggest that C extensions weren't built for those gems when they were installed during the Ruby installation process. Just to be safe I checked and while I do use rbenv and ruby-build to compile and manage Rubies, I don't have a default gem installer set up so as far as I know these gems weren't installed by my system. -- https://bugs.ruby-lang.org/

Issue #19271 has been updated by hsbt (Hiroshi SHIBATA). ``` Ignoring debug-1.6.3 because its extensions are not built. Try: gem pristine debug --version 1.6.3 Ignoring rbs-2.7.0 because its extensions are not built. Try: gem pristine rbs --version 2.7.0 ``` @k0kubun debug-1.6.3 and rbs-2.7.0 are not bundled versions of Ruby 3.2.0. It may mixed other versions on your environment. On the other hands, I got the same reports of @olivierlacan's case from @mame. We are investigating this. ---------------------------------------- Bug #19271: irb ignores rbs and debug https://bugs.ruby-lang.org/issues/19271#change-101012 * Author: olivierlacan (Olivier Lacan) * Status: Assigned * Priority: Normal * Assignee: hsbt (Hiroshi SHIBATA) * ruby -v: ruby 3.2.0 (2022-12-25 revision a528908271) [arm64-darwin22] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Not sure this is a serious issue but when starting IRB this (potentially confusing) message is immediately printed: ``` $ irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` This is on a fresh installation of Ruby 3.2.0 with an empty Gemfile in the directory. I haven't run gem pristine on any gem since I hadn't installed any gems after installing Ruby 3.2.0 here but FYI: ``` $ gem list | grep "rbs\|debug" debug (1.7.1) rbs (2.8.2) ``` This seems to suggest that C extensions weren't built for those gems when they were installed during the Ruby installation process. Just to be safe I checked and while I do use rbenv and ruby-build to compile and manage Rubies, I don't have a default gem installer set up so as far as I know these gems weren't installed by my system. -- https://bugs.ruby-lang.org/

Issue #19271 has been updated by hsbt (Hiroshi SHIBATA). We have two issues. * Installation failure of C extension provided by bundled gems. * https://bugs.ruby-lang.org/issues/19275 * Ignore messages will be displayed despite installation successfully. ---------------------------------------- Bug #19271: irb ignores rbs and debug https://bugs.ruby-lang.org/issues/19271#change-101015 * Author: olivierlacan (Olivier Lacan) * Status: Assigned * Priority: Normal * Assignee: hsbt (Hiroshi SHIBATA) * ruby -v: ruby 3.2.0 (2022-12-25 revision a528908271) [arm64-darwin22] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Not sure this is a serious issue but when starting IRB this (potentially confusing) message is immediately printed: ``` $ irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` This is on a fresh installation of Ruby 3.2.0 with an empty Gemfile in the directory. I haven't run gem pristine on any gem since I hadn't installed any gems after installing Ruby 3.2.0 here but FYI: ``` $ gem list | grep "rbs\|debug" debug (1.7.1) rbs (2.8.2) ``` This seems to suggest that C extensions weren't built for those gems when they were installed during the Ruby installation process. Just to be safe I checked and while I do use rbenv and ruby-build to compile and manage Rubies, I don't have a default gem installer set up so as far as I know these gems weren't installed by my system. -- https://bugs.ruby-lang.org/

Issue #19271 has been updated by mame (Yusuke Endoh). Just FYI. Here is an ad-hoc workaround for ruby 3.2.0 tarball. ``` $ tar xf ruby-3.2.0.tar.gz $ cd ruby-3.2.0 $ rm tool/outdate-bundled-gems.rb $ touch tool/outdate-bundled-gems.rb $ ./configure --prefix=/path/to/ruby/installed/ $ make install ``` ---------------------------------------- Bug #19271: irb ignores rbs and debug https://bugs.ruby-lang.org/issues/19271#change-101034 * Author: olivierlacan (Olivier Lacan) * Status: Closed * Priority: Normal * Assignee: hsbt (Hiroshi SHIBATA) * ruby -v: ruby 3.2.0 (2022-12-25 revision a528908271) [arm64-darwin22] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: REQUIRED ---------------------------------------- Not sure this is a serious issue but when starting IRB this (potentially confusing) message is immediately printed: ``` $ irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` This is on a fresh installation of Ruby 3.2.0 with an empty Gemfile in the directory. I haven't run gem pristine on any gem since I hadn't installed any gems after installing Ruby 3.2.0 here but FYI: ``` $ gem list | grep "rbs\|debug" debug (1.7.1) rbs (2.8.2) ``` This seems to suggest that C extensions weren't built for those gems when they were installed during the Ruby installation process. Just to be safe I checked and while I do use rbenv and ruby-build to compile and manage Rubies, I don't have a default gem installer set up so as far as I know these gems weren't installed by my system. -- https://bugs.ruby-lang.org/

Issue #19271 has been updated by naruse (Yui NARUSE). Backport changed from 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: REQUIRED to 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: DONE ruby_3_2 f7e9b79f815e08e0a29fff11f77466f4ffb92520 merged revision(s) 4959e01932cf6c4d3e5e90d3e0b4fa780f754fa6. ---------------------------------------- Bug #19271: irb ignores rbs and debug https://bugs.ruby-lang.org/issues/19271#change-101296 * Author: olivierlacan (Olivier Lacan) * Status: Closed * Priority: Normal * Assignee: hsbt (Hiroshi SHIBATA) * ruby -v: ruby 3.2.0 (2022-12-25 revision a528908271) [arm64-darwin22] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: DONE ---------------------------------------- Not sure this is a serious issue but when starting IRB this (potentially confusing) message is immediately printed: ``` $ irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` This is on a fresh installation of Ruby 3.2.0 with an empty Gemfile in the directory. I haven't run gem pristine on any gem since I hadn't installed any gems after installing Ruby 3.2.0 here but FYI: ``` $ gem list | grep "rbs\|debug" debug (1.7.1) rbs (2.8.2) ``` This seems to suggest that C extensions weren't built for those gems when they were installed during the Ruby installation process. Just to be safe I checked and while I do use rbenv and ruby-build to compile and manage Rubies, I don't have a default gem installer set up so as far as I know these gems weren't installed by my system. -- https://bugs.ruby-lang.org/
participants (6)
-
hsbt (Hiroshi SHIBATA)
-
k0kubun (Takashi Kokubun)
-
mame (Yusuke Endoh)
-
naruse (Yui NARUSE)
-
olivierlacan (Olivier Lacan)
-
st0012 (Stan Lo)