[Python-ideas] Cofunctions - Getting away from the iterator protocol
Terry Reedy
tjreedy at udel.edu
Tue Nov 1 07:27:55 CET 2011
More information about the Python-ideas mailing list
Tue Nov 1 07:27:55 CET 2011
- Previous message: [Python-ideas] Cofunctions - Getting away from the iterator protocol
- Next message: [Python-ideas] Cofunctions - Getting away from the iterator protocol
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 11/1/2011 12:58 AM, Ron Adam wrote: > Poking around a bit, it looks like 'raise' does most of the work and the > exception is just an envelope for what ever 'raise' puts in it. Is that > right? I believe raise just instantiates the indicated exception. I expect that Exception.__new__ or .__init__ captures the traceback info. Subclasses can add more. A SuspendExecution exception should be able to grab as much as is needed for a resume. A CAPI call could be added if needed. I hope you keep looking at this idea. Function calls stop execution and pass control 'down', to be resumed by return. yield stops execution and passes control 'up', to be resumed by next (or .send). Exceptions pass control 'up' (or 'out') without the possibility of resuming. All that is lacking is something to suspend and pass control 'sideways', to a specific target. A special exception makes some sense in that exceptions already get the call stack needed to resume after suspension. -- Terry Jan Reedy
- Previous message: [Python-ideas] Cofunctions - Getting away from the iterator protocol
- Next message: [Python-ideas] Cofunctions - Getting away from the iterator protocol
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list