String lambdas

deadalnix via Digitalmars-d digitalmars-d at puremagic.com
Wed Apr 27 17:14:41 PDT 2016


On Wednesday, 27 April 2016 at 17:04:47 UTC, Andrei Alexandrescu 
wrote:
> Yes, you get it exactly right. I think a DIP would be warranted 
> here to clarify how lambda equivalence is computed. Could you 
> please draft one? -- Andrei

More generally, it is not clear what is allowed to do for merging 
functions. In C/C++ it is assumed that different function MUST 
have different identities. Namely, if foo and bar MUST have a 
different address.

It means that, even if foo and bar have the same body, you can't 
merge them. Compiler can, however, emit a branch to foo's body 
into bar or vice versa and it is alright.

This is a problem for us if we want to merge templates. I think 
we should abolish this in D, to unlock more merging.


More information about the Digitalmars-d mailing list