----- 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

Reply via email to