Re: BUILD_CLASS has wrong stack effect
PJ Eby <pje-Wh6+Hckhi6HFNGf7iClzIwC/[email protected]> Wed, 22 Feb 2017 11:14:48 -0500
| Newsgroups | gmane.comp.python.peak |
|---|---|
| Message-ID | <CALeMXf6zQbsC_U7C=dvHMw_A8gyM_a=Oe0XbO25jOAi8EOwdWw@mail.gmail.com> |
Fixed and released. Took me several times longer to get a release uploaded than it did to actually make the change; I'm a bit befuddled by all this new, "yeah, documented ways to do things don't work any more, you just have to use this other package to do things that are also not documented" rubbish you have to go through to use PyPI any more. On Wed, Feb 22, 2017 at 5:32 AM, Marc 'BlackJack' Rintsch <[email protected]> wrote: > Hi, > > The stack effect of BUILD_CLASS is given as (3, 0) in the > `peak.util.assembler` module, but it is actually (3, 1) as it leaves the > newly built class object on the stack. > > Currently I'm using this monkey patch in my code:: > > from peak.util.assembler import ( > BUILD_CLASS as BUILD_CLASS_OPCODE, Code, stack_effects > ) > > if stack_effects[BUILD_CLASS_OPCODE] == (3, 0): > # > # Patch in BUILD_CLASS method with correct stack effect. > # > def BUILD_CLASS(self, op=BUILD_CLASS_OPCODE, se=(3, 1)): > self.stackchange(se); self.emit(op) > > setattr(Code, 'BUILD_CLASS', BUILD_CLASS) > > Ciao, > Marc 'BlackJack' Rintsch > -- > Calm down. It's only ones and zeros. > > > _______________________________________________ > PEAK mailing list > [email protected] > http://www.eby-sarna.com/mailman/listinfo/peak