On Mon, Oct 12, 2009 at 1:21 PM, language_fan <f...@bar.com.invalid> wrote: > Mon, 12 Oct 2009 13:04:03 -0400, Jarrett Billingsley thusly wrote: > >> On Mon, Oct 12, 2009 at 10:47 AM, Don <nos...@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. >
Fuck C.