Software Assurance Reference Dataset

bearophile via Digitalmars-d digitalmars-d at puremagic.com
Sat Jul 19 23:24:48 PDT 2014


> Andrew Godfrey:
>
>> 1) A function annotation that means "I will call myself
>> recursively, and when I do, I expect the tail recursion
>> optimization." I have seen code which allocates something big 
>> on
>> the stack and depends on the optimization. So this intent 
>> should
>> be expressible.
>
> A @tailrec annotation seems good, and will improve the 
> functional usages of D. It should stop compilation with a error 
> if the function doesn't call itself or if the compiler is not 
> able to remove the recursive call. This means it has to be 
> fully enforced.

Perhaps a @cps (or @continuation) annotation is better and more 
general.

Bye,
bearophile


More information about the Digitalmars-d mailing list