Serhiy Storchaka <storchaka+cpyt...@gmail.com> added the comment:

1. This will actually simplify the code for calculating the stack size. Instead 
of supporting special cases for jumping instructions in stackdepth_walk() you 
could just write something like

new_depth = depth + PyCompile_OpcodeStackEffectEx(opcode, oparg, 0);
if (new_depth > maxdepth)
    maxdepth = new_depth;
if (isjump) {
    target_depth = depth + PyCompile_OpcodeStackEffectEx(opcode, oparg, 1);
    maxdepth = stackdepth_walk(c, instr->i_target, target_depth, maxdepth);
}
depth = new_depth;

After adding new opcodes or changing existing opcodes you would need to change 
the code only in one place.

2. This will simplify third-party compilers (like 
https://github.com/vstinner/bytecode). They wouldn't need to duplicate the 
complicated code.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32455>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to