On Mon, 27 Aug 2007, Suresh Govindachar wrote: > Thanks for looking into this. I don't think the person who did the > original work to embed perl in Vim is still activly interested in > Vim. I can't live without vim and perl. Is there a better way to > embed perl so as to be version independent?
There really is no way to do it totally version independently. One reason the vim code is so tightly coupled is that it doesn't have an explicit reference to perl58.dll. Instead it calls LoadLibrary() at runtime, and then GetProcAddress() to locate all the imported symbols. This allows the same binary to be used when there is no perl58.dll to be loaded. By linking against perl58.lib your version will fail to load on a machine that doesn't have Perl because you have now introduced a load time dependency on perl58.dll. At the binary level, all Perl 5.8.x releases are backward compatible in the sense that you can load a module compiled with an earlier Perl version into a later Perl release. That means you can build vim against Perl 5.8.0 and then use the vim binary with perl58.dll from 5.8.9 or any other 5.8.x version. All new versions continue to export the old symbols to support this level of compatibility. Binary compatibility does not exist in the other direction: A module compiled with Perl 5.8.8 may break under Perl 5.8.7. The vim binary you built by linking explicitly against perl58.lib from AP822 will not work with any earlier version of ActivePerl or perl58.dll because they don't export the new symbols. This is also the reason we have to build all modules in the ActivePerl PPM repositories against 5.8.0 [*]. That way they can be used by any version of ActivePerl 8xx. Cheers, -Jan [*] This is not strictly true anymore with AP819 and later using PPM4, but we haven't yet managed to roll out the versioned repository stuff at the server side. _______________________________________________ Perl-Win32-Users mailing list [email protected] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
