[Python-Dev] importlib is now bootstrapped (and what that means) (original) (raw)

R. David Murray rdmurray at bitdance.com
Mon Apr 16 18:15:16 CEST 2012


On Mon, 16 Apr 2012 11:21:34 -0400, Brett Cannon <brett at python.org> wrote:

On Mon, Apr 16, 2012 at 10:07, "Martin v. Löwis" <martin at v.loewis.de> wrote:

> > We have other instances of this (e.g. the Objects/typeslots.inc file > > is generated and checked in), but in the case of importlib, we have > > to use the ./python binary for freezing to avoid bytecode > > incompatibilities, which obviously is a problem if ./python isn't > > built yet. > > As for dependencies on byte code: we could consider using Cython instead > of freeze (not sure whether Cython would build the bootstrap correctly; > it may need to be fixed first). With that, we would get semi-readable > source code, which should also play more nicely with hg diffs. On the > down side, we would depend on Cython for evolving . > We could also just store the raw source code and use that if we are all willing to pay the performance cost of parsing and compiling the code at every startup.

I don't see how depending on Cython is better than depending on having an existing Python. If the only benefit is semi-readable code, surely we do have source code for the pre-frozen module, and it is just a matter of convincing hg that the bytecode is binary, not text?

Brett's earlier thought of compiling from source as a fallback makes sense to me. I'd rather not add overhead to startup that we can avoid.

--David



More information about the Python-Dev mailing list