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
