[Python-ideas] Revised**5 PEP on yield-from
Jacob Holm
jh at improva.dk
Sat Feb 28 21:54:32 CET 2009
More information about the Python-ideas mailing list
Sat Feb 28 21:54:32 CET 2009
- Previous message: [Python-ideas] Revised**5 PEP on yield-from
- Next message: [Python-ideas] More alternative names for yield-from
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Replying to myself here... Jacob Holm wrote: > I think I can actually see a way to do it that should be fast enough, > but I'd like to > work out the details first. If it works it will be O(1) with low > constants as long as > you don't build trees, and similar to traversing a delegation chain in > the worst case. > > All this depends on getting it working using delegation chains first > though, as most of > the StopIteration and Exception handling would be the same. I have now worked out the details, and it is indeed possible to get O(1) for simple cases and amortized O(logN) in general, all with fairly low constants. I have implemented the tree structure as a python module and added a trampoline-based pure-python implementation of "yield-from" to try it out. It seems that this version beats a normal "for v in it: yield v" when the delegation chains get around 90 generators deep. This may sound like much, but keep in mind that this is all in python. I expect a C implementation of this would break even much sooner than that (hoping for <5). If you (or anyone else) is interested I can post the code here. (Or you can suggest a good place to upload it). Regards Jacob
- Previous message: [Python-ideas] Revised**5 PEP on yield-from
- Next message: [Python-ideas] More alternative names for yield-from
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list