Issue #13099 has been updated by Benoit Daloze. Shyouhei Urabe wrote: > Silently requiring something reminds me of multi-threaded autoload situation. Is it OK? Since require is thread-safe, I think the only requirement in this case is that all threads trying to touch IRB first need to require "irb" (so trying to optimize with e.g. require "irb" unless defined?(IRB) would be bad). ---------------------------------------- Bug #13099: Binding#irb does not work outside of irb https://bugs.ruby-lang.org/issues/13099#change-62404 * Author: Eli Sadoff * Status: Rejected * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin15] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- I had read that one of the new features of 2.4.0 is that `Binding#irb` is now a method, so I decided to test this out in a program I was working on. Here is the program ~~~ ruby class Test attr_accessor :x, :y, :z def initialize(x, y, z) @x = x @y = y binding.irb @z = z end end a = Test.new(1, 2, 3) ~~~ And the error that I got is ~~~ binding_test.rb:6:in `initialize': undefined method `irb' for #<Binding:0x007f8562025078> (NoMethodError) from binding_test.rb:11:in `new' from binding_test.rb:11:in `<main>' ~~~ So, I thought that maybe it was an issue with running it in a constructor, so I tried the simpler invocation ~~~ ruby binding.irb ~~~ but I had a problem with that as well, with a very similar error message ~~~ bind.rb:1:in `<main>': undefined method `irb' for #<Binding:0x007ff34984e880> (NoMethodError) ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>