Array literals' default type

Ary Borenszweig ary at esperanto.org.ar
Mon Oct 12 12:36:07 PDT 2009


language_fan wrote:
> Mon, 12 Oct 2009 13:04:03 -0400, Jarrett Billingsley thusly wrote:
> 
>> On Mon, Oct 12, 2009 at 10:47 AM, Don <nospam at nospam.com> wrote:
>>
>>>> Wasn't the comma operator to be supposed to be important for automatic
>>>> code generation?
>>> It's used frequently in in the compiler internals. EG, given
>>>
>>> int foo(X x = default_value) { return 0; } then foo(); becomes:   (X
>>> tmp = default_value, foo(tmp));
>> There doesn't need to be any *syntactic* reservation for something
>> that's used internally by the compiler. I mean, we don't have to
>> explicitly mark which brace blocks introduce scopes, but ScopeStatements
>> are alive and well inside the compiler. CommaExp could just become
>> "SequenceExp" or something and it would have the exact same effect. I
>> really don't think there will be a lot of moaning if comma expressions
>> disappeared. And yes, for loop increments can be special-cased, geez..
> 
> But it breaks the holy C compatibility. When a C veteran with 40+ years 
> of C development experience under their belt studies D by porting a 1 
> MLOC library to D 2.0, his code will fail as the precious old comma does 
> not compute sequencing, but instead will produce a nasty compile error. 
> Porting the code in a single go will not be possible anymore and reddit 
> commentators will literally crush D.

What is it with C compatibility? Can't you link C functions and you are 
done? What's the compulsive need to port everything written in C or C++ 
to D?



More information about the Digitalmars-d mailing list