On Wednesday 21 February 2001 09:35, Ben Tilly wrote:
> ts <decoux / moulon.inra.fr> wrote:
> > >>>>> "B" == Ben Tilly <ben_tilly / hotmail.com> writes:
> > >>
> > >> actually *it very easy* to extend Ruby with C
> >
> >B> Our definitions of "very" differ.
>
> [...]
>
> >B> Literally just drop the C code directly into the
> >B> script, and leave deciding when to recompile and how
> >B> to link up to Inline.
> >
> >   ruby extconf.rb
> >   make
> >   make install
> >
> >  If you can't do this, perhaps there is a problem
>
> I found that to be an unfair slam.
>
> Did I ever indicate that it was not easy to extend
> Ruby with C?  Not that I saw.  However I pointed out
> that it could be even *easier*, hence I have a
> different definition of "very easy" than you do.
>
> I am baffled by how you got from there to suggesting
> that I _can't_ figure out how to do it.
>
> Now is it worth the extra work of getting Inline set
> up just to make it easier to get C working with Ruby?
> Almost certainly not.  But is it worth that work for
> the potential of then being able to link in other
> languages?  (Which is where Inline.pm is going in
> Perl.)
>
> The answer to that may be different...

The 'answer' may be we've misconstrued the issue.  Ruby already has good 
provisioning for extending Ruby with C.  But inline.pm is not about extending 
Perl with C; it is about using C code snippets within Perl. These are 
different 'problems'. Suppose I have a collection of words > 15 chars each 
which need to be sorted with using the 12th char as key on even days of the 
month when executed but using the 3rd char as key on odd days, unless the 
_day_ is a Thursday _and_ the month ends in 'r' in whcih case the 8th char is 
used as key. (Ok, my hypotheircals get weird).

I can write this in Perl, or in Ruby or write it in C (say my collection is 
23 million such wrods)  for performance and extend Ruby.  But suppose it is 
already written in C? I could translate into Perl or Ruby (which if I were 
going to use it frequently might be best option) but suppose I just need it 
once for a quick sysadmin hack I need to do now so the results can be used in 
20 minutes? Here is where 'inline' for Perl comes in handy (just drop in the 
C code and go) as it would be in Ruby.

Anyway, that's what I see as the issue, not extending but simply dropping in 
'foreign' language routines I may have available on-the-fly. Seems like a 
useful thing to have, yes?

Regards,

Kent Starr
elderburn / mindspring.com