Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re: Re^3: Perl 5 -> 6 do's and don'ts? (Inline::C)

by Elian (Parson)
on Aug 01, 2003 at 20:37 UTC ( #280130=note: print w/replies, xml ) Need Help??

in reply to Re^3: Perl 5 -> 6 do's and don'ts? (Inline::C)
in thread Perl 5 -> 6 do's and don'ts?

I'll somewhat disagree with Abigail-II and Elian.

Yes, if you want to interface Perl5 to a C library, then doing so via Inline::C is more likely to make it easy to port to Perl6 than using XS would (the XS porting might be available sooner, but you have much more risk of doing something that won't be handled if you use XS, IMHO).

YHO would be very incorrect in this case. The issues involved are entirely those of the perl API, and have nothing to do with the means to generate the C code to access that API. There are no problems one will encounter with XS that one won't in Inline::C, and vice versa.

The means of generating the C code has no bearing on the potential level of trouble. The issues are entirely ones of the perl API.

  • Comment on Re: Re^3: Perl 5 -> 6 do's and don'ts? (Inline::C)

Replies are listed 'Best First'.
Re^5: Perl 5 -> 6 do's and don'ts? (Inline::C)
by tye (Sage) on Aug 01, 2003 at 20:52 UTC

    You seem to have misunderstood my point. I don't care how the C code is generated.

    The issues involved are entirely those of the perl API

    Yes, and my point was that it can be very useful to write stuff in Inline::C that makes absolutely no reference to the perl API. You simply write C code that takes C-style arguments. If you do that, then you don't need any macros or processing of the source code other than whatever needs to happen to turn the perl subroutine arguments into C data types and to turn the returned C data type into a Perl scalar.

    And the available transformations to/from C data types are quite limited so you won't be doing anything in that part of your C code that won't be tons easier to implement than the whole typemap power of XS.

    Yes, you certainly can write Inline::C code that will be horribly hard to port. I thought you two covered that point rather well. But I don't consider that the most important point.

                    - tye

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://280130]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2018-06-21 18:37 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (118 votes). Check out past polls.