Feature #6793

easier ability to "run as the currently running ruby"

Added by Roger Pack over 1 year ago. Updated over 1 year ago.

[ruby-core:46774]
Status:Feedback
Priority:Normal
Assignee:-
Category:-
Target version:next minor

Description

Hello all. I couldn't remember if this had been requested before or not but...

It would be kind to be able to do:
currentruby = OS.rubybin
system("#{currentruby} anotherfile.rb")

And thus guarantee execution of a sub-file using the same ruby executable.

Today we have
system("#{Gem.ruby} another_file.rb")

but I'd like to have something available without loading full rubygems.

Python equivalent: sys.executable

Suggestion:

OS.ruby_bin # or OS.executable, etc.
=> "C:/installs/Ruby193p194/bin/ruby.exe"
or
RbConfig.???
=> "C:/installs/Ruby193p194/bin/ruby.exe"

Thanks.
-roger-


Related issues

Duplicates ruby-trunk - Feature #4046: Saving C's **argv and cwd allows Ruby programs to reliabl... Feedback 11/12/2010

History

#1 Updated by Luis Lavena over 1 year ago

=begin
Already available, no RubyGems involved:

C:\Users\Luis>ruby --disable-gems -rrbconfig -v -e "puts RbConfig.ruby"
ruby 2.0.0dev (2012-07-13 trunk 36378) [i386-mingw32]
C:/Users/Luis/Tools/Ruby/ruby-2.0.0dev-i386-mingw32/bin/ruby.exe

=end

#2 Updated by Benoit Daloze over 1 year ago

luislavena (Luis Lavena) wrote:

=begin
Already available, no RubyGems involved:

C:\Users\Luis>ruby --disable-gems -rrbconfig -v -e "puts RbConfig.ruby"
ruby 2.0.0dev (2012-07-13 trunk 36378) [i386-mingw32]
C:/Users/Luis/Tools/Ruby/ruby-2.0.0dev-i386-mingw32/bin/ruby.exe

=end

Nice, although it's not available in 1.8.

I think the other important part about this subject is #6648: ability to retrieve VM flags, which would allow to relaunch the interpreter the same way (full path to the binary + arguments/flags).

Currently, I work around it by using ps -o args -p pid and GetCommandLineA(), which is far from optimal when we know it's so easily accessible for the VM (argc/args).

#3 Updated by Yui NARUSE over 1 year ago

  • Status changed from Open to Feedback

Eregon (Benoit Daloze) wrote:

luislavena (Luis Lavena) wrote:

=begin
Already available, no RubyGems involved:

C:\Users\Luis>ruby --disable-gems -rrbconfig -v -e "puts RbConfig.ruby"
ruby 2.0.0dev (2012-07-13 trunk 36378) [i386-mingw32]
C:/Users/Luis/Tools/Ruby/ruby-2.0.0dev-i386-mingw32/bin/ruby.exe

=end

Nice, although it's not available in 1.8.

I think the other important part about this subject is #6648: ability to retrieve VM flags, which would allow to relaunch the interpreter the same way (full path to the binary + arguments/flags).

Currently, I work around it by using ps -o args -p pid and GetCommandLineA(), which is far from optimal when we know it's so easily accessible for the VM (argc/args).

argv[0] is not reliable on some environment.
See also my comment on #4046.

#4 Updated by Benoit Daloze over 1 year ago

naruse (Yui NARUSE) wrote:

Eregon (Benoit Daloze) wrote:

Currently, I work around it by using ps -o args -p pid and GetCommandLineA(), which is far from optimal when we know it's so easily accessible for the VM (argc/args).

argv[0] is not reliable on some environment.
See also my comment on #4046.

I meant args to get the VM flags (args[1..argc-1]).

I'm fine using RbConfig for getting the path to the ruby binary for the moment.
I admire your effort to try to solve it without RbConfig.

Sorry for discussing of #6648 here, I should have answered on that thread.

#5 Updated by Yusuke Endoh over 1 year ago

  • Target version set to next minor

Also available in: Atom PDF