[Cython] Patch ready
Stefan Behnel
stefan_ml at behnel.de
Sun Mar 9 13:46:47 CET 2008
Hi,
Dag Sverre Seljebotn wrote:
>> Speaking specifically of XSLT, in your framework it would be possible
>> to write a Transform that dumps out the tree as XML (like your
>> printer, but fancier), runs some XSLT on it, then reads it back in.
>> Most of my personal experience with XML has been unimpressive (usually
>> 'cause it's way to bloated of a tool than needed for the task at hand,
>> and slow).
>
> True. But working a little on making transforms easy to write one might
> find some middle ground, rough example:
>
> class CoercionTransform(TemplateMatchTransform):
> match=lambda x: isinstance(x, AssignmentNode) and x.lhs.type != x.rhs.type
> def coerce_equals_assignment(node):
> other_usages_of_lhs = self.lookup_functionwide(lambda x: x.name ==
> node.lhs.name)
> ....
> coerce_equals_assignment = make_template(coerce_equals_assignment, match)
I would prefer a domain specific language for node selection here. Something
like XPath, but it would do pattern matching against the AST of Cython to see
which optimisations can be applied.
As a starting point, here is a very simple XPath-like language:
http://codespeak.net/svn/lxml/trunk/src/lxml/_elementpath.py
> (Dropping 2.3 support would make this nicer.)
I think that should still be avoided for now, although C code compatibility
with Python 2.3 is more important than having the compiler itself run under Py2.3.
Stefan
More information about the Cython-dev
mailing list