bytecode non-backcompatibility
Maurice LING
mauriceling at acm.org
Tue Apr 26 21:54:50 EDT 2005
> The same *can* be said for some decade-old .py files. Certainly, most
> everything written for 2.0 onward still works. The same will also be true
> for .pyc files as long as you run them with their corresponding binary and
> as long as the binary stills run.
>
> However, .pyc files are private, temporary caches created by a CPython
> interpreter for its own use and tied to its current implementation
> technology. They are not intended to be a public distribution form and
> indeed cannot be a means to run Python programs on other interpreters.
> Guido has stated that he want the freedom to change or even replace parts
> of the internal implementation as he sees fit. (2.5 will probably get a new
> compiler, with the difference mostly transparent to users.)
>
> One of the principles of OOP is separation of interface from
> implementation. User of a class should only use the public interface and
> not depend on private implementation. One reason is so implementation can
> be changed even radically as long as interface is kept constant. The
> Python language is interface. CPython bytecodes are implementation.
>
From a technical perspective, I can accept that .pyc files are private
and temporary. To a certain extend, it does helps development cycle.
Every time I amend my source codes, I just run it without having to
consider or needing to re-compile the source files.
The idea of having to release the program or library as source files
does ring alarms in many executives in corporate world. Less freezing
the modules (which renders it platform dependent) or using Jython (which
is not possible when C extensions are involved), there is no middle
grounds in CPython for distribution without source codes.
Every now and then, there will be new threads in this list about people
asking the means and possibilities of releasing a module/program without
having to release the source code (there's another new thread on it
today, "Can .py be compiled?")...
>
>>What I do have resources (time and energy) for is to work with the
>>maintainers of PyPI to implement the package maintenance system I've
>>described......
>
>
> Good. I agree that we need more along that line.
>
I've posted my idea on catelog-sig mailing list. Hope it get picked up...
Cheers
Maurice
More information about the Python-list
mailing list