[Stackless-checkins] CVS: slpdev/src/2.3/dev/Python ceval.c, 1.87, 1.88 pythonrun.c, 1.21, 1.22

Christian Tismer tismer at centera.de
Thu Jun 3 01:03:46 CEST 2004


Update of /home/cvs/slpdev/src/2.3/dev/Python
In directory centera.de:/tmp/cvs-serv3004/Python

Modified Files:
	ceval.c pythonrun.c 
Log Message:
Stackless 3.1 almost ready.
All tests are working, both Python and Stackless,
both soft and hard switching.

New features:
channels are working cross-thread!
Stack protection for eval_frame and pickling is complete.

A couple of smallish features are missing:
pickling of channels
refuse running tasklets from foreign threads
channel.transfer
scheduling strategy cross-thread
cframe pickling, get rid of invalid_exec funcs, instead use
the missing cframe owner-tasklet pointer!
add more tests!

Index: ceval.c
===================================================================
RCS file: /home/cvs/slpdev/src/2.3/dev/Python/ceval.c,v
retrieving revision 1.87
retrieving revision 1.88
diff -C2 -d -r1.87 -r1.88
*** ceval.c	24 May 2004 01:59:34 -0000	1.87
--- ceval.c	2 Jun 2004 23:03:42 -0000	1.88
***************
*** 291,300 ****
  	0,					/* tp_setattro */
  	0,					/* tp_as_buffer */
- #ifdef STACKLESS
- 	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
- 		Py_TPFLAGS_HAVE_STACKLESS_CALL, /* tp_flags */
- #else
  	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, /* tp_flags */
- #endif
   	0,					/* tp_doc */
   	(traverseproc)gen_traverse,		/* tp_traverse */
--- 291,295 ----
***************
*** 315,318 ****
--- 310,315 ----
  };
  
+ STACKLESS_DECLARE_METHOD(&PyGenerator_Type, tp_iternext)
+ 
  #ifdef WITH_THREAD
  
***************
*** 961,964 ****
--- 958,963 ----
  						goto stackless_interrupt_call;
  					}
+ 					/* hard switch, drop value */
+ 					Py_DECREF(ires);
  				}
  			}

Index: pythonrun.c
===================================================================
RCS file: /home/cvs/slpdev/src/2.3/dev/Python/pythonrun.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** pythonrun.c	24 May 2004 01:59:34 -0000	1.21
--- pythonrun.c	2 Jun 2004 23:03:42 -0000	1.22
***************
*** 171,176 ****
  	(void) PyThreadState_Swap(tstate);
  
- 	_Py_ReadyTypes();
- 
  #ifdef STACKLESS
  	if (!_PyStackless_InitTypes()) {
--- 171,174 ----
***************
*** 180,183 ****
--- 178,183 ----
  #endif
  
+ 	_Py_ReadyTypes();
+ 
  	if (!_PyFrame_Init())
  		Py_FatalError("Py_Initialize: can't init frames");


_______________________________________________
Stackless-checkins mailing list
Stackless-checkins at stackless.com
http://www.stackless.com/mailman/listinfo/stackless-checkins



More information about the Stackless-checkins mailing list