----- Original Message ----- From: "Jan Dubois" <[EMAIL PROTECTED]> . . >> Were all of those 5.8 private functions (specified above) made public on >> perl 5.10 just to accommodate Data::Alias ? Or are there other forces at >> work here ? > > Yes, they were made available for Data::Alias. They are still not > supposed > to be part of the public API, but only to core modules bundled with Perl, > but of course any module can cheat and #define PERL_EXT anyways. You just > won't get much sympathy if your module breaks due to core changes if you > do that... > > I think the plan was to make Data::Alias a core module, eventually, > because > it is pretty tightly involved with the Perl internals. > > Anyways, the 2 changes I could find that explicitly make symbols available > for Data::Alias are: > > http://public.activestate.com/cgi-bin/perlbrowse/p/30716 > http://public.activestate.com/cgi-bin/perlbrowse/p/31133
Alias.xs defines PERL_CORE (but not PERL_EXT). I gather that PERL_CORE is also switching on access to those functions. (The changes mentioned in the above two links involve both PERL_CORE and PERL_EXT.) I tried removing the definition of PERL_CORE from Alias.xs, but that produced a compilation error well before the linking stage was reached. (From which I deduce that PERL_CORE must be doing "other stuff" as well.) The error was: Alias.xs: In function `da_ck_rv2cv': Alias.xs:1686: error: `DO' undeclared (first use in this function) Alias.xs:1686: error: (Each undeclared identifier is reported only once Alias.xs:1686: error: for each function it appears in.) dmake: Error code 129, while making 'Alias.o' > > You'll see that the APIs are marked 'EX' if embed.fnc and not 'A'. That > means they are still not considered part of the public API, and they may > change from release to release. Yes - I noticed that. (Bad terminology on my part .... "explicitly exported" != "public"). I'll hazard a quick guess that anything marked with an 'E' is exported if PERL_CORE is defined, and anything marked with an 'X' is exported if PERL_EXT is defined. Cheers, Rob _______________________________________________ Perl-Win32-Users mailing list [email protected] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
