Amaury Forgeot d'Arc, 13.02.2012 22:06: > 2012/2/13 Stefan Behnel > >> Given how important Cython has become for the Python ecosystem in >> many regards, it's sad that PyPy still doesn't have it available > > Last time I looked, Cython still generates code that PyPy cannot handle: > for example, it explicitly messes with tstate->curexc_type &co, > Couldn't PyErr_Fetch() and PyErr_Restore() be used instead?
Just two general comments on this, because these internals are really off-topic for this list and much better suited for the cython-dev list. 1) These things are usually done for two reasons: sometimes for better performance (inlining!), but also because there are cases where CPython fails to match its own Python-level semantics at the C-API level (simply because no-one else but Cython actually needs them there). So we sometimes end up rewriting parts of its C-API in a way that allows us to reimplement the correct Python semantics on top of them. Also note that Python 2 and 3 behave severely different in some corners, but Cython must be able to support both behaviours regardless of which of the two C-APIs the C compiler finds at compile time. Exception handling is a particularly shining example, I can tell. 2) Given that PyPy has proper Python semantics built-in, it would be much better to reuse those and sort-of add Cython semantics to them in some way, than to try to interface with PyPy at the bare C-API level. However, note that Cython's type system is really complex. That's basically all the Cython language adds over Python: a bunch of types and a huge set of pretty smart rules to fit them together. That makes a true Cython-backend for PyPy a much more ambitious longer-term goal than a set of "quick and dirty but doesn't always work" kind of C-API hacks to improve the connection between the two. Personally, I think both are worth exploring. Stefan _______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev