On Jan 14, 2004, at 11:16 AM, Guay Jean-Sébastien wrote:
Which I interpreted as "without being forced to reinstall all my modules
which are not part of the standard Perl distribution". So you confirm that
that isn't possible, and that any modules that contain XS code and which
were not part of the 5.8 RPM will have to be recompiled or otherwise
reinstalled from a 5.8-compatible source (CPAN, RPMs, etc.)?
I am also asking for my personal benefit, as that's one question I never
quite understood the subtleties of...
All that you really need to understand is that XS is perl's way of generalizing a perl interface into code that was originally written in "c" code - or "c" like code.
cf: perldoc perlxstut perldoc perlxs
This way one can write the Bar.XS file, that will get 'converted' into a Bar.c file that will get ginned up into a Bar.so file ( on most unix boxes, consult your dll life style manglement ) and some other voodoo that will get loaded into the machine architecture specific section of the @INC directories so that your "pure perl" side of the Foo::Bar will do all the "pure perl" voodoo right up to the
bootstrap Foo::Bar $VERSION;
line - cf perldoc DynaLoader
the Funk of course is all the bits and bobs that change in the "includes" at
#include "EXTERN.h" #include "perl.h" #include "XSUB.h"
and the parts about how the binary executable perl understands what to do with the bootstrap statement....
Other than that, there is really not a lot that you need to know or understand about the underlying binary incompatibility between 5.6 and 5.8.X at the XS level...
ciao drieux
---
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>