| 
									
										
										
										
											1993-07-28 09:05:47 +00:00
										 |  |  | #ifndef Py_OPCODE_H
 | 
					
						
							|  |  |  | #define Py_OPCODE_H
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1991-02-19 12:39:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | /* Instruction opcodes for compiled code */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define POP_TOP		1
 | 
					
						
							|  |  |  | #define ROT_TWO		2
 | 
					
						
							|  |  |  | #define ROT_THREE	3
 | 
					
						
							| 
									
										
										
										
											1990-12-20 15:06:42 +00:00
										 |  |  | #define DUP_TOP		4
 | 
					
						
							| 
									
										
										
										
											2010-09-04 18:43:52 +00:00
										 |  |  | #define DUP_TOP_TWO     5
 | 
					
						
							| 
									
										
										
										
											2004-06-21 16:31:15 +00:00
										 |  |  | #define NOP		9
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define UNARY_POSITIVE	10
 | 
					
						
							|  |  |  | #define UNARY_NEGATIVE	11
 | 
					
						
							|  |  |  | #define UNARY_NOT	12
 | 
					
						
							| 
									
										
										
										
											1995-07-18 14:21:06 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1991-10-24 14:59:31 +00:00
										 |  |  | #define UNARY_INVERT	15
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-01-12 00:51:44 +00:00
										 |  |  | #define BINARY_POWER	19
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | #define BINARY_MULTIPLY	20
 | 
					
						
							| 
									
										
										
										
											2006-03-16 06:02:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | #define BINARY_MODULO	22
 | 
					
						
							|  |  |  | #define BINARY_ADD	23
 | 
					
						
							|  |  |  | #define BINARY_SUBTRACT	24
 | 
					
						
							|  |  |  | #define BINARY_SUBSCR	25
 | 
					
						
							| 
									
										
										
										
											2001-08-08 05:00:18 +00:00
										 |  |  | #define BINARY_FLOOR_DIVIDE 26
 | 
					
						
							|  |  |  | #define BINARY_TRUE_DIVIDE 27
 | 
					
						
							|  |  |  | #define INPLACE_FLOOR_DIVIDE 28
 | 
					
						
							|  |  |  | #define INPLACE_TRUE_DIVIDE 29
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 59541-59561 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r59544 | raymond.hettinger | 2007-12-18 01:13:45 +0100 (Tue, 18 Dec 2007) | 1 line
  Add more namedtuple() test cases.  Neaten the code and comments.
........
  r59545 | christian.heimes | 2007-12-18 04:38:03 +0100 (Tue, 18 Dec 2007) | 3 lines
  Fixed for #1601: IDLE not working correctly on Windows (Py30a2/IDLE30a1)
  Amaury's ideas works great. Should we build the Python core with WINVER=0x0500 and _WIN32_WINNT=0x0500, too?
........
  r59546 | christian.heimes | 2007-12-18 10:00:13 +0100 (Tue, 18 Dec 2007) | 1 line
  Make it a bit easier to test Tcl/Tk and idle from a build dir.
........
  r59547 | christian.heimes | 2007-12-18 10:12:10 +0100 (Tue, 18 Dec 2007) | 1 line
  Removed several unused files from the PCbuild9 directory. They are relics from the past.
........
  r59548 | raymond.hettinger | 2007-12-18 19:26:18 +0100 (Tue, 18 Dec 2007) | 29 lines
  Speed-up dictionary constructor by about 10%.
  New opcode, STORE_MAP saves the compiler from awkward stack manipulations
  and specializes for dicts using PyDict_SetItem instead of PyObject_SetItem.
  Old disassembly:
                0 BUILD_MAP                0
                3 DUP_TOP
                4 LOAD_CONST               1 (1)
                7 ROT_TWO
                8 LOAD_CONST               2 ('x')
               11 STORE_SUBSCR
               12 DUP_TOP
               13 LOAD_CONST               3 (2)
               16 ROT_TWO
               17 LOAD_CONST               4 ('y')
               20 STORE_SUBSCR
  New disassembly:
                0 BUILD_MAP                0
                3 LOAD_CONST               1 (1)
                6 LOAD_CONST               2 ('x')
                9 STORE_MAP
               10 LOAD_CONST               3 (2)
               13 LOAD_CONST               4 ('y')
               16 STORE_MAP
........
  r59549 | thomas.heller | 2007-12-18 20:00:34 +0100 (Tue, 18 Dec 2007) | 2 lines
  Issue #1642: Fix segfault in ctypes when trying to delete attributes.
........
  r59551 | guido.van.rossum | 2007-12-18 21:10:42 +0100 (Tue, 18 Dec 2007) | 2 lines
  Issue #1645 by Alberto Bertogli.  Fix a comment.
