Since the Linkage section of PEP 384 specifically states the availability of a generic "python3.dll" that dynamically redirects to the relevant "python3y.dll" to allow an extension module to run against any 3.2 or later Python version as a goal of the PEP, I would say that allowing mixing of C runtimes is definitely one of the PEP's goals.               It should be explicit about that then, and provide detail about why the runtime is relevant to Windows programmers (and probably not relevant in practice for *nix programmers).          
    An extension compiled for one version of Python will be linked     against the version of the C runtime used by that version of Python     (if it is compiled with the same version of Visual Studio of     course). 
    
    If the extension binary is to remain compatible with a later version     of Python, compiled against a different version of the C runtime,     then it *must* be possible for multiple C runtimes to be loaded. If     the stable ABI doesn't allow this then binaries will *still* have to     be recompiled when we update the version of Visual Studio used to     compile Python - defeating the purpose of the PEP. Right?
    
    If this is the case then I agree that it should be explicit in the     PEP.
    
    All the best,
    
    Michael
    
            -Barry        _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk          
    
    --  http://www.ironpythoninaction.com/    ">

(original) (raw)

On 30/08/2010 17:35, Barry Warsaw wrote:
On Aug 30, 2010, at 10:18 PM, Nick Coghlan wrote:



Since the Linkage section of PEP 384 specifically states the
availability of a generic "python3.dll" that dynamically redirects to
the relevant "python3y.dll" to allow an extension module to run
against any 3.2 or later Python version as a goal of the PEP, I would
say that allowing mixing of C runtimes is definitely one of the PEP's
goals.



It should be explicit about that then, and provide detail about why the
runtime is relevant to Windows programmers (and probably not relevant in
practice for *nix programmers).




An extension compiled for one version of Python will be linked
against the version of the C runtime used by that version of Python
(if it is compiled with the same version of Visual Studio of
course).



If the extension binary is to remain compatible with a later version
of Python, compiled against a different version of the C runtime,
then it *must* be possible for multiple C runtimes to be loaded. If
the stable ABI doesn't allow this then binaries will *still* have to
be recompiled when we update the version of Visual Studio used to
compile Python - defeating the purpose of the PEP. Right?



If this is the case then I agree that it should be explicit in the
PEP.



All the best,



Michael





-Barry

  

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk


--   
http://www.ironpythoninaction.com/