[Python-Dev] Hacking on the compiler in ways that break the frozen instance of importlib... (original) (raw)

Nick Coghlan ncoghlan at gmail.com
Sun May 27 09:43:58 CEST 2012


So, I'm currently trying to fix the regression in handling class references in 3.3. The first step in this is unwinding the name change for the closure reference so it goes back to using "class" (instead of "@class") before finding a different way to fix #12370.

As near as I can tell, my efforts are getting killed by the frozen instance of importlib: if I make the change in the straightforward fashion, the frozen copy of FindLoader.load_module() uses zero-argument super(), which tries to look up "@class", which fails, which means initialisation goes pear-shaped.

I'm going to fix it in this case by tweaking importlib._bootstrap to avoid using zero-argument super() (with an unmodified core) before applying the changes, but yeah, be warned that you're in for some fun when tinkering with any construct used by importlib._bootstrap and end up doing something that involves changing the PYC magic number.

Cheers, Nick.

-- Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia



More information about the Python-Dev mailing list