diff options
author | Larry Hastings <larry@hastings.org> | 2013-11-23 22:49:22 (GMT) |
---|---|---|
committer | Larry Hastings <larry@hastings.org> | 2013-11-23 22:49:22 (GMT) |
commit | 3a9079742f2d71e6968823e155f3778473113538 (patch) | |
tree | 742dd59d633f184a06858baec56ab83c20192e59 /Lib/opcode.py | |
parent | 8d0d369067462080f5ea9d50416a12bee0ef3a6a (diff) | |
download | cpython-3a9079742f2d71e6968823e155f3778473113538.zip cpython-3a9079742f2d71e6968823e155f3778473113538.tar.gz cpython-3a9079742f2d71e6968823e155f3778473113538.tar.bz2 |
Issue #19722: Added opcode.stack_effect(), which accurately
computes the stack effect of bytecode instructions.
Diffstat (limited to 'Lib/opcode.py')
-rw-r--r-- | Lib/opcode.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/opcode.py b/Lib/opcode.py index 78d1229..0bd1ee6 100644 --- a/Lib/opcode.py +++ b/Lib/opcode.py @@ -8,6 +8,19 @@ __all__ = ["cmp_op", "hasconst", "hasname", "hasjrel", "hasjabs", "haslocal", "hascompare", "hasfree", "opname", "opmap", "HAVE_ARGUMENT", "EXTENDED_ARG", "hasnargs"] +# It's a chicken-and-egg I'm afraid: +# We're imported before _opcode's made. +# With exception unheeded +# (stack_effect is not needed) +# Both our chickens and eggs are allayed. +# --Larry Hastings, 2013/11/23 + +try: + from _opcode import stack_effect + __all__.append('stack_effect') +except ImportError: + pass + cmp_op = ('<', '<=', '==', '!=', '>', '>=', 'in', 'not in', 'is', 'is not', 'exception match', 'BAD') |