On Tue, Dec 05, 2000 at 11:34:14AM -0800, [EMAIL PROTECTED] wrote:
> Joshua N Pritikin wrote:
> > >
> > > I just read C code produced by Inline and found that - correct me if
> > > I'm wrong - it just builds a wrapper around a C function.
> > 
> > Oh!  Indeed it does.  Hm hm.
> 
> I've been avoiding commenting on this thread, because these are Event
> issues, and as long as Inline is working properly 'with' Event, I'm
> happy.
> 
> But I feel like too much attention is being given to the 'wrapper'
> issue. Inline just basically writes XS for you. The XS it writes is
> pretty straightforward and the wrapper is pretty thin. Anybody writing
> *straightforward* XS would do it pretty much the same way as Inline.

Not necessarily.  Inline uses a peculiar style which exposes both entry
points.  For example, it generates code like this:

--+--
int my_function(int xx) { return xx * xx; }

MODULE = Math           PACKAGE = Math

void
my_function(int xx)
        int xx:
        PPCODE:
        XPUSHs(newSViv(my_function(xx)));
--+--

As opposed to:

--+--
MODULE = Math           PACKAGE = Math

void
my_function(int xx)
        int xx:
        PPCODE:
        XPUSHs(newSViv(xx * xx));
--+--

> You
> almost always see XSUBS implemented as wrappers to native C functions.
> The typemapping has to happen somewhere. 

But usually the body of the function is placed directly in the XSUB and
there isn't an extra function call.  However,

> You have to keep it in perspective that we're coding in Perl, which is
> *way* slow (in this context). Inline's strength is in reducing the
> complexity by an order of magnitude. You can always write slightly
> faster code using XS, but what problem would you be solving?

i wasn't and am not considering performance at any point in this thread.
The concern here is whether the C & Perl APIs can match, from the point
of view of the naive developer.

-- 
May the best description of competition prevail.
      (via, but not speaking for Deutsche Bank)

Reply via email to