Python 2.0 and Stackless

Just van Rossum just at letterror.com
Sat Aug 5 04:03:33 EDT 2000


[ CC-d to python-dev from c.l.py ]

Jeremy Hylton wrote:
> It is a conservative response.  JPython is an implementation of Python,
> and compatibility between Python and JPython is important.  It's not
> required for every language feature, of course; you can't load a Java
> class file in C Python.

Jeremy, have you ever *looked* at stackless? Even though it requires
extensive patches in the eval loop, all additional semantics are nicely
hidden in an extension module. The Java argument is a *very* poor one
because of this. No, you can't load a Java class in CPython, and yes,
"import continuation" fails under JPython. So what?

> I'm not sure what you mean by distinguishing between the semantics of
> continuations and the implementation of Stackless Python.  They are
> both issues!  In the second half of my earlier message, I observed that
> we would never add continuations without a PEP detailing their exact
> semantics.  I do not believe such a specification currently exists for
> stackless Python.

That's completely unfair. Stackless has been around *much* longer than
those silly PEPs. It seems stackless isn't in the same league as, say,
"adding @ to the print statement for something that is almost as
conveniently done with a function". I mean, jeez.

> The PEP would also need to document the C interface and how it affects
> people writing extensions and doing embedded work.  Python is a glue
> language and the effects on the glue interface are also important.

The stackless API is 100% b/w compatible. There are (or could/should be)
additional calls for extension writers and embedders that would like
to take advantage of stackless features, but full compatibility is
*there*. To illustrate this: for windows as well as MacOS, there are
DLLs for stackless that you just put in the place if the original
Python core DLLs, and *everything* just works. 

Christian has done an amazing piece of work, and he's gotten much
praise from the community. I mean, if you *are* looking for a killer
feature to distinguish 1.6 from 2.0, I'd know where to look...

Just



More information about the Python-list mailing list