(original) (raw)
On 4 Nov 2013 03:00, "R. David Murray" <rdmurray@bitdance.com> wrote:
\>
\> I came across this in the VIM documentation:
\>
\> � � Vim can be built in four ways (:version output):
\> � � 1\. No Python support � � � �(-python, -python3)
\> � � 2\. Python 2 support only � �(+python or +python/dyn, -python3)
\> � � 3\. Python 3 support only � �(-python, +python3 or +python3/dyn)
\> � � 4\. Python 2 and 3 support � (+python/dyn, +python3/dyn)
\>
\> � � Some more details on the special case 4:
\>
\> � � When Python 2 and Python 3 are both supported they must be loaded dynamically.
\>
\> � � When doing this on Linux/Unix systems and importing global symbols, this leads
\> � � to a crash when the second Python version is used. �So either global symbols
\> � � are loaded but only one Python version is activated, or no global symbols are
\> � � loaded. The latter makes Python's "import" fail on libraries that expect the
\> � � symbols to be provided by Vim.
\>
\> I've never played with embedding Python. �Does this make sense to
\> anyone who has? �Is there some limitation in our embedding and/or
\> import machinery here, or is this more likely to be a shortcoming on
\> the VIM side?
\>
\> Mostly I'm asking out of curiosity in hopes of learning something;
\> I doubt I'll have enough motivation to make time to work on solving this.
Essentially what Greg said - we export many of the same symbols from both shared libraries, so if you try to load both CPython 2 and 3 into one process, the dynamic linker isn't going to be happy about it at all.
Since making it work would be a lot of work for minimal benefit, the most that could realistically be done is to make it fail a little more gracefully (I believe that would need to be done on the Vim side of things, though).
Cheers,
Nick.
>
\> --David
\> \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
\> Python-Dev mailing list
\> Python-Dev@python.org
\> https://mail.python.org/mailman/listinfo/python-dev
\> Unsubscribe: https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com