[Python-Dev] Changing ob_size to [s]size_t

M.-A. Lemburg mal@lemburg.com
Fri, 07 Jun 2002 18:10:13 +0200

Guido van Rossum wrote:
>>What binary compatibility ? I thought we had given that idea
>>up after 1.5.2 was out the door (which is also why the Windows
>>distutils installers are very picky about the Python version
>>to install an extension for).
> You keep saying this, and I keep denying it. 


 > In everything I do I try
> to remain binary compatible in struct layout and function signatures.
> Can you point to a document that records a decision to the contrary?

Garbage collection, weak references, changes in the memory allocation,
etc. etc.

All these change the binary layout of structs or the semantics
of memory allocation -- mostly only in slight ways, but to a point
where 100% binary compatibility is not given anymore.

Other changes (which I know of) are e.g. the Unicode APIs which
have changed (they now include UCS2 or UCS4 depending on whether
you use 16-bit or 32-bit Unicode internally).

I don't think that binary compatibility is all that important;
it just requires a recompile (and hey, that way you even get
sub-type support for free ;-). Far more difficult to handle are all
those minute little changes which easily slip the developer's radar.

Luckily this will get approached now by Andrew and Raymond, so
things are getting much better for us poor souls having to
live on supporting 3-4 different Python versions :-)

Marc-Andre Lemburg
CEO eGenix.com Software GmbH
Company & Consulting:                           http://www.egenix.com/
Python Software:                   http://www.egenix.com/files/python/
Meet us at EuroPython 2002:                 http://www.europython.org/