From: merch-redmine@... Date: 2019-06-24T22:36:25+00:00 Subject: [ruby-core:93347] [Ruby trunk Bug#13028] Binding#irb upon exiting makes _ retain the value of the last expression and never change it Issue #13028 has been updated by jeremyevans0 (Jeremy Evans). Status changed from Open to Closed This appears to have been fixed between 2.5 and 2.6: ``` $ irb25 irb(main):001:0> binding.irb irb(main):001:0> 1+3 => 4 irb(main):002:0> exit => 0 irb(main):002:0> 1+4 => 5 irb(main):003:0> _ => 4 $ irb26 irb(main):001:0> binding.irb irb(main):001:0> 1+3 => 4 irb(main):002:0> exit => 0 irb(main):002:0> 1+4 => 5 irb(main):003:0> _ => 5 ``` ---------------------------------------- Bug #13028: Binding#irb upon exiting makes _ retain the value of the last expression and never change it https://bugs.ruby-lang.org/issues/13028#change-78854 * Author: dskecse (Dzianis Dashkevich) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.4.0rc1 (2016-12-12 trunk 57064) [x86_64-darwin15] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Given an open `irb` session. After exiting from `binding.irb` the `_`, which is the last value of the current context, somehow retains the value of the last expression evaluated in the context of `binding.irb` and then doesn't change it. This never happens to the `irb` subshell in an open `irb` session. Steps to reproduce: 1. Fire up `irb`. 2. Type `binding.irb`. 3. Get out of the current context by pressing Ctrl-D. 4. Type anything simple like `1+3`. 5. Type `_` to see 4, receive `nil` instead. Another example: 1. Fire up `irb`. 2. Type `binding.irb`. 3. Type any expression to evaluate like `1+3`. 4. Get out of the current context by pressing Ctrl-D. 5. Type anything simple like `1+4`. 6. Type `_` to see 5, receive 4 instead. -- https://bugs.ruby-lang.org/ Unsubscribe: