Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(12497)

Unified Diff: Doc/library/dis.rst

Issue 27095: Simplify MAKE_FUNCTION
Patch Set: Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Include/opcode.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
--- a/Doc/library/dis.rst Sun Jun 12 15:53:09 2016 +0300
+++ b/Doc/library/dis.rst Sun Jun 12 16:28:15 2016 +0300
@@ -937,27 +937,16 @@ All of the following opcodes use their a
.. opcode:: MAKE_FUNCTION (argc)
Pushes a new function object on the stack. From bottom to top, the consumed
- stack must consist of
+ stack must consist of values if the argument carries a specified flag value
- * ``argc & 0xFF`` default argument objects in positional order
- * ``(argc >> 8) & 0xFF`` pairs of name and default argument, with the name
- just below the object on the stack, for keyword-only parameters
- * ``(argc >> 16) & 0x7FFF`` parameter annotation objects
- * a tuple listing the parameter names for the annotations (only if there are
- ony annotation objects)
+ * ``0x01`` a tuple of default argument objects in positional order
+ * ``0x02`` a dictionary of keyword-only parameters' default values
+ * ``0x04`` an annotation dictionary
+ * ``0x08`` a tuple containing cells for free variables, making a closure
* the code associated with the function (at TOS1)
* the :term:`qualified name` of the function (at TOS)
-.. opcode:: MAKE_CLOSURE (argc)
-
- Creates a new function object, sets its *__closure__* slot, and pushes it on
- the stack. TOS is the :term:`qualified name` of the function, TOS1 is the
- code associated with the function, and TOS2 is the tuple containing cells for
- the closure's free variables. *argc* is interpreted as in ``MAKE_FUNCTION``;
- the annotations and defaults are also in the same order below TOS2.
-
-
.. opcode:: BUILD_SLICE (argc)
.. index:: builtin: slice
@@ -969,10 +958,9 @@ All of the following opcodes use their a
.. opcode:: EXTENDED_ARG (ext)
- Prefixes any opcode which has an argument too big to fit into the default two
- bytes. *ext* holds two additional bytes which, taken together with the
- subsequent opcode's argument, comprise a four-byte argument, *ext* being the
- two most-significant bytes.
+ EXTENDED_ARG adds ``*ext* * 256`` to the next instruction's argument.
storchaka 2016/06/12 16:36:42 I would prefer to commit this in issue26647 togeth
+ This is used for arguments exceeding a byte in size, and can be chained
+ to create 4-byte arguments.
.. opcode:: CALL_FUNCTION_VAR (argc)
« no previous file with comments | « no previous file | Include/opcode.h » ('j') | no next file with comments »

RSS Feeds Recent Issues | This issue
This is Rietveld 894c83f36cb7+