ruby_select experimental implementation

kimura wataru kimuraw at macports.org
Fri Apr 24 15:57:57 PDT 2009


Hi Florian,

On Fri, 24 Apr 2009 08:52:48 +0200, C. Florian Ebeling wrote:
> On Wed, Apr 22, 2009 at 3:00 PM, kimura wataru <kimuraw at macports.org> wrote:
>> I write experimental ruby_select for ruby186 and ruby18.
>> 
>>  http://trac.macports.org/browser/users/kimuraw/ruby_select
> 
> I will test it shortly and try to add the ruby19 aspects to it.
> Is it ok if I commit to your user space svn or do you prefer
> if I branch it off to my space?
> 
I'm welcome your commit to my svn space.

>> == ruby_select
>> 
>> sysutils/ruby_select uses same tool as port:python_select or 
>> port:gcc_selct.
>> 

>> ruby_select make symlinks the above files at post-activate.
>> then, install ruby_select means existence of ${prefix}/bin/ruby 
>> (without suffix).
>> I expect this port become a meta port port:ruby.
> 
> Yes. We have to keep an eye on Bryan's point though, that the older
> ruby port and the new ruby18 do conflict and that it can break installs
> for the user if he does not upgrade (over which we have now control
> besides from advising via ui_msgs). See his mail:
> 
> http://lists.macosforge.org/pipermail/macports-dev/2009-April/008258.html
> 

ruby18 and ruby do not conflict. ruby18 do not have any install files
with same path from ruby port.

>> 
>> == linking libruby
>> 
>> ruby_select introduce libruby.dylib. this file is a symbolic link for
>> libruby186.dylib or libruby18.dylib. and, vendor-specific.rb changes
>> LIBRUBYARG and so on.
>> 
>>  % ruby -rrbconfig -e 'p Config::CONFIG["LIBRUBYARG"]'
>>  "-lruby18"
>>  % ruby -rvendor-specific -rrbconfig -e 'p Config::CONFIG["LIBRUBYARG"]'
>>  "-lruby"
>> 
>> so, port:rb-* links libruby.dylib and extension modules (.bundle)
>> use ruby_select-ed libruby.
> 
> I'm not sure we want to interchange libraries between 1.8
> and 1.9 transparently. If we don't want it, having a name
> ending in 18 might be better. That way 1.8.6 and 1.8.7+
> would share the name here, but not 1.9. Having the
> executables share the same name seems to be the
> important part to me anyway, not so much for makefile
> in extensions and such (where the lib name would matter).
> 

I agree.
Recently 1.8 (1.8.6 or later) and 1.9 keep same C-API for 
extension modules. I think most of C-libraries for ruby 1.8 works
with 1.9 as well as pure ruby libraries. But, it means some
libraries do not work.


-- 
kimura wataru


More information about the macports-dev mailing list