Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re^4: Perl XS

by davido (Archbishop)
on Nov 19, 2013 at 00:26 UTC ( #1063227=note: print w/replies, xml ) Need Help??

in reply to Re^3: Perl XS
in thread Perl XS

I second this!

Here's one way to do it...

  1. Prototype in Perl, thinking "This will be reimplemented in XS/C." (which will encourage you to keep the prototype simple.)
  2. Re-implement using Inline::C
  3. If there's some additional tweekery that isn't available when using Inline::C, grab the XS file that Inline::C generates, and tweak to your heart's content.

It's really so much more convenient. One thing to keep in mind: Passing a char* string around is simple until you start dealing with Unicode. Eventually it becomes easier to pass an SV*, and avoid touching the internal PV string except with proper XS macros/functions, and even then with extreme care.

Also, write your unit tests either as step zero, or in conjunction with step one. That way when you've re-implemented in Inline::C/XS you can verify behavior.


Log In?

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (3)
As of 2018-05-23 02:26 GMT
Find Nodes?
    Voting Booth?