On Fri, May 14, 2004 at 10:30:58AM +0200 Rafael Garcia-Suarez wrote: > Tassilo von Parseval wrote: > > > > SAVESPTR(DEFSV); > > > > > > or in other words SAVE_DEFSV > > > > I read this in pp_grepstart: > > > > /* SAVE_DEFSV does *not* suffice here for USE_5005THREADS */ > > SAVESPTR(DEFSV); > > We're not reading the same sources :) > in bleadperl you have > #define DEFSV GvSV(PL_defgv) > #define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv)) > in perl.h. (and references to 5005threads have been removed)
I have no blead right now. My whole APC repository was also on the Debian partition that I smoked yesterday (see use.perl.org). :-) Apart from that, my module should be runnable on at least 5.00503. > > > A caveat, though: this will not work with a lexical $_ in perl 5.9.x. > > > DEFSV is always $::_. With a lexical $_ (you can know whether there is > > > one by looking it up in the pad) you have to replace SAVE_DEFSV by > > > SAVESPTR(PAD_SVl(padoffset_of_dollarunderscore)). Grep bleadperl for > > > details. > > > > > > Hmm, maybe this means that a _new_ macro should be added for XS > > > writers, that get DEFSV right, by testing whether there's a lexical $_ > > > in scope. Opinions ? > > > > Well, yes, please! Ideally, it would be backwards-compatible so that > > people could already start using it now (unless of course they > > deliberately want $::_). > > That's the job of PPPort, isn't it. For instance. But pre-blead perls have no concept of lexically scoped $_ so it would make no sense to look for one on the pad. So those macros would therefore look different on older perls (they'd simply expand to DEFSV). Tassilo -- $_=q#",}])!JAPH!qq(tsuJ[{@"tnirp}3..0}_$;//::niam/s~=)]3[))_$-3(rellac(=_$({ pam{rekcahbus})(rekcah{lrePbus})(lreP{rehtonabus})!JAPH!qq(rehtona{tsuJbus#; $_=reverse,s+(?<=sub).+q#q!'"qq.\t$&."'!#+sexisexiixesixeseg;y~\n~~dddd;eval