........
  r59553 | raymond.hettinger | 2007-12-18 22:24:09 +0100 (Tue, 18 Dec 2007) | 12 lines
  Give meaning to the oparg for BUILD_MAP:  estimated size of the dictionary.
  Allows dictionaries to be pre-sized (upto 255 elements) saving time lost
  to re-sizes with their attendant mallocs and re-insertions.
  Has zero effect on small dictionaries (5 elements or fewer), a slight
  benefit for dicts upto 22 elements (because they had to resize once
  anyway), and more benefit for dicts upto 255 elements (saving multiple
  resizes during the build-up and reducing the number of collisions on
  the first insertions).  Beyond 255 elements, there is no addional benefit.
........
  r59554 | christian.heimes | 2007-12-18 22:56:09 +0100 (Tue, 18 Dec 2007) | 1 line
  Fixed #1649: IDLE error: dictionary changed size during iteration
........
  r59557 | raymond.hettinger | 2007-12-18 23:21:27 +0100 (Tue, 18 Dec 2007) | 1 line
  Simplify and speedup _asdict() for named tuples.
........
  r59558 | christian.heimes | 2007-12-19 00:22:54 +0100 (Wed, 19 Dec 2007) | 3 lines
  Applied patch #1635: Float patch for inf and nan on Windows (and other platforms).
  The patch unifies float("inf") and repr(float("inf")) on all platforms.
........
  r59559 | raymond.hettinger | 2007-12-19 00:51:15 +0100 (Wed, 19 Dec 2007) | 1 line
  Users demand iterable input for named tuples. The author capitulates.
........
  r59560 | raymond.hettinger | 2007-12-19 01:21:06 +0100 (Wed, 19 Dec 2007) | 1 line
  Beef-up tests for dict literals
........
  r59561 | raymond.hettinger | 2007-12-19 01:27:21 +0100 (Wed, 19 Dec 2007) | 1 line
  Zap a duplicate line
........
											
										 
											2007-12-19 02:07:34 +00:00
										 |  |  | #define STORE_MAP	54
 | 
					
						
							| 
									
										
										
										
											2000-08-24 20:09:45 +00:00
										 |  |  | #define INPLACE_ADD	55
 | 
					
						
							|  |  |  | #define INPLACE_SUBTRACT	56
 | 
					
						
							|  |  |  | #define INPLACE_MULTIPLY	57
 | 
					
						
							| 
									
										
										
										
											2006-03-17 08:59:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-08-24 20:09:45 +00:00
										 |  |  | #define INPLACE_MODULO	59
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | #define STORE_SUBSCR	60
 | 
					
						
							|  |  |  | #define DELETE_SUBSCR	61
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1991-10-24 14:59:31 +00:00
										 |  |  | #define BINARY_LSHIFT	62
 | 
					
						
							|  |  |  | #define BINARY_RSHIFT	63
 | 
					
						
							|  |  |  | #define BINARY_AND	64
 | 
					
						
							|  |  |  | #define BINARY_XOR	65
 | 
					
						
							|  |  |  | #define BINARY_OR	66
 | 
					
						
							| 
									
										
										
										
											2000-08-24 20:09:45 +00:00
										 |  |  | #define INPLACE_POWER	67
 | 
					
						
							| 
									
										
										
										
											2001-04-20 19:13:02 +00:00
										 |  |  | #define GET_ITER	68
 | 
					
						
							| 
									
										
										
										
											2007-03-18 15:41:51 +00:00
										 |  |  | #define STORE_LOCALS	69
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | #define PRINT_EXPR	70
 | 
					
						
							| 
									
										
										
										
											2007-03-18 15:41:51 +00:00
										 |  |  | #define LOAD_BUILD_CLASS 71
 | 
					
						
							| 
									
										
										
											
												* Remove PRINT_ITEM(_TO), PRINT_NEWLINE(_TO) opcodes.
