Proposed F19 Feature: JRuby 1.7 - JRuby is an alternative Ruby implementation
Toshio Kuratomi
a.badger at gmail.com
Thu Jan 17 06:28:08 UTC 2013
On Wed, Jan 16, 2013 at 08:05:23AM -0500, Jaroslav Reznik wrote:
> As decided by FESCo on 2012-12-05 meeting, all proposed Features are required
> to pass through the community review by announcing them on devel-announce list.
> FESCo votes on new features no sooner than a week from the announcement.
>
> = Features/JRuby 1.7 =
> https://fedoraproject.org/wiki/Features/JRuby_1.7
>
> * Detailed description:
> Transition to JRuby 1.7 will consist of 3 basic steps:
>
> - Updating packages
> Most of the packages that JRuby depends on are in Fedora just because of JRuby,
> so they can be safely updated.
> Some dependencies are shared with other packages, so they will have to be
> discussed with their owners (see #Scope).
>
> - Integration with Fedora
> Normally, each Ruby implementations ships with its own copy of RubyGems
> library. This is wrong because a) it's bundling, b) there is no reason
> why multiple Ruby implementations wouldn't be able to share one RubyGems
> library. There used to be some differencies in JRuby's copy of RubyGems,
> but the JRuby upstream has been very cooperative and managed to get them
> all merged into upstream RubyGems.
> The integration will require changing Fedora's operating_system.rb (place
> for distro-specific defaults for RubyGems). This change will result into
> all Gems with binary extensions having to be recompiled, as the binary
> extension placement will change. See [1] for current operating_system.rb
> look and its changes from F18.
> What should "/usr/bin/ruby" point to? During standard Gem packaging process,
> the executable files in Gems get shebangs according to the binary that they
> are packaged with (Ruby => "/usr/bin/ruby"; JRuby => "/usr/bin/jruby").
> Therefore executing a Ruby "binary" runs the interpreter that was used for
> building (or the hardcoded one, which is usually Ruby). Using alternatives
> for "/usr/bin/ruby" doesn't seem to be a very good option, because Ruby and
> JRuby are not in fact full alternatives, as they for example cannot use same
> extension Gems (but it still makes sense to allow executing same binaries
> with them). Also, alternatives are only switchable on admin level (we want
> every developer with non-root privileges to be able to choose the
> interpreter). Therefore Ruby-SIG has come up with solution of having
> "/usr/bin/ruby" as a bash script (currently called rubypick) [2], that
> allows user to choose the interpreter as first argument on invocation
> (_mri_ or _jruby_), if such a parameter is present. Otherwise it falls
> back to a default. For example invoking "ruby_binary _jruby_ --foo=bar"
> in fact invokes "/usr/bin/jruby ruby_binary --foo=bar". This bash script
> will be in a separate package and both Ruby and JRuby will depend on it.
> Ruby-SIG knows that this feature might be controversial and we wouldn't
> want it to stop us from bringing JRuby's power to Fedora (if met with a
> heavy resistance). So if anyone will suggest a more suitable solution,
> we'll go with it instead of this one.
>
> - Changes in packaging
> None yet. JRuby will be able to use pure Ruby Gems packaged into RPM out of
> the box, but packaging of Gems with JRuby extensions is turning out to be
> very complicated, so the guidelines for it will be postponed to next release
> (as well as the actual packaging). Users will be still able to install Gems
> with JRuby extensions, both system-wide (into /usr/local/) and into their
> home directories.
>
FPC should decide whether and how to share modules between multiple interpreters
that don't have 100% compatibility with each other before the interpreters
start sharing their module packages.
-Toshio
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.fedoraproject.org/pipermail/devel/attachments/20130116/497aab29/attachment-0001.sig>
More information about the devel
mailing list