DIP: Tail call optimization

Dietrich Daroch via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Wed Jul 13 08:04:43 PDT 2016


On Tuesday, 12 July 2016 at 10:46:01 UTC, Dmitry Olshansky wrote:
> On Sunday, 10 July 2016 at 05:03:46 UTC, Dietrich Daroch wrote:
>> Hi everyone (=
>>
>> I've just added a new proposal to add a new attribute to 
>> ensure TCO is applied.
>> [...]
>
> In contrast to what many folks expect, TCO is affecting program 
> semantics in a way that changes stack overflow to normal 
> execution.
>
> Therefore it's not an optimization but part of semantics, and 
> there should be a way to mark a call as a tail-call in any 
> optimization level.


Yes, it's not a tiny detail that improves performance a bit, but 
it decides wheter the built binary works or not.


Also, some people are against breakage, but having a correctly 
built binary that may surprise you with a stack overflow when 
ported is not something I would call real portability.


More information about the Digitalmars-d-announce mailing list