* Fix some docstrings and one Print -> print.
* Fix test_{class,code,descrtut,dis,extcall,parser,popen,pkg,subprocess,syntax,traceback}.
  These were the ones that generated code with a print statement.
  In most remaining failing tests there's an issue with the soft space.
											
										 
											2007-02-09 21:28:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-08-24 20:09:45 +00:00
										 |  |  | #define INPLACE_LSHIFT	75
 | 
					
						
							|  |  |  | #define INPLACE_RSHIFT	76
 | 
					
						
							|  |  |  | #define INPLACE_AND	77
 | 
					
						
							|  |  |  | #define INPLACE_XOR	78
 | 
					
						
							|  |  |  | #define INPLACE_OR	79
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | #define BREAK_LOOP	80
 | 
					
						
							| 
									
										
										
										
											2006-02-27 22:32:47 +00:00
										 |  |  | #define WITH_CLEANUP    81
 | 
					
						
							| 
									
										
										
										
											2007-03-18 15:41:51 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | #define RETURN_VALUE	83
 | 
					
						
							| 
									
										
										
										
											2000-08-17 22:55:00 +00:00
										 |  |  | #define IMPORT_STAR	84
 | 
					
						
							| 
									
										
										
										
											2007-11-06 21:34:58 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-06-18 22:08:13 +00:00
										 |  |  | #define YIELD_VALUE	86
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | #define POP_BLOCK	87
 | 
					
						
							|  |  |  | #define END_FINALLY	88
 | 
					
						
							| 
									
										
										
										
											2008-06-11 15:59:43 +00:00
										 |  |  | #define POP_EXCEPT	89
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define HAVE_ARGUMENT	90	/* Opcodes from here have an argument: */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define STORE_NAME	90	/* Index in name list */
 | 
					
						
							|  |  |  | #define DELETE_NAME	91	/* "" */
 | 
					
						
							| 
									
										
										
										
											2000-08-11 22:15:52 +00:00
										 |  |  | #define UNPACK_SEQUENCE	92	/* Number of sequence items */
 | 
					
						
							| 
									
										
										
										
											2001-04-20 19:13:02 +00:00
										 |  |  | #define FOR_ITER	93
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 55225-55227,55229-55269 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
  r55238 | guido.van.rossum | 2007-05-10 16:46:05 -0700 (Thu, 10 May 2007) | 9 lines
  Merged revisions 55227 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r55227 | guido.van.rossum | 2007-05-10 10:20:15 -0700 (Thu, 10 May 2007) | 2 lines
    Fix a bug in test_c_api() that caused a negative refcount.
  ........
................
  r55246 | neal.norwitz | 2007-05-11 00:01:52 -0700 (Fri, 11 May 2007) | 1 line
  Remove commands.getstatus() it is obsolete.
................
  r55248 | neal.norwitz | 2007-05-11 00:29:05 -0700 (Fri, 11 May 2007) | 2 lines
  Remove bsddb185 support.
................
  r55249 | neal.norwitz | 2007-05-11 00:29:50 -0700 (Fri, 11 May 2007) | 1 line
  Remove bsddb185 module too
................
  r55250 | neal.norwitz | 2007-05-11 00:32:13 -0700 (Fri, 11 May 2007) | 1 line
  bsddb185: Gotta remove from the file checked in, not Setup
................
  r55251 | neal.norwitz | 2007-05-11 00:53:26 -0700 (Fri, 11 May 2007) | 1 line
  Remove obsolete IRIX modules (as much as I could find, there is probably more)
................
  r55252 | neal.norwitz | 2007-05-11 00:55:35 -0700 (Fri, 11 May 2007) | 1 line
  Remove SGI turd.
................
  r55254 | georg.brandl | 2007-05-11 03:11:01 -0700 (Fri, 11 May 2007) | 2 lines
  Add a case for set comprehensions to the "cannot assign to" switch.
................
  r55255 | georg.brandl | 2007-05-11 03:11:25 -0700 (Fri, 11 May 2007) | 2 lines
  Fix wrong imports.
................
  r55261 | georg.brandl | 2007-05-11 07:37:48 -0700 (Fri, 11 May 2007) | 2 lines
  Remove removed tex files.
................
  r55262 | georg.brandl | 2007-05-11 08:28:41 -0700 (Fri, 11 May 2007) | 2 lines
  Commit PEP 3132 implementation.
................
  r55264 | georg.brandl | 2007-05-11 08:50:19 -0700 (Fri, 11 May 2007) | 2 lines
  Check in the inevitable AST version number and format Py_ssize_t with %zd.
................
  r55265 | neal.norwitz | 2007-05-11 09:12:22 -0700 (Fri, 11 May 2007) | 1 line
  Remove mention of os.popen* and popen2.* since these will be removed.
................
  r55266 | neal.norwitz | 2007-05-11 09:19:57 -0700 (Fri, 11 May 2007) | 1 line
  Get doc to build again (almost, the doc is fine)
................
  r55267 | neal.norwitz | 2007-05-11 09:21:02 -0700 (Fri, 11 May 2007) | 1 line
  Really get doc to build (remove use of string module)
................
  r55269 | neal.norwitz | 2007-05-11 09:29:43 -0700 (Fri, 11 May 2007) | 1 line
  Add some notes to cleanup later
