Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #12243

The RAISE_VARARGS opcode in Python 3

Date 2011-08-26 23:20 +0100
Subject The RAISE_VARARGS opcode in Python 3
From Arnaud Delobelle <arnodel@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.454.1314397241.27778.python-list@python.org> (permalink)

Show all headers | View raw


Hi all,

Here is an extract from the dis module doc [1]

"""
RAISE_VARARGS(argc)
Raises an exception. argc indicates the number of parameters to the
raise statement, ranging from 0 to 3. The handler will find the
traceback as TOS2, the parameter as TOS1, and the exception as TOS.
"""

OTOH, looking at PEP 3109:

"""
In Python 3, the grammar for raise statements will change from [2]

raise_stmt: 'raise' [test [',' test [',' test]]]
to

raise_stmt: 'raise' [test]
"""

So it seems that RAISE_VARARGS's argument can only be 0 or 1 in Python
3, whereas it could be up to 3 in Python 2.  Can anyone confirm that
this is the case?  In this case, I guess the dis docs need to be
updated.

Thank you,

Arnaud

[1] http://docs.python.org/py3k/library/dis.html#opcode-RAISE_VARARGS
[2] http://www.python.org/dev/peps/pep-3109/#grammar-changes

Back to comp.lang.python | Previous | NextNext in thread | Find similar | Unroll thread


Thread

The RAISE_VARARGS opcode in Python 3 Arnaud Delobelle <arnodel@gmail.com> - 2011-08-26 23:20 +0100
  Re: The RAISE_VARARGS opcode in Python 3 Peter Otten <__peter__@web.de> - 2011-08-27 08:49 +0200
    Re: The RAISE_VARARGS opcode in Python 3 Arnaud Delobelle <arnodel@gmail.com> - 2011-08-27 08:00 +0100

csiph-web