version(noboundscheck) + friends
    Jonathan M Davis 
    jmdavisProg at gmx.com
       
    Mon Jun  3 16:29:09 PDT 2013
    
    
  
On Monday, June 03, 2013 15:19:22 Ali Çehreli wrote:
>  > B)
>  > Why aren't we using version=noboundscheck (+ friends) instead of
>  > -noboundscheck?
> 
> Because the runtime is not written in D. :) However, it should be easy
> to translate version=noboundscheck to -noboundscheck.
The runtime _is_ written in D. It's the compiler that isn't, and the compiler 
itself generates different code based on noboundscheck. But the version 
D_NoBoundsChecks is new (it might even be new with this release - certainly at 
most it's a release or two old). We've had the noboundscheck flag far, far 
longer than that. The same goes for the assert version. It was only added very 
recently, but we've always had assertions.
Also, if you'll notice, version is _never_ used to control anything that the 
compiler itself does. It affects code that you write, because of what you've 
done with version blocks, but the compiler itself doesn't change what it does 
due to the version flag save for which version blocks do or don't get compiled 
in. Compiler flags are used to control the compiler, not version identifiers. 
All of the standard identifiers are for user code to be able to react to what 
version of the compiler you're using, what system you're on, and what 
compilation flags you used. The only ones that get set by the user are user-
defined versions.
- Jonathan M Davis
    
    
More information about the Digitalmars-d-learn
mailing list