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

Eric Snow ericsnowcurrently at gmail.com
Mon Apr 16 19:45:05 CEST 2012


On Mon, Apr 16, 2012 at 11:32 AM, Brett Cannon <brett at python.org> wrote:

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

> 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? Cython-generated C code would likely be more stable (and produce compiler errors if it gets stale), whereas importlib.h needs to be regenerated with byte code changes. Having source code has the advantage that it becomes possible to single-step through the import process in C debugger. Single-stepping with pdb would, of course, be better than that, but I doubt it's feasible. In addition, there might be a performance gain with Cython over ceval. The other benefit is maintainability. In order to hit my roughly 5% startup speed I had to rewrite chunks of import() in C code and then delegate to importlib's Python code in cases where sys.modules was not hit. Using Cython would mean that can all go away and the differences between the C and Python code would become (supposedly) non-existent, making tweaks easier (e.g. when I made the change to hit sys.modules less when a loader returned the desired module it was annoying to have to change importlib and import.c).

+1 on reducing the complexity of the import code.

-eric



More information about the Python-Dev mailing list