On Monday, 11 July 2016 at 16:27:38 UTC, Andrew Godfrey wrote:

* It must not be ignorable by the compiler.

* It must generate an error if that compiler would be unable to do the TCO. Otherwise, the compiler *may* (not "must") apply the TCO, unless compiled under (some optimization level, please specify), in which case it *must* apply TCO.

One difficulty with this is the words "that compiler". I.e. other compilers are free to be unable to make the TCO. This means that by using this feature, you have made your code non-portable.

I think that noticing problems while porting it it's better than having it crash unexpectedly as it would currently happen.

P.S. You have proposed annotating the function with @tco - it seems more like it's the call site that needs to be annotated.

I'm not sure about how to do annotations on the call site. Would a new keyword be required?

Reply via email to