[Python-3000] how about switching to a preprocessor? (Re: A better way to initialize PyTypeObject)

Mike Klaas mike.klaas at gmail.com
Sun Dec 3 00:09:35 CET 2006


On 12/2/06, Fredrik Lundh <fredrik at pythonware.com> wrote:

> > Regardless, one could take a Pyrex bent on this and having Python-like
> > method declarations but have C as the code body::
>
> (some days, I wonder if we shouldn't just include Pyrex and tell every-
> one to use that for *all* their extension work.  Greg?  how much work
> would it be to equip Pyrex with a "retargetable" backend?)

+1.  Pyrex makes extension writing significantly less painful.
Perhaps the right path would be to add a mode that de-emphasized the
python-compatability aspect of pyrex (automatic python <-> c
conversion points), and added support for some of the things necessary
in c but currently difficult in pyrex (like calling the initialization
macro of a PyCObject).  Add string, list, sequence, dict types, and a
few restrictions (like on overriding built-ins) and you're close to
something that can generate idiomatic c.

Reducing the pyrex magic and adding more detailed errors to the code
generator should eliminate much of the "code-peering" that is
currently necessary (at least, by me) when writing extensions.

regards,
-MIke


More information about the Python-3000 mailing list