www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Predefined 'release' version?

reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
I just discovered to my dismay that dmd does not define version=release
when compiling in -release mode. What's the reason for this?

I have some code that uses ctRegex, which slows down compilation
significantly due to heavy amounts of CTFE, but which speeds up the
final executable. I'd like to version this code and use regular regex()
for non-release builds, and switch to ctRegex for release builds. Yes I
can just pass in a version on the commandline, but it'd be nice if it
could be triggered automatically by -release.


T

-- 
Computerese Irregular Verb Conjugation: I have preferences.  You have biases. 
He/She has prejudices. -- Gene Wirchenko
Apr 20 2012
parent reply "Bernard Helyer" <b.helyer gmail.com> writes:
On Friday, 20 April 2012 at 15:26:24 UTC, H. S. Teoh wrote:
 I just discovered to my dismay that dmd does not define 
 version=release
 when compiling in -release mode. What's the reason for this?

 I have some code that uses ctRegex, which slows down compilation
 significantly due to heavy amounts of CTFE, but which speeds up 
 the
 final executable. I'd like to version this code and use regular 
 regex()
 for non-release builds, and switch to ctRegex for release 
 builds. Yes I
 can just pass in a version on the commandline, but it'd be nice 
 if it
 could be triggered automatically by -release.


 T
debug { // blah } else { // fast blah }
Apr 20 2012
parent reply =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
On 04/20/2012 10:24 AM, Bernard Helyer wrote:
 On Friday, 20 April 2012 at 15:26:24 UTC, H. S. Teoh wrote:
 I just discovered to my dismay that dmd does not define version=release
 when compiling in -release mode. What's the reason for this?

 I have some code that uses ctRegex, which slows down compilation
 significantly due to heavy amounts of CTFE, but which speeds up the
 final executable. I'd like to version this code and use regular regex()
 for non-release builds, and switch to ctRegex for release builds. Yes I
 can just pass in a version on the commandline, but it'd be nice if it
 could be triggered automatically by -release.


 T
debug { // blah } else { // fast blah }
debug blocks are activated when -debug switch is explicitly specified, not when -release is not specified. :) Ali
Apr 20 2012
parent reply "Xinok" <xinok live.com> writes:
On Friday, 20 April 2012 at 17:43:49 UTC, Ali Çehreli wrote:
 On 04/20/2012 10:24 AM, Bernard Helyer wrote:
 On Friday, 20 April 2012 at 15:26:24 UTC, H. S. Teoh wrote:
 I just discovered to my dismay that dmd does not define 
 version=release
 when compiling in -release mode. What's the reason for this?

 I have some code that uses ctRegex, which slows down 
 compilation
 significantly due to heavy amounts of CTFE, but which speeds 
 up the
 final executable. I'd like to version this code and use 
 regular regex()
 for non-release builds, and switch to ctRegex for release 
 builds. Yes I
 can just pass in a version on the commandline, but it'd be 
 nice if it
 could be triggered automatically by -release.


 T
debug { // blah } else { // fast blah }
debug blocks are activated when -debug switch is explicitly specified, not when -release is not specified. :) Ali
The code in "else" will be used in release builds.
Apr 20 2012
parent reply =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
On 04/20/2012 11:14 AM, Xinok wrote:
 On Friday, 20 April 2012 at 17:43:49 UTC, Ali Çehreli wrote:
 On 04/20/2012 10:24 AM, Bernard Helyer wrote:
 On Friday, 20 April 2012 at 15:26:24 UTC, H. S. Teoh wrote:
 I just discovered to my dismay that dmd does not define version=release
 when compiling in -release mode. What's the reason for this?

 I have some code that uses ctRegex, which slows down compilation
 significantly due to heavy amounts of CTFE, but which speeds up the
 final executable. I'd like to version this code and use regular regex()
 for non-release builds, and switch to ctRegex for release builds. Yes I
 can just pass in a version on the commandline, but it'd be nice if it
 could be triggered automatically by -release.


 T
debug { // blah } else { // fast blah }
debug blocks are activated when -debug switch is explicitly specified, not when -release is not specified. :) Ali
The code in "else" will be used in release builds.
Define "release build". :) Despite appearances -debug and -release are othogonal. debug blocks are activated by the -debug switch. -release is unrelated to -debug. You can use both switches: http://dlang.org/dmd-linux.html Ali
Apr 20 2012
parent "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Friday, April 20, 2012 11:26:47 Ali Çehreli wrote:
 Define "release build". :) Despite appearances -debug and -release are
 othogonal.
 
 debug blocks are activated by the -debug switch. -release is unrelated
 to -debug. You can use both switches:
 
 http://dlang.org/dmd-linux.html
That's why I always try and avoid the term "debug build." I always talk about release and non-release or -release and non -release. I don't know what would be better name than debug (for the block statements) and -debug, but when combined with the typical terminology of release build vs debug build, it becomes very confusing. - Jonathan M Davis
Apr 20 2012