[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#522996: ITP: jruby1.2 -- 100% pure-Java implementation of Ruby

On 07/04/09 at 23:44 -0500, Gunnar Wolf wrote:
> Sebastien Delafond dijo [Tue, Apr 07, 2009 at 01:59:00PM -0700]:
> > On Apr/07, Mike Hommey wrote:
> > > While I see why it can be needed for python, I fail to see how it is
> > > important for jruby...
> > 
> > to have 2 versions of jruby available ? I guess so you can at least, for
> > instance, try the new one on your existing jruby code without removing
> > the old one, for instance ?
> > 
> > Are you advocating for only one instance of jruby at all times in the
> > archive ? If so, why ?
> Do the Jruby versions somehow map to the Ruby versions? If I'm not
> mistaken, Jruby (and IronRuby) versions aimed at compatibility with
> specific Ruby language releases - and the only Ruby language
> specification is the main implementation itself.
> So, does JRuby 1.2 provide a bigger/different API than 1.0? Which one
> is closer to the main implementation 1.8? 1.9? 
> Now, if JRuby 1.2 (say) implements 1.9 and JRuby 1.0 implements 1.8,
> possibly the (so far main) implementation should be renamed to only
> provide libruby1.8, so that also JRuby can satisfy it?

One good reason for allowing two versions of jruby at the same time in
the archive (not necessarily in a stable release ; I agree that that's
not a good thing) is that major jruby versions use different load paths,
and require that library files are installed in different directories
(see below).

On debian-ruby@, we are currently discussing changes in ruby packaging
that would allow pure-ruby libraries to automatically support all ruby
versions available in debian (using something similar to
python-support). Native libraries would still require some manual
porting to newer versions of ruby, though.

$ jruby1.0 -e 'p $:'
"/usr/lib/jruby1.0/lib/ruby/1.8", "/usr/lib/jruby1.0/lib/ruby/1.8/java",
"lib/ruby/1.8", "."]
$ jruby1.1 -e 'p $:'
"/usr/lib/jruby1.1/lib/ruby/1.8", "/usr/lib/jruby1.1/lib/ruby/1.8/java",
"lib/ruby/1.8", "."]
$ ruby1.8 -e 'p $:'
"/usr/local/lib/site_ruby/1.8/x86_64-linux", "/usr/local/lib/site_ruby",
"/usr/lib/ruby/vendor_ruby", "/usr/lib/ruby/1.8",
"/usr/lib/ruby/1.8/x86_64-linux", "."]
$ ruby1.9 -e 'p $:' <== that's the version in experimental currently
"/usr/local/lib/site_ruby", "usr/lib/ruby/vendor_ruby/1.9.1",
"usr/lib/ruby/vendor_ruby", "/usr/lib/ruby/1.9.1",
"/usr/lib/ruby/1.9.1/x86_64-linux", "."]
| Lucas Nussbaum
| lucas@lucas-nussbaum.net   http://www.lucas-nussbaum.net/ |
| jabber: lucas@nussbaum.fr             GPG: 1024D/023B3F4F |

Reply to: