[Python-Dev] Hacking on the compiler in ways that break the frozen instance of importlib...
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