Clay language

Walter Bright newshound2 at digitalmars.com
Mon Dec 27 14:34:45 PST 2010


bearophile wrote:
> The idea is to allow the code (I presume with the help of some annotations)
> to require certain optimizations (some are listed here, and they are more
> complex than replacing a*4 with
> a<<2:https://github.com/jckarter/clay/wiki/Guaranteed-optimizations ), if the
> compiler doesn't perform a specific optimization (that I presume an
> annotation asks for), a compilation error is raised, and the programmer is
> forced to change the code, removing the annotation or doing something else.
> This also means that a conforming Clay compiler must perform a certain number
> of not simple optimizations (further optimizations are accepted. So the point
> is for a specific piece of code to have a common level of optimization).


Like I said, this is meaningless wankery. There's a minimum bar of acceptability 
of the generated code for every widely used compiler, specified or not.

Do you really want to annotate code with which optimizations should be 
performed? Frankly, you and everyone else will get it wrong. Look at the 
register keyword in C - every non-trivial piece of code I've seen that tried to 
carefully annotate declarations with "register" got it wrong, which is why every 
C/C++ compiler today ignores the "register" keyword, and now the "inline" 
keyword is ignored as well.

Let the compiler implementors do their job. If they don't, file bug reports, use 
another compiler, etc. You don't specify how UPS gets a package to your door, if 
you tried you'd get it wrong; you simply expect them to do it.


More information about the Digitalmars-d mailing list