[Python-Dev] LSB: Binary compatibility

"Martin v. Löwis" martin at v.loewis.de
Wed Dec 6 07:03:18 CET 2006


skip at pobox.com schrieb:
> Taking one example from this thread, Python's bytecode has always been an
> internal implementation detail.

I think that has stopped being true at least since I wrote 1997, or
perhaps even since dis.py was written (i.e. right from the beginning
of the language). With dis.py, the bytecode instructions are documented,
and their numeric values accessible through opcode.h.

What *hasn't* been documented is the marshal format, as it may change
across releases. That hasn't stopped people from using the format as
if it were specified, e.g. there is a Perl reader for marshal data:

http://search.cpan.org/~simonw/Python-Serialise-Marshal-0.02/lib/Python/Serialise/Marshal.pm

> If I read the thread correctly there is at
> least a request (if not a requirement) to make it part of an external ABI if
> Python is to become part of the ABI.  That may or may not be a large
> technical challenge, but I think it would be a significant philosophical
> change.

The philosophical change would be that a specific version of that would
be standardized. The "current" version could still evolve in a less
documented way.

>     Martin> In any case, having Python in the LSB means that ISVs (software
>     Martin> vendors) who target LSB (rather than targetting specific Linux
>     Martin> distributions) could develop their applications also in Python
>     Martin> (whereas now they have to use C or C++). 
> 
> Why?  Lots of people write portable Python programs today.

But if they distribute them, they either have to request that a Python
interpreter is installed on the target system, or they have to ship a
Python interpreter with their installation DVD (as they can't rely on
Python being available on the system, in a certain version).

With LSB specifying that Python must be present, and must have a certain
(minimal) version, they can include Python scripts in their application,
and they will work out of the box without the administrator of the
target machine having to do anything.

Regards,
Martin


More information about the Python-Dev mailing list