MagLev / maglev

GemStone Maglev Ruby Repository
http://maglev.github.io
517 stars 41 forks source link

Binary name collisions #318

Closed srbaker closed 9 years ago

srbaker commented 11 years ago

Most of the names in $MAGLEV_HOME/bin conflict with system-wide installed defaults, preventing the user from using the system-wide defaults.

MagLev's version of ruby, maglev-ruby does the right thing and prefixes the bin with maglev-.

Fix: All bins in $MAGLEV_HOME/bin should be named with a maglev- prefix.

jc00ke commented 11 years ago

I actually think the prefix should be dropped. Rubinius doesn't do it, and AFAIK neither does JRuby. The main reason I know for why we have it is because there are rake tasks for MagLev, and one would need another Ruby to run rake. That being said, I personally would like to see all the MagLev rake tasks go away in favor of shell scripts, or something that doesn't require a whole `nother Ruby implementation to be installed.

Thoughts?

Monty commented 11 years ago

MagLev runs normal rake tasks just fine.

As Jesse pointed out, the problem is that rake scripts that involve starting/stopping/changing MagLev don't work because the MagLev executable has to be running in order for maglev-rake to work.

I looked into converting those tasks to shell scripts, but the complexity seemed high compared to simply using MRI or another ruby to run 'rake maglev:start' etc.

I had a shell script that renamed the binaries to avoid collisions or put them back. So I had the best of both worlds.

Monty commented 11 years ago

The benefit of leaving them unchanged is the ability to handle other scripts that use the canonical names. I had lots of those.

krono commented 11 years ago

I think we should rather try to make the maglev-rake unecessary.

As @timfel told me, rbenv or rvm may be are able to provide prefixed binaries for each vm incarnation. Probably we should focus on those.