At 07:06 AM 6/2/04 -0700, Guido van Rossum wrote:
Stackless is *not* a minor change to Python, and that it severely restricts the ways in which Python can interact with other systems, be they hardware platforms, software frameworks, or 3rd party extensions.
It's definitely not a minor change, but I think that the severe restrictions comment may perhaps be inaccurate. My understanding at this point from Bob and Christian is that for tasklets (which are apparently what most people want from Stackless), the code is portable, pure C, and has no effect on code that doesn't use tasklets, except in performance.
However, rather than continue discussion on this point, it would probably be better if the people who actually understand the Stackless implementation were to write a tasklets PEP addressing what *specifically* would be the *minimum* changes to the CPython interpreter to support co-operative multitasking.
By specifically, I mean listing what core functions/objects will be changed, and how those changes will impact other code. Do any interfaces/APIs change? Is there anything that people writing new core code or extensions have to be aware of? And so on. A full statement of impact, in other words. At that point, a pronouncement could be made on the basis of those specifics, and if the answer is no, then the PEP would provide a convenient place to point people to in the future, thus avoiding further reiterations of this discussion. And, in the meanwhile, it gives you and Martin a way to tell the other folks to "PEP up or shut up". :)
Right. That PEP better explain how one writes C code that calls into Python without involving the C stack as well!
--Guido van Rossum (home page: http://www.python.org/~guido/)