cc: Sven Verdoolaege -- where are you?
Jan Dubois of ActiveState points out an issue with if_perl.xs: Jan Dubois wrote: > On Mon, 27 Aug 2007, Suresh Govindachar wrote: >> >> So ActiveState is "exporting" Perl_sv_2iv_flags and >> Perl_newXS_flags in a way that is different from the >> way they export other symbols. > > Nope, this is all incorrect. I've now downloaded the vim > sources to see what is really going on: > > The src/if_perl.xs file contains code to redefine all Perl > functions it assumes it uses to wrapper names, and then looks up > the real functions at runtime. That means that this file is > specific to the Perl version used to compile it and will need to > be updated for Perl 5.8.9. See for example: > > # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) > # define Perl_sv_2pv_flags dll_Perl_sv_2pv_flags > # define Perl_sv_2pv_nolen dll_Perl_sv_2pv_nolen > # else > # define Perl_sv_2pv dll_Perl_sv_2pv > # endif > ... > #if (PERL_REVISION == 5) && (PERL_VERSION >= 8) > static char* (*Perl_sv_2pv_flags)(pTHX_ SV*, STRLEN*, I32); > static char* (*Perl_sv_2pv_nolen)(pTHX_ SV*); > #else > static char* (*Perl_sv_2pv)(pTHX_ SV*, STRLEN*); > #endif > > ... > > Similar code will be needed for sv_2iv_flags() and any other > new symbol. > > It is a bit awkward to do this for ActivePerl 822, as it > identifies itself as 5.8.8 because 5.8.9 has not been released > yet, so we don't know which additional features will still be > added. But internally AP822 is probably closer to what will be > 5.8.9 than to 5.8.8. > > Anyways, the problem is that if_perl.xs is coupled pretty > tightly to the Perl internals and needs updating whenever the > internals change. --Suresh --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---