[Python-checkins] python/dist/src/Python newcompile.c, 1.1.2.59, 1.1.2.60

nnorwitz at users.sourceforge.net nnorwitz at users.sourceforge.net
Mon Dec 29 17:10:44 EST 2003


Update of /cvsroot/python/python/dist/src/Python
In directory sc8-pr-cvs1:/tmp/cvs-serv23913/Python

Modified Files:
      Tag: ast-branch
	newcompile.c 
Log Message:
Add a few more known problems
Fix nested if statements
Fix for statements


Index: newcompile.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/Attic/newcompile.c,v
retrieving revision 1.1.2.59
retrieving revision 1.1.2.60
diff -C2 -d -r1.1.2.59 -r1.1.2.60
*** newcompile.c	29 Dec 2003 03:49:43 -0000	1.1.2.59
--- newcompile.c	29 Dec 2003 22:10:41 -0000	1.1.2.60
***************
*** 18,28 ****
  
       2:
-        LOAD_NAME is output instead of LOAD_GLOBAL
- 
-      3:
         Get this err msg: XXX rd_object called with exception set
         From Python/marshal.c::PyMarshal_ReadLastObjectFromFile()
         This looks like it may be related to #1.
  
  */
  
--- 18,33 ----
  
       2:
         Get this err msg: XXX rd_object called with exception set
         From Python/marshal.c::PyMarshal_ReadLastObjectFromFile()
         This looks like it may be related to #1.
  
+      3:
+        LOAD_NAME is output instead of LOAD_GLOBAL
+ 
+      4:
+        typing Ctrl-C seg faults
+ 
+      5:
+        line numbers are off
  */
  
***************
*** 856,884 ****
  	if (end < 0)
  		return 0;
! 	for (;;) {
! 		next = compiler_new_block(c);
! 		if (next < 0)
! 			return 0;
! 		VISIT(c, expr, s->v.If.test);
! 		ADDOP_JREL(c, JUMP_IF_FALSE, next);
! 		ADDOP(c, POP_TOP);
! 		VISIT_SEQ(c, stmt, s->v.If.body);
! 		ADDOP_JREL(c, JUMP_FORWARD, end);
! 		compiler_use_next_block(c, next);
! 		ADDOP(c, POP_TOP);
! 		if (s->v.If.orelse) {
! 			stmt_ty t = asdl_seq_GET(s->v.If.orelse, 0);
! 			if (t->kind == If_kind) {
! 				s = t;
! 				c->u->u_lineno = t->lineno;
! 			}
! 			else {
! 				VISIT_SEQ(c, stmt, s->v.If.orelse);
! 				break;
! 			}
! 		}
! 		else
! 			break;
! 	}
  	compiler_use_next_block(c, end);
  	return 1;
--- 861,876 ----
  	if (end < 0)
  		return 0;
!         next = compiler_new_block(c);
!         if (next < 0)
!             return 0;
!         VISIT(c, expr, s->v.If.test);
!         ADDOP_JREL(c, JUMP_IF_FALSE, next);
!         ADDOP(c, POP_TOP);
!         VISIT_SEQ(c, stmt, s->v.If.body);
!         ADDOP_JREL(c, JUMP_FORWARD, end);
!         compiler_use_next_block(c, next);
!         ADDOP(c, POP_TOP);
!         if (s->v.If.orelse)
!             VISIT_SEQ(c, stmt, s->v.If.orelse);
  	compiler_use_next_block(c, end);
  	return 1;
***************
*** 905,909 ****
  	VISIT_SEQ(c, stmt, s->v.For.body);
  	ADDOP_JABS(c, JUMP_ABSOLUTE, start);
! 	compiler_use_next_block(c, cleanup);
  	ADDOP(c, POP_BLOCK);
  	compiler_pop_fblock(c, LOOP, start);
--- 897,901 ----
  	VISIT_SEQ(c, stmt, s->v.For.body);
  	ADDOP_JABS(c, JUMP_ABSOLUTE, start);
! 	compiler_use_block(c, cleanup);
  	ADDOP(c, POP_BLOCK);
  	compiler_pop_fblock(c, LOOP, start);





More information about the Python-checkins mailing list