On 2004-06-01, at 18:01:26 +0100, Nicholas Clark wrote: > On Tue, Jun 01, 2004 at 09:28:32AM +0200, Marcus Holland-Moritz wrote: > > On 2004-05-14, at 11:07:35 +0200, Rafael Garcia-Suarez wrote: > > > > #define dUNDERBAR I32 padoff_du = pad_findmy("$_") > > > > Perl_pad_findmy() is not (yet?) a member of the public API. > > Thus, the pad_findmy wrapper macro isn't defined for XSUBs. > > > > I think we either have to make it part of the public API, > > so embed.fnc will take care of the rest, or explicitly use > > Perl_pad_findmy(). > > Surely neither is necessary, as on all perl5.8.x (and earlier), $_ will never > be in the pad.
Huh? I'm not talking about some kind of backwards-(in)compatibility issue. I just tried to compile (with bleadperl) an XSUB that used dUNDERBAR and ran into an error that the dynamic linker couldn't resolve pad_findmy. That's because the symbol is Perl_pad_findmy, and usually the macros in embed.h take care of turning * into Perl_*. But right now we have: #ifdef PERL_CORE #define pad_findmy Perl_pad_findmy #endif Thus, the macro isn't visible to an XSUB... Marcus -- Applied Cryogenics: It seems to work OK.