Regarding compiler switches

Lars T. Kyllingstad public at kyllingen.NOSPAMnet
Thu Nov 5 01:19:32 PST 2009


DMD has just a few switches that control how code is compiled, such as 
-safe, -release, -O and so on. In comparison, GCC has (and this is just 
a rough estimate) a gazillion switches. For the most part, DMD's simpler 
approach is a good thing, because it makes the compiler easy to use.

However, from time to time, discussions appear on this NG that indicate 
not everyone is happy with the situation. For instance, people have 
complained that it's not possible to separately turn on/off bounds 
checking and compilation of contracts.

Recently there was a discussion of whether the -safe switch should 
affect array bounds checking too. I don't think any agreement was reached.

Is there any good reason for NOT letting people choose these things for 
themselves? I suspect it would be very easy to add more detailed options 
to DMD:

   --bounds-checking=on|off
   --mem-safe=on|off
   --Oxxx=on|off|auto  (There are many possible optimisations, and the
                       compiler doesn't always know best.)
   --contracts=on|off

Note that I think it's important that -release & co. are kept, but they 
should be defined as common combinations of the more detailed options.

-Lars



More information about the Digitalmars-d mailing list