Merge UNPACK_LIST and UNPACK_TUPLE into a single UNPACK_SEQUENCE, since they
authorThomas Wouters <thomas@python.org>
Fri, 11 Aug 2000 22:15:52 +0000 (22:15 +0000)
committerThomas Wouters <thomas@python.org>
Fri, 11 Aug 2000 22:15:52 +0000 (22:15 +0000)
did the same anyway.

I'm not sure what to do with Tools/compiler/compiler/* -- that isn't part of
distutils, is it ? Should it try to be compatible with old bytecode version ?

Doc/lib/libdis.tex
Include/opcode.h
Lib/dis.py
Python/ceval.c
Python/compile.c
Python/import.c

index 26cc56754b20977ba463ee51883bb053cfbaa7f6..bf1fc63e15d74bf6974efe6a9eee4294aea0f57f 100644 (file)
@@ -337,14 +337,14 @@ Implements \code{del name}, where \var{namei} is the index into
 \member{co_names} attribute of the code object.
 \end{opcodedesc}
 
-\begin{opcodedesc}{UNPACK_TUPLE}{count}
+\begin{opcodedesc}{UNPACK_SEQUENCE}{count}
 Unpacks TOS into \var{count} individual values, which are put onto
 the stack right-to-left.
 \end{opcodedesc}
 
-\begin{opcodedesc}{UNPACK_LIST}{count}
-Unpacks TOS into \var{count} individual values.
-\end{opcodedesc}
+%\begin{opcodedesc}{UNPACK_LIST}{count}
+%This opcode is obsolete.
+%\end{opcodedesc}
 
 %\begin{opcodedesc}{UNPACK_ARG}{count}
 %This opcode is obsolete.
index 630d5dd37692fc10c121062665f4dcd44e5ce47c..78505b721d419003d3dab1ffd89bd8a24c269ac4 100644 (file)
@@ -76,8 +76,8 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 
 #define STORE_NAME     90      /* Index in name list */
 #define DELETE_NAME    91      /* "" */
-#define UNPACK_TUPLE   92      /* Number of tuple items */
-#define UNPACK_LIST    93      /* Number of list items */
+#define UNPACK_SEQUENCE        92      /* Number of sequence items */
+
 #define STORE_ATTR     95      /* Index in name list */
 #define DELETE_ATTR    96      /* "" */
 #define STORE_GLOBAL   97      /* "" */
index faea354630984524c1ff11b41ad9c6cac7480268..3309357e292a1e6465c7897c2ca2a8dd3122050e 100644 (file)
@@ -206,8 +206,8 @@ HAVE_ARGUMENT = 90          # Opcodes from here have an argument:
 
 name_op('STORE_NAME', 90)      # Index in name list 
 name_op('DELETE_NAME', 91)     # "" 
-def_op('UNPACK_TUPLE', 92)     # Number of tuple items 
-def_op('UNPACK_LIST', 93)      # Number of list items 
+def_op('UNPACK_SEQUENCE', 92)  # Number of tuple items 
+
 name_op('STORE_ATTR', 95)      # Index in name list 
 name_op('DELETE_ATTR', 96)     # ""
 name_op('STORE_GLOBAL', 97)    # ""
index 9bcb2ad451ac57c3bea12f1d7142f05361515a2e..40b5738774923d495f0ac4c1ecce914eb00ad78f 100644 (file)
@@ -1165,8 +1165,7 @@ eval_code2(PyCodeObject *co, PyObject *globals, PyObject *locals,
                default: switch (opcode) {
 #endif
                
-               case UNPACK_TUPLE:
-               case UNPACK_LIST:
+               case UNPACK_SEQUENCE:
                        v = POP();
                        if (PyTuple_Check(v)) {
                                if (PyTuple_Size(v) != oparg) {
index 49e5863d03b3a258d0b6e75d186f674618554a6c..395bd1e07bd2d5ea19b3d6a49b5ca1c9f2a005a3 100644 (file)
@@ -1729,27 +1729,14 @@ com_assign_trailer(struct compiling *c, node *n, int assigning)
 }
 
 static void
-com_assign_tuple(struct compiling *c, node *n, int assigning)
+com_assign_sequence(struct compiling *c, node *n, int assigning)
 {
        int i;
        if (TYPE(n) != testlist)
                REQ(n, exprlist);
        if (assigning) {
                i = (NCH(n)+1)/2;
-               com_addoparg(c, UNPACK_TUPLE, i);
-               com_push(c, i-1);
-       }
-       for (i = 0; i < NCH(n); i += 2)
-               com_assign(c, CHILD(n, i), assigning);
-}
-
-static void
-com_assign_list(struct compiling *c, node *n, int assigning)
-{
-       int i;
-       if (assigning) {
-               i = (NCH(n)+1)/2;
-               com_addoparg(c, UNPACK_LIST, i);
+               com_addoparg(c, UNPACK_SEQUENCE, i);
                com_push(c, i-1);
        }
        for (i = 0; i < NCH(n); i += 2)
@@ -1775,7 +1762,7 @@ com_assign(struct compiling *c, node *n, int assigning)
                case exprlist:
                case testlist:
                        if (NCH(n) > 1) {
-                               com_assign_tuple(c, n, assigning);
+                               com_assign_sequence(c, n, assigning);
                                return;
                        }
                        n = CHILD(n, 0);
@@ -1843,7 +1830,7 @@ com_assign(struct compiling *c, node *n, int assigning)
                                                  "can't assign to []");
                                        return;
                                }
-                               com_assign_list(c, n, assigning);
+                               com_assign_sequence(c, n, assigning);
                                return;
                        case NAME:
                                com_assign_name(c, CHILD(n, 0), assigning);
@@ -2869,7 +2856,7 @@ com_fplist(struct compiling *c, node *n)
        }
        else {
                int i = (NCH(n)+1)/2;
-               com_addoparg(c, UNPACK_TUPLE, i);
+               com_addoparg(c, UNPACK_SEQUENCE, i);
                com_push(c, i-1);
                for (i = 0; i < NCH(n); i += 2)
                        com_fpdef(c, CHILD(n, i));
index 3c5f6246e3a27a3b3829f36ba48ec63ddde02d83..9b3094287e65dc66afc58fae1113904a2c5943ba 100644 (file)
@@ -66,7 +66,7 @@ extern time_t PyOS_GetLastModificationTime(char *, FILE *);
 /* XXX Perhaps the magic number should be frozen and a version field
    added to the .pyc file header? */
 /* New way to come up with the magic number: (YEAR-1995), MONTH, DAY */
-#define MAGIC (50428 | ((long)'\r'<<16) | ((long)'\n'<<24))
+#define MAGIC (50811 | ((long)'\r'<<16) | ((long)'\n'<<24))
 
 /* Magic word as global; note that _PyImport_Init() can change the
    value of this global to accommodate for alterations of how the