On 02/26/2013 10:14 PM, Dicebot wrote:
On Tuesday, 26 February 2013 at 20:42:57 UTC, Timon Gehr wrote:
On 02/26/2013 06:09 PM, Dicebot wrote:
I like overall approach and think it really should be rule of a thumb
for designing D features - defining simple bullet-proof semantics and
making conclusions from it.
As opposed to syntax-based special case coverage.
...

Like it or not, that is what a compiler does.

Pardon me, how is compiler relevant here?

The DIP serves as specification for later compiler implementation. If it is not formal enough, the implementation may miss corner cases.

Languages are designed for programmers in first place, not compilers.


Even if that was considered unequivocally true, it would not render language specification unnecessary.

2) If you want to prohibit functions having an address, you need a
section explaining communication with C in details in regard to passing
function pointers.


That actually wouldn't change.

Why? Functions does not have an address according to this DIP. How will
you pass a callback to C code then, special case for "extern(C)"?

ReturnType function(ParameterTypes) is a C function pointer type in the ABI. That wouldn't change.

extern(C) int foo(int function() fun);

void main(){
    static int bar(int x){ return x+1; }
    foo(bar);          // ok
    foo((int x)=>x+2); // ok
}

Reply via email to