................
											
										 
											2007-05-11 16:50:42 +00:00
										 |  |  | #define UNPACK_EX       94      /* Num items before variable part +
 | 
					
						
							|  |  |  |                                    (Num items after variable part << 8) */ | 
					
						
							| 
									
										
										
										
											2000-08-11 22:15:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | #define STORE_ATTR	95	/* Index in name list */
 | 
					
						
							|  |  |  | #define DELETE_ATTR	96	/* "" */
 | 
					
						
							| 
									
										
										
										
											1991-12-10 13:59:17 +00:00
										 |  |  | #define STORE_GLOBAL	97	/* "" */
 | 
					
						
							|  |  |  | #define DELETE_GLOBAL	98	/* "" */
 | 
					
						
							| 
									
										
										
										
											2010-09-04 18:43:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | #define LOAD_CONST	100	/* Index in const list */
 | 
					
						
							|  |  |  | #define LOAD_NAME	101	/* Index in name list */
 | 
					
						
							|  |  |  | #define BUILD_TUPLE	102	/* Number of tuple items */
 | 
					
						
							|  |  |  | #define BUILD_LIST	103	/* Number of list items */
 | 
					
						
							| 
									
										
										
										
											2006-08-28 15:27:34 +00:00
										 |  |  | #define BUILD_SET	104     /* Number of set items */
 | 
					
						
							|  |  |  | #define BUILD_MAP	105	/* Always zero for now */
 | 
					
						
							|  |  |  | #define LOAD_ATTR	106	/* Index in name list */
 | 
					
						
							|  |  |  | #define COMPARE_OP	107	/* Comparison operator */
 | 
					
						
							|  |  |  | #define IMPORT_NAME	108	/* Index in name list */
 | 
					
						
							|  |  |  | #define IMPORT_FROM	109	/* Index in name list */
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define JUMP_FORWARD	110	/* Number of bytes to skip */
 | 
					
						
							| 
									
										
										
										
											2009-02-25 02:25:04 +00:00
										 |  |  | #define JUMP_IF_FALSE_OR_POP 111	/* Target byte offset from beginning of code */
 | 
					
						
							|  |  |  | #define JUMP_IF_TRUE_OR_POP 112	/* "" */
 | 
					
						
							|  |  |  | #define JUMP_ABSOLUTE	113	/* "" */
 | 
					
						
							|  |  |  | #define POP_JUMP_IF_FALSE 114	/* "" */
 | 
					
						
							|  |  |  | #define POP_JUMP_IF_TRUE 115	/* "" */
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1991-04-04 10:45:01 +00:00
										 |  |  | #define LOAD_GLOBAL	116	/* Index in name list */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-02-01 22:48:12 +00:00
										 |  |  | #define CONTINUE_LOOP	119	/* Start of loop (absolute) */
 | 
					
						
							| 
									
										
											  
											
												Merged revisions 56301-56442 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk
................
  r56322 | kurt.kaiser | 2007-07-12 11:35:03 -0700 (Thu, 12 Jul 2007) | 2 lines
  Replace obscure code which was failing in py3k.
................
  r56323 | kurt.kaiser | 2007-07-12 11:44:12 -0700 (Thu, 12 Jul 2007) | 3 lines
  1. Remove new division option
  2. Update IDLE version to 3.0x
................
  r56327 | kurt.kaiser | 2007-07-12 12:20:20 -0700 (Thu, 12 Jul 2007) | 5 lines
  Fix another instance of this defect in Tkinter, and one in IDLE.
  Patch 1724999 by Ali Gholami Rudi -- avoid complaints about dict size
  change during iter in destroy call.
................
  r56339 | georg.brandl | 2007-07-13 03:07:25 -0700 (Fri, 13 Jul 2007) | 2 lines
  Fix #1753310: regrtest -x doesn't work anymore
................
  r56361 | kurt.kaiser | 2007-07-13 18:25:24 -0700 (Fri, 13 Jul 2007) | 2 lines
  convert a map() iterator to a list to get this working.
................
  r56362 | kurt.kaiser | 2007-07-13 18:53:45 -0700 (Fri, 13 Jul 2007) | 2 lines
  Was modifying dict during iteration.
................
  r56376 | collin.winter | 2007-07-14 11:56:19 -0700 (Sat, 14 Jul 2007) | 1 line
  Add an example of class decorators to test_grammar.
................
  r56377 | collin.winter | 2007-07-14 12:00:17 -0700 (Sat, 14 Jul 2007) | 1 line
  Add a basic example of dictcomps to test_grammar.
................
  r56413 | neal.norwitz | 2007-07-17 00:21:18 -0700 (Tue, 17 Jul 2007) | 149 lines
  Merged revisions 56202-56412 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r56204 | ronald.oussoren | 2007-07-08 23:02:21 -0700 (Sun, 08 Jul 2007) | 2 lines
    Patch 1693258: Fix for duplicate "preferences" menu-OS X
  ........
    r56207 | ronald.oussoren | 2007-07-09 01:41:15 -0700 (Mon, 09 Jul 2007) | 4 lines
    Patch 1673122: be explicit about which libtool to use, to avoid name clashes
    when a users install GNU libtool early in his PATH
  ........
    r56280 | georg.brandl | 2007-07-11 12:41:49 -0700 (Wed, 11 Jul 2007) | 2 lines
    Fix #1752132: wrong comment in opcode description.
  ........
    r56293 | georg.brandl | 2007-07-12 01:05:45 -0700 (Thu, 12 Jul 2007) | 3 lines
    Patch #1752270, #1750931: complain if urllib2 add_handler called
    without handler.
  ........
    r56296 | georg.brandl | 2007-07-12 01:11:29 -0700 (Thu, 12 Jul 2007) | 2 lines
    Patch #1739696: use code.co_code only if really necessary
  ........
    r56298 | georg.brandl | 2007-07-12 01:38:00 -0700 (Thu, 12 Jul 2007) | 3 lines
    Patch #1673759: add a missing overflow check when formatting floats
    with %G.
  ........
    r56302 | georg.brandl | 2007-07-12 02:06:41 -0700 (Thu, 12 Jul 2007) | 2 lines
    Patch #1731659: improve time.strptime docs.
  ........
    r56304 | georg.brandl | 2007-07-12 02:24:04 -0700 (Thu, 12 Jul 2007) | 2 lines
    Patch #1731169: clean up expected skips list.
  ........
    r56306 | georg.brandl | 2007-07-12 02:37:49 -0700 (Thu, 12 Jul 2007) | 3 lines
    Bug #1637365: add subsection about "__name__ == __main__" to the
    Python tutorial.
  ........
    r56308 | georg.brandl | 2007-07-12 02:59:22 -0700 (Thu, 12 Jul 2007) | 5 lines
    Patch #1675424: Added tests for uncovered code in the zipfile module.
      The KeyError raised by Zipfile.getinfo for nonexistent names now has
      a descriptive message.
  ........
    r56340 | facundo.batista | 2007-07-13 03:43:44 -0700 (Fri, 13 Jul 2007) | 6 lines
    Added tests for basic behavior of DateTime, Binary, and Fault classes
    and the escape function. Check that marshalling recursive sequences &
    dicts raises TypeError. Check that marshalling out-of-range ints
    raises OverflowError [Alan McIntyre - GSoC]
  ........
    r56345 | raymond.hettinger | 2007-07-13 05:09:41 -0700 (Fri, 13 Jul 2007) | 1 line
    Correct the docs for takewhile().  Improve the recipe for nth().  Should be backported
  ........
    r56348 | thomas.heller | 2007-07-13 06:59:39 -0700 (Fri, 13 Jul 2007) | 4 lines
    Repair COMError.  Since exceptions are new style classes now, setting
    the methods and docstring after the type creation does not work, they
    must be in the dictionary before creating the type.
  ........
    r56349 | thomas.heller | 2007-07-13 07:18:06 -0700 (Fri, 13 Jul 2007) | 1 line
    Add tests for _ctypes.COMError.
  ........
    r56350 | thomas.heller | 2007-07-13 09:50:43 -0700 (Fri, 13 Jul 2007) | 4 lines
    Do not try to load the GLUT library in the ctypes tests.  This test
    adds little value, but has a large problem on OS X, as explained in
    SF# 1581906.
  ........
    r56352 | thomas.heller | 2007-07-13 10:12:23 -0700 (Fri, 13 Jul 2007) | 3 lines
    Fix for SF# 1701409: segfault in c_char_p of ctypes.  The repr output
    of c_char_p and c_wchar_p has changed as a sideeffect.
  ........
    r56355 | thomas.heller | 2007-07-13 10:46:54 -0700 (Fri, 13 Jul 2007) | 3 lines
    Fix for SF# 1649098: avoid zero-sized array declaration in structure.
  ........
    r56357 | thomas.heller | 2007-07-13 12:51:55 -0700 (Fri, 13 Jul 2007) | 3 lines
    PyType_stgdict() returns a borrowed reference which must not be
    Py_DECREF'd.
  ........
    r56360 | barry.warsaw | 2007-07-13 15:12:58 -0700 (Fri, 13 Jul 2007) | 10 lines
    In response to this SF bug:
    [ 1752723 ] email.message_from_string: initial line gets discarded
    I added a test to assert that when the first line of text passed to
    message_from_string() contains a leading space, the message ends up with the
    appropriate FirstHeaderLineIsContinuationDefect on its defects list.
    The bug is invalid.
  ........
    r56364 | georg.brandl | 2007-07-14 10:12:23 -0700 (Sat, 14 Jul 2007) | 2 lines
    Bug #1753406: missing \versionadded for subprocess.check_call.
  ........
    r56366 | georg.brandl | 2007-07-14 10:32:41 -0700 (Sat, 14 Jul 2007) | 2 lines
    Clarify webbrowser.open description.
  ........
    r56380 | andrew.kuchling | 2007-07-14 13:58:21 -0700 (Sat, 14 Jul 2007) | 1 line
    Typo fix
  ........
    r56382 | andrew.kuchling | 2007-07-14 14:56:19 -0700 (Sat, 14 Jul 2007) | 7 lines
    Avoid exception if there's a stray directory inside a Maildir folder.
    The Maildir specification doesn't seem to say anything about this
    situation, and it can happen if you're keeping a Maildir mailbox in
    Subversion (.svn directories) or some similar system.  The patch just
    ignores directories in the cur/, new/, tmp/ folders.
  ........
    r56392 | facundo.batista | 2007-07-14 15:41:45 -0700 (Sat, 14 Jul 2007) | 6 lines
    First version.  Includes tests for helper functions: read, write,
    _exception, readwrite, closeall, compact_traceback; and for classes
    dispatcher, dispatcher_with_send, and file_wrapper.
    [Alan McIntyre - GSoC]
  ........
    r56399 | facundo.batista | 2007-07-15 13:30:39 -0700 (Sun, 15 Jul 2007) | 5 lines
    Changed the used port and commented out some tests that uses
    a non documented function that appers to uses resources
    not present in Windows.
  ........
    r56412 | facundo.batista | 2007-07-16 19:19:39 -0700 (Mon, 16 Jul 2007) | 6 lines
    Prevent asyncore.dispatcher tests from hanging by adding loop counters
    to server & client, and by adding asyncore.close_all calls in
    tearDown. Also choose correct expected logging results based on the
    value of __debug__  [Alan McIntyre - GSoC]
  ........
................
  r56442 | guido.van.rossum | 2007-07-18 10:26:38 -0700 (Wed, 18 Jul 2007) | 14 lines
  Merged revisions 56413-56441 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk
  ........
    r56439 | georg.brandl | 2007-07-17 23:37:55 -0700 (Tue, 17 Jul 2007) | 2 lines
    Use "Unix" as platform name, not "UNIX".
  ........
    r56441 | guido.van.rossum | 2007-07-18 10:19:14 -0700 (Wed, 18 Jul 2007) | 3 lines
    SF patch# 1755885 by Kurt Kaiser: show location of Unicode escape errors.
    (Slightly tweaked for style and refcounts.)
  ........
................
											
										 
											2007-07-18 18:15:48 +00:00
										 |  |  | #define SETUP_LOOP	120	/* Target address (relative) */
 | 
					
						
							| 
									
										
										
										
											1990-11-18 17:27:39 +00:00
										 |  |  | #define SETUP_EXCEPT	121	/* "" */
 | 
					
						
							|  |  |  | #define SETUP_FINALLY	122	/* "" */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1993-03-30 13:18:41 +00:00
										 |  |  | #define LOAD_FAST	124	/* Local variable number */
 | 
					
						
							|  |  |  | #define STORE_FAST	125	/* Local variable number */
 | 
					
						
							|  |  |  | #define DELETE_FAST	126	/* Local variable number */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-07-07 22:32:10 +00:00
										 |  |  | #define RAISE_VARARGS	130	/* Number of raise arguments (1, 2 or 3) */
 | 
					
						
							| 
									
										
										
										
											2000-03-28 23:49:17 +00:00
										 |  |  | /* CALL_FUNCTION_XXX opcodes defined below depend on this definition */ | 
					
						
							| 
									
										
										
										
											1995-07-07 22:32:10 +00:00
										 |  |  | #define CALL_FUNCTION	131	/* #args + (#kwargs<<8) */
 | 
					
						
							| 
									
										
										
										
											2007-03-18 15:41:51 +00:00
										 |  |  | #define MAKE_FUNCTION	132	/* #defaults + #kwdefaults<<8 + #annotations<<16 */
 | 
					
						
							| 
									
										
										
										
											1996-07-30 16:41:26 +00:00
										 |  |  | #define BUILD_SLICE 	133	/* Number of items */
 | 
					
						
							| 
									
										
										
										
											1995-07-07 22:32:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-03-18 15:41:51 +00:00
										 |  |  | #define MAKE_CLOSURE    134     /* same as MAKE_FUNCTION */
 | 
					
						
							| 
									
										
											  
											
												PEP 227 implementation
The majority of the changes are in the compiler.  The mainloop changes
primarily to implement the new opcodes and to pass a function's
closure to eval_code2().  Frames and functions got new slots to hold
the closure.
Include/compile.h
    Add co_freevars and co_cellvars slots to code objects.
    Update PyCode_New() to take freevars and cellvars as arguments
Include/funcobject.h
    Add func_closure slot to function objects.
    Add GetClosure()/SetClosure() functions (and corresponding
    macros) for getting at the closure.
Include/frameobject.h
    PyFrame_New() now takes a closure.
Include/opcode.h
    Add four new opcodes: MAKE_CLOSURE, LOAD_CLOSURE, LOAD_DEREF,
    STORE_DEREF.
    Remove comment about old requirement for opcodes to fit in 7
    bits.
compile.c
    Implement changes to code objects for co_freevars and co_cellvars.
    Modify symbol table to use st_cur_name (string object for the name
    of the current scope) and st_cur_children (list of nested blocks).
    Also define st_nested, which might more properly be called
    st_cur_nested.  Add several DEF_XXX flags to track def-use
    information for free variables.
    New or modified functions of note:
    com_make_closure(struct compiling *, PyCodeObject *)
        Emit LOAD_CLOSURE opcodes as needed to pass cells for free
        variables into nested scope.
    com_addop_varname(struct compiling *, int, char *)
        Emits opcodes for LOAD_DEREF and STORE_DEREF.
    get_ref_type(struct compiling *, char *name)
        Return NAME_CLOSURE if ref type is FREE or CELL
    symtable_load_symbols(struct compiling *)
        Decides what variables are cell or free based on def-use info.
        Can now raise SyntaxError if nested scopes are mixed with
        exec or from blah import *.
    make_scope_info(PyObject *, PyObject *, int, int)
        Helper functions for symtable scope stack.
    symtable_update_free_vars(struct symtable *)
        After a code block has been analyzed, it must check each of
        its children for free variables that are not defined in the
        block.  If a variable is free in a child and not defined in
        the parent, then it is defined by block the enclosing the
        current one or it is a global.  This does the right logic.
    symtable_add_use() is now a macro for symtable_add_def()
    symtable_assign(struct symtable *, node *)
        Use goto instead of for (;;)
    Fixed bug in symtable where name of keyword argument in function
    call was treated as assignment in the scope of the call site. Ex:
        def f():
            g(a=2) # a was considered a local of f
ceval.c
    eval_code2() now take one more argument, a closure.
    Implement LOAD_CLOSURE, LOAD_DEREF, STORE_DEREF, MAKE_CLOSURE>
    Also: When name error occurs for global variable, report that the
    name was global in the error mesage.
Objects/frameobject.c
    Initialize f_closure to be a tuple containing space for cellvars
    and freevars.  f_closure is NULL if neither are present.
Objects/funcobject.c
    Add support for func_closure.
Python/import.c
    Change the magic number.
Python/marshal.c
    Track changes to code objects.
											
										 
											2001-01-25 20:06:59 +00:00
										 |  |  | #define LOAD_CLOSURE    135     /* Load free variable from closure */
 | 
					
						
							|  |  |  | #define LOAD_DEREF      136     /* Load and dereference from closure cell */ 
 | 
					
						
							|  |  |  | #define STORE_DEREF     137     /* Store into cell */ 
 | 
					
						
							| 
									
										
										
										
											2010-09-10 21:39:53 +00:00
										 |  |  | #define DELETE_DEREF    138     /* Delete closure cell */ 
 | 
					
						
							| 
									
										
											  
											
												PEP 227 implementation
The majority of the changes are in the compiler.  The mainloop changes
primarily to implement the new opcodes and to pass a function's
closure to eval_code2().  Frames and functions got new slots to hold
the closure.
Include/compile.h
    Add co_freevars and co_cellvars slots to code objects.
    Update PyCode_New() to take freevars and cellvars as arguments
Include/funcobject.h
    Add func_closure slot to function objects.
    Add GetClosure()/SetClosure() functions (and corresponding
    macros) for getting at the closure.
Include/frameobject.h
    PyFrame_New() now takes a closure.
Include/opcode.h
    Add four new opcodes: MAKE_CLOSURE, LOAD_CLOSURE, LOAD_DEREF,
    STORE_DEREF.
    Remove comment about old requirement for opcodes to fit in 7
    bits.
