Forgot to ask, what if I wanted to add final/inline/whatever to the
entire class?


On Jan 7, 2010, at 11:37 AM, Neil Ludban wrote:
> On Jan 7, 2010, at 9:50 AM, Stefan Behnel wrote:
>> 
>>> @cython.nonvirtual
>>> @cython.inline
>>> cdef void small_method(self, x):
>>>   pass
>> 
>> But wouldn't '@cython.inline' still imply '@cython.nonvirtual' here?
>> 
>> The question is: what use case is there where you would want one without 
>> the other?
>> 
>> Stefan
> 
> First use case: a super-optimizing cython would look for methods
> that make many calls to inline non-final methods and generate two
> code paths depending on whether self is exactly this class.  Of
> course, inline would also be automatically detected.
> 
> Second use case: other languages use "final" as a software design
> technique (not an optimization), but that would be adding a new
> feature to Python, probably not the intended goal.
> 
> Using "final" still seems much less evil than surprising end users
> with unexpected (vs C/C++ and Python) semantics for "inline".

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

Reply via email to