Why do shift operators undergo integral promotion?

so so at so.xn--s-fka
Tue Aug 9 15:18:50 PDT 2011


On Wed, 10 Aug 2011 00:57:17 +0300, Jonathan M Davis <jmdavisProg at gmx.com>  
wrote:

>> I see having a compiler flag is a bad idea, it would be entirely in the
>> source code.
>> It is not about having more/less compatible compilers. There is only one
>> compiler to be maintained and it is D.
>> Getting rid of such a restriction (C compatibility) would be priceless i
>> can't express, and i don't understand why it is not obvious.
>> Our problem is this very restriction. D should be called "C like (easy  
>> to
>> learn if you know C/C++) and supports C natively", not "C compatible".
>> Because if being out of date was the only thing wrong about C then  
>> someone
>> would just add some modern features and call it maybe... C++-+%?
>
> In general, it's not a problem at all. It's only relevant when the C/C++  
> code
> is valid D code. It often isn't. For the most part, the code which is  
> both
> valid C/C++ code and valid D code is valid Java code and valid C# code  
> as well
> (the primary exception that I can think of being pointers). It's stuff  
> which
> is common across C-based languages and would screw over programmers  
> pretty
> thoroughly if it changed. There are a few exceptions (such as this issue  
> with
> the shift operator) which are a problem, but for the most part, it's  
> really
> not an issue. It's trying to maintain C++'s level of compatibility with C
> where you really get into trouble. D does _not_ maintain anything even  
> close
> to that level of compatability. It just chooses to be compatible when the
> syntax is identical so that code which is ported from C or C++ doesn't
> silently break.

What you are saying just covers the language being a C like language,  
aren't we talking about the restriction and threat it pose to the language?

> D breaks compatibility all over the place. It just doesn't do it when C  
> code would be valid D code.

I am afraid this is not quite right. Wouldn't it be oxymoron when you  
reject every solution/idea using this argument? It doesn't matter if the  
idea has no merit or it was the meaning of life.


More information about the Digitalmars-d mailing list