[#104004] [Ruby master Feature#17883] Load bundler/setup earlier to make `bundle exec ruby -r` respect Gemfile — mame@...
Issue #17883 has been reported by mame (Yusuke Endoh).
21 messages
2021/05/24
[ruby-core:103893] [Ruby master Bug#1287] $? not set after Open3::popen3
From:
get.codetriage@...
Date:
2021-05-19 18:10:48 UTC
List:
ruby-core #103893
Issue #1287 has been updated by schneems (Richard Schneeman).
FWIW the work around is to capture the status and re-exec with an exit. It works, but the downside is that shell invocations are not cheap:
``` ruby
irb(main):042:0> a, b, c = Open3.capture3("ls /does/not/exist")
irb(main):043:0> `exit #{c.exitstatus}`
=> ""
irb(main):044:0> $?
=> #<Process::Status: pid 78179 exit 1>
```
----------------------------------------
Bug #1287: $? not set after Open3::popen3
https://bugs.ruby-lang.org/issues/1287#change-92017
* Author: phasis68 (Heesob Park)
* Status: Rejected
* Priority: Normal
* Target version: 1.9.1
* ruby -v: ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]
----------------------------------------
=begin
$? is not set after popen3 in 1.9.1
Try following code:
require 'open3'
status = Open3::popen3("echo hello") do |stdin,stdout,stderr|
stdout.each { |line| puts "stdout:"+line }
end
p $?
[sidns@ns ~]$ ruby -v po.rb
ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-linux]
stdout:hello
#<Process::Status: pid=20140,exited(0)>
[siweb@localhost ~]$ ruby -v po.rb
ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]
stdout:hello
nil
=end
--
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>