On Thu, Apr 3, 2008 at 4:52 PM, Chris Barker <[EMAIL PROTECTED]> wrote:
> Robert Kern wrote:
>
>  Just since that has been discussed a LOT, for years, I want to be clear:
>
>  > Different versions of Microsoft's compiler use different libraries for
>  > the standard C library. Some simple Python extension modules compiled
>  > with a different compiler than the Python interpreter will usually
>  > work.
>
>  Do SOME modules USUALLY work just because of what routines in the
>  standard library they happen to call? So it's just a matter of luck that
>  a given module may not trigger a conflict between the two runtime libs?

It is usually a matter of communication between the two systems. If an
extension module with C runtime (CRT) A allocates some memory with its
malloc() then passes it to the Python interpreter which tries to free
it with CRT B's free() function, you will have problems. Similarly,
FILE* pointers are frequent causes of problems in this regard.
However, if nothing crosses the boundary between the two CRT's, there
will (usually) be no problem. The failure will be deterministic, but
possibly only a subset of the API of the extension module will
exercise the failure mode.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
 -- Umberto Eco
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to