2017-11-24 1:38 GMT+09:00 Ilya Mikhaltsou <[email protected]>:

> четверг, 23 ноября 2017 г., 8:18:26 UTC-8 пользователь Ilya Mikhaltsou
> написал:
> > среда, 22 ноября 2017 г., 8:26:02 UTC-8 пользователь Kazunobu Kuriyama
> написал:
> > > 2017-11-23 1:07 GMT+09:00 Ilya Mikhaltsou <[email protected]>:
> > >
> > >
> > > > Just to make sure.  Have you tried something like this?:
> > >
> > > >
> > >
> > > >
> > >
> > > > ./configure --enable-rubyinterp --with-ruby-command=/path/to/i
> nterpreter
> > >
> > > >
> > >
> > > >
> > >
> > > > If so, what did you set it to?
> > >
> > >
> > >
> > > No, I haven't. Ruby was available in PATH.
> > >
> > >
> > >
> > > When you run configure with --enable-rubyinterp, among a bunch of
> lines, you usually have
> > >
> > >
> > >
> > > checking for ruby... /usr/bin/ruby
> > >
> > >
> > > But if your target is 2.4.1, then the path should be different from
> /usr/bin/ruby and must be the path of the 2.4.1 interpreter.
> > >
> > >
> > > What did you get when you ran configure?  Something like
> $HOME/.rvm/bin/ruby-2.4.1?  (Since I'm not a rvm user, I'm not sure what
> the path actually looks like.)
> > >
> > >
> > >
> > >
> > >
> > >
> > > --
> > >
> > > --
> > >
> > > You received this message from the "vim_dev" maillist.
> > >
> > > Do not top-post! Type your reply below the text you are replying to.
> > >
> > > For more information, visit http://www.vim.org/maillist.php
> > >
> > >
> > >
> > > ---
> > >
> > > You received this message because you are subscribed to the Google
> Groups "vim_dev" group.
> > >
> > > To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> > >
> > > For more options, visit https://groups.google.com/d/optout.
> >
> > In the configure step ruby was identified correctly. It was
> /Users/username/.rvm/rubies/ruby-2.4.1/bin/ruby (or something like that).
>
> And please, let me get something straight here. I appreciate your concerns
> for whether this is happening exclusively on my mac or not, but it should
> be obvious that the way the search for library path on macOS is wrong
> (possibly it works exclusively for native ruby, but I’m working on a very
> underpowered mac and have no intention of waiting a couple of hours again
> to verify).
>
> Since the problem is obvious from the patch, I believe the main decision
> should be whether there are historical reasons for this being done
> explicitly this way and that it is not a bug, or that it has been
> incidental that it works on default (or common) configurations despite
> being wrong.
>
> I’ve given you explicitly the output of commands that influence the
> comditions involved in deciding  where is the ruby library located and
> which flags to pass to ld. I don’t think that my configuration could be so
> much outworldish as to output wrong strings or be unrepeatable. So by
> extension it is fairly logical that it is not the output of those commands
> being questioned, but the way this output is processed in the configuration
> script.
>

As a matter of fact, the preinstalled Ruby of macOS has a shared library
only, namely, libruby-2.0.0.dylib on El Capitan (10.11) and Sierra (10.12),
and libruby-2.3.0 on High Sierra (10.13).  There's no libruby-foobar.a

It is true that RbConfig returns libruby-2.0.0-static.a and
libruby-2.3.0-static.a, respectively, as the value of LIBRUBY_A, but this
fact doesn't guarantee the existence of the file.  Actually, none of the
mentioned macOS versions has it.

Also, as written in configure.ac:1882, "Mac OS 10.3 where libruby.a doesn't
exist"

IMHO, all those points to this: Having a static Ruby library with macOS is
quite unusual; in fact, macOS's Ruby has long been working without one.

FWIW, I downloaded the latest Ruby source (2.4.2), built and installed like
this:

    $ ./configure --enabled-shared
    $ make
    $ sudo make install

Then, I had two different versions of Ruby on my Mac:

    $ which -a ruby
    /usr/local/bin/ruby
    /usr/bin/ruby/
    $ /usr/local/bin/ruby --version
    ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin15]
    $ /usr/bin/ruby --version
    ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]

Then, I went to the src directory of my Vim repository to build a
Ruby-enabled Vim:

    $ ./configure --enable-rubyinterp
    ....
    checking --enable-rubyinterp argument... yes
    checking --with-ruby-command argument... defaulting to ruby
    checking for ruby... /usr/local/bin/ruby
    checking Ruby version... OK
    checking Ruby rbconfig... RbConfig
    checking Ruby header files... /usr/local/include/ruby-2.4.0
    ...
    $ make

To check which Ruby the newly created vim was linked against, I did

    $ otool -L vim
    ...
    /usr/local/lib/libruby.2.4.2.dylib (compatibility version 2.4.0,
current version 2.4.2)
    ...

It looked good.  I saved it as ~/.local/bin/vim-ruby-2.4.2.

Then I tried having another vim executable linked against system's Ruby:

    $ make distclean
    $ ./configure --enable-rubyinterp --with-ruby-command=/usr/bin/ruby
    ...
    checking --enable-rubyinterp argument... yes
    checking --with-ruby-command argument... /usr/bin/ruby
    checking for /usr/bin/ruby... /usr/bin/ruby
    checking Ruby version... OK
    checking Ruby rbconfig... RbConfig
    checking Ruby header files... /System/Library/Frameworks/
Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0
    ...
    $ make

To check which Ruby the newly created vim was linked against, I did

    $ otool -L vim
    ...
    
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
(compatibility version 2.0.0, current version 2.0.0)
    ...

It looked good.  I saved it as ~/.local/bin/vim-ruby-2.0.0.

Now, I have

    $ vim-ruby-2.4.2 +'redir >> /dev/stdout | ruby print RUBY_VERSION' +q
    2.4.2
    $ vim-ruby-2.0.0 +'redir >> /dev/stdout | ruby print RUBY_VERSION' +q
    2.0.0

So...what do you want more than this?

In conclusion, the title of this thread, "Vim with ruby enabled on macOS
doesn't find lib during build", definitely contradicts the fact I showed
above.  Indeed, your static library stuff is something peculiar enough to
get people to puzzle and wonder what you've been doing with your Mac and
Ruby.  Perhaps, because of that, what looked obvious or logical to you
couldn't appear as-such to them as much as you had expected.


>
>
> --
> --
> You received this message from the "vim_dev" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups
> "vim_dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui