Project

General

Profile

Actions

Feature #6793

closed

easier ability to "run as the currently running ruby"

Added by rogerdpack (Roger Pack) over 11 years ago. Updated over 6 years ago.

Status:
Feedback
Assignee:
-
Target version:
-
[ruby-core:46774]

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:
current_ruby = OS.ruby_bin
system("#{current_ruby} another_file.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 1 (0 open1 closed)

Is duplicate of Ruby master - Feature #4046: Saving C's **argv and cwd allows Ruby programs to reliably restart themselvesFeedbackActions

Updated by luislavena (Luis Lavena) over 11 years 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

Updated by Eregon (Benoit Daloze) over 11 years 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).

Updated by naruse (Yui NARUSE) over 11 years 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.

Updated by Eregon (Benoit Daloze) over 11 years 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.

Actions #5

Updated by mame (Yusuke Endoh) over 11 years ago

  • Target version set to 2.6
Actions #6

Updated by naruse (Yui NARUSE) over 6 years ago

  • Target version deleted (2.6)
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0