If we are going to rely on a message to help people get the most performance 
from their builds, that message should be the last thing you see when you 
compile; it should stand out (make it its own message, use a different color, 
etc.); and it should tell you something like "use -d:danger for maximum 
performance" or something like that.

That being said, I agree with @Araq that perhaps by default nim should try to 
give you the maximum performance possible. However, wouldn't that mean that the 
default should be -d:danger? What is the point of making -d:release the default 
if whenever somebody gets a performance issue the first thing they will be 
advised to do is use -d:danger (and perhaps even set some C compiler flags as 
well)?

Honestly I think the fact that there are 3 modes is a little confusing and 
sends a mixed message. Many scripting language users might not know the 
difference between debug and release builds, let alone release and "danger" 
builds. IMHO we need to make it clear to them which are the use cases for 
-d:debug vs -d:release vs -d:danger.

Reply via email to