compile.c
    Implement changes to code objects for co_freevars and co_cellvars.
    Modify symbol table to use st_cur_name (string object for the name
    of the current scope) and st_cur_children (list of nested blocks).
    Also define st_nested, which might more properly be called
    st_cur_nested.  Add several DEF_XXX flags to track def-use
    information for free variables.
    New or modified functions of note:
    com_make_closure(struct compiling *, PyCodeObject *)
        Emit LOAD_CLOSURE opcodes as needed to pass cells for free
        variables into nested scope.
    com_addop_varname(struct compiling *, int, char *)
        Emits opcodes for LOAD_DEREF and STORE_DEREF.
    get_ref_type(struct compiling *, char *name)
        Return NAME_CLOSURE if ref type is FREE or CELL
    symtable_load_symbols(struct compiling *)
        Decides what variables are cell or free based on def-use info.
        Can now raise SyntaxError if nested scopes are mixed with
        exec or from blah import *.
    make_scope_info(PyObject *, PyObject *, int, int)
        Helper functions for symtable scope stack.
    symtable_update_free_vars(struct symtable *)
        After a code block has been analyzed, it must check each of
        its children for free variables that are not defined in the
        block.  If a variable is free in a child and not defined in
        the parent, then it is defined by block the enclosing the
        current one or it is a global.  This does the right logic.
    symtable_add_use() is now a macro for symtable_add_def()
    symtable_assign(struct symtable *, node *)
        Use goto instead of for (;;)
    Fixed bug in symtable where name of keyword argument in function
    call was treated as assignment in the scope of the call site. Ex:
        def f():
            g(a=2) # a was considered a local of f
ceval.c
    eval_code2() now take one more argument, a closure.
    Implement LOAD_CLOSURE, LOAD_DEREF, STORE_DEREF, MAKE_CLOSURE>
    Also: When name error occurs for global variable, report that the
    name was global in the error mesage.
Objects/frameobject.c
    Initialize f_closure to be a tuple containing space for cellvars
    and freevars.  f_closure is NULL if neither are present.
Objects/funcobject.c
    Add support for func_closure.
Python/import.c
    Change the magic number.
Python/marshal.c
    Track changes to code objects.
											
										 
											2001-01-25 20:06:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-28 23:49:17 +00:00
										 |  |  | /* The next 3 opcodes must be contiguous and satisfy
 | 
					
						
							| 
									
										
										
										
											2000-03-29 00:10:03 +00:00
										 |  |  |    (CALL_FUNCTION_VAR - CALL_FUNCTION) & 3 == 1  */ | 
					
						
							| 
									
										
										
										
											2000-03-28 23:49:17 +00:00
										 |  |  | #define CALL_FUNCTION_VAR          140	/* #args + (#kwargs<<8) */
 | 
					
						
							|  |  |  | #define CALL_FUNCTION_KW           141	/* #args + (#kwargs<<8) */
 | 
					
						
							|  |  |  | #define CALL_FUNCTION_VAR_KW       142	/* #args + (#kwargs<<8) */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-28 03:18:59 +00:00
										 |  |  | #define SETUP_WITH 143
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-08-24 00:32:09 +00:00
										 |  |  | /* Support for opargs more than 16 bits long */ | 
					
						
							| 
									
										
										
										
											2009-06-28 03:18:59 +00:00
										 |  |  | #define EXTENDED_ARG  144
 | 
					
						
							| 
									
										
										
										
											2000-08-24 00:32:09 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-18 11:06:25 +00:00
										 |  |  | #define LIST_APPEND     145
 | 
					
						
							|  |  |  | #define SET_ADD         146
 | 
					
						
							|  |  |  | #define MAP_ADD         147
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-01 19:59:11 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-11 15:59:43 +00:00
										 |  |  | /* EXCEPT_HANDLER is a special, implicit block type which is created when
 | 
					
						
							|  |  |  |    entering an except handler. It is not an opcode but we define it here | 
					
						
							|  |  |  |    as we want it to be available to both frameobject.c and ceval.c, while | 
					
						
							|  |  |  |    remaining private.*/ | 
					
						
							|  |  |  | #define EXCEPT_HANDLER 257
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-01-01 19:59:11 +00:00
										 |  |  | enum cmp_op {PyCmp_LT=Py_LT, PyCmp_LE=Py_LE, PyCmp_EQ=Py_EQ, PyCmp_NE=Py_NE, PyCmp_GT=Py_GT, PyCmp_GE=Py_GE, | 
					
						
							|  |  |  | 	     PyCmp_IN, PyCmp_NOT_IN, PyCmp_IS, PyCmp_IS_NOT, PyCmp_EXC_MATCH, PyCmp_BAD}; | 
					
						
							| 
									
										
										
										
											1990-12-20 15:06:42 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define HAS_ARG(op) ((op) >= HAVE_ARGUMENT)
 | 
					
						
							| 
									
										
										
										
											1993-07-28 09:05:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif /* !Py_OPCODE_H */
 |