http://www.perlmonks.org?node_id=927971


in reply to Re^3: XS: EXTEND/mPUSHi
in thread XS: EXTEND/mPUSHi

dXSARGS is the most comprehensive.

Or you could just look at the error message you get and add the appropriate declaration (spdSP;, axdAX;, markdMARK;, etc).

Inline/C.pm uses sp = mark;, when it should probably use SP = MARK;, and I'd not even sure if that's officially allowed.

Replies are listed 'Best First'.
Re^5: XS: EXTEND/mPUSHi
by syphilis (Archbishop) on Sep 27, 2011 at 01:19 UTC
    Inline/C.pm uses sp = mark;, when it should probably use SP = MARK;, and I'd not even sure if that's officially allowed

    In pp.h I can see:
    #define SP sp #define MARK mark
    So I'm guessing that case is not going to be critical.

    But I don't know whether the assignment is officially allowed. The perl source itself makes that assignment in a number of places - but that doesn't necessarily give that usage the green light.

    How would you adjust the stack pointer if you wanted to ? Is altering it something that you would prefer to avoid ?

    Cheers,
    Rob

      So I'm guessing that case is not going to be critical.

      Until they change macros, which they can do since you're suppose to be using the macros?

      How would you adjust the stack pointer if you wanted to ? Is altering it something that you would prefer to avoid ?

      I'd let xsubpp do it. See Re^6: XS: EXTEND/mPUSHi.