On Mon, Nov 18, 2013 at 05:59:02PM -0500, Barry Warsaw wrote: > I'm not a vim user but I'm am very interested in porting the world to > Python 3. To that end, I see that the current version of upstream vim > supports Python 3, but building that is not currently enabled in the > Debian package.
This is due to two things. First, the way Debian builds Python prevents loading both libpython2 and libpython3 in the same process, since Debian's builds necessitate passing RTLD_GLOBAL to dlopen(). This means that when Vim is built to support both Python 2 & 3, one has to choose between using plugins that target Python 2 or Python 3 instead of the user being able to use both. At the time, this meant I had to choose one and I went with Python 2 due to the much higher prevalence of plugins targeting it. While Python 3 has gained a lot of ground since then and it's much more easy to write code that works in both versions, my understanding is that the RTLD_GLOBAL issue still exists. This means I still need to choose one version and, while it's more of a toss up now, I think Python 2 is still the right call here. Second, I'm not keen on the state of dependency tracking with software that dynamically loads libraries instead of linking against them. If Vim dynamically loaded its own code that provides the language bindings, and those were linked against the proper language libraries, then I could easily provide vim-{lua,perl,python,ruby,tcl}-bindings packages which expressed proper relationships on the corresponding language libraries. Since that isn't the case, we can then run into situations where bad things happen during a library transition due to nothing telling the transition trackers that Vim should actually be rebuilt or forcing the users to upgrade Vim in sync with the library. See #611573 for some previous discussion about this related to Vim's Perl support. Cheers, -- James GPG Key: 4096R/331BA3DB 2011-12-05 James McCoy <james...@debian.org>
signature.asc
Description: Digital signature