On Feb 20, 2015, at 8:41 AM, Zachary Turner <ztur...@google.com> wrote:
> 
> Does anyone understand the technical reasons why an extension module must be 
> compiled with the same version of msvc as python itself? Are there any 
> workarounds? It's really quite an inconvenience.
> 
> If the reason is because python27.dll and the extension module free each 
> others' memory, then it seems like this could be solved by having each supply 
> the other with an alloc and free function pointer, and using the correct 
> allocator on each side.

It’s more than just the heaps, although that’s a part of it.  The run-time 
library contains state held in static variables.  When you have multiple 
versions of the run-time library, they don’t share that state.  The C variable 
“stdin”, for example, is a pointer into a static array of file instances.  When 
you have multiple run-time libraries, there are multiple buffers for “stdin”.  
Prints from one user will not be seamlessly integrated with prints from the 
other.
— 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.

_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32

Reply via email to