hello - am getting compilation errors in building older mod_perl with newer
perl.  Things worked as of 5.12.X, but alas, not with today's 5.14.1

eg. http://cpansearch.perl.org/src/GOZER/mod_perl-1.31/Symbol/Symbol.xs

Symbol.xs: In function 'undef':
Symbol.xs:33: error: invalid lvalue in assignment



This appears to be due to changes in the perl distro as outlined at
http://perldoc.perl.org/perl5140delta.html#C-API-Changes

GvCV() and GvGP() are no longer lvalues

The new GvCV_set() and GvGP_set() macros are now provided to replace
assignment to those two macros.

This allows a future commit to eliminate some backref magic between GV and
CVs, which will require complete control over assignment to the gp_cv slot.
CvGV() is no longer an lvalue

Under some circumstances, the CvGV() field of a CV is now reference-counted.
To ensure consistent behaviour, direct assignment to it, for example CvGV(cv
) = gv is now a compile-time error. A new macro, CvGV_set(cv,gv)has been
introduced to run this operation safely. Note that modification of this
field is not part of the public API, regardless of this new macro (and
despite its being listed in this section).
CvSTASH() is no longer an lvalue

The CvSTASH() macro can now only be used as an rvalue. CvSTASH_set() has
been added to replace assignment to CvSTASH(). This is to ensure that
backreferences are handled properly. These macros are not part of the API.


Any witnesses/experiences/thoughts on this?

thanks in advance!
gleeco

Reply via email to