On Aug 6, 2008, at 8:18 AM, Dag Sverre Seljebotn wrote:

> Realistically, the old [] syntax is here for the next Cython  
> release so
> I might move on to fix that bug...
>
> But here's an idea for a syntax I actually like (let's hear about  
> you)...:
>
> Somehow specify that the variable in question has TWO types. I.e., it
> supports the ndarray interface, as well as the buffer interface.
>
> So, for buffers this would becom
>
> cdef ndarray,buffer(int, 2) buf = ... # ndarray supporting buffer
>
> cdef buffer(int, 2) buf = ... # plain object supporting buffer
> cdef object,buffer(int, 2) buf = ... # same as above
>
> If it is possible with objects that inherit from two extension types
> (didn't try it) this could even be used like this:
>
> cdef MyType1,MyType2 obj = ...
>
> This would make the syntax "explain" what happens today anyway, with
> "cdef MyType1 obj" being shorthand for "cdef object,MyType1 obj". I.e.
> "first try to resolve compile-time towards MyType1, and then towards
> object".
>
> *running away and ducking* :-)

-1. 99% of the time such declarations would be either impossible or  
implied (e.g. with inheritance), and the Python way to do things like  
this in multiple inheritance (which we can't do from Cython without  
an additional virtual lookup penalty). Also, this syntax is much more  
verbose, and hard to parse (think about argument declarations, or  
"cdef a, b" declares two variables, but "cdef a, b c" declares one?

- Robert

_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to