Thread overview
Predefined 'release' version?
Apr 20, 2012
H. S. Teoh
Apr 20, 2012
Bernard Helyer
Apr 20, 2012
Ali Çehreli
Apr 20, 2012
Xinok
Apr 20, 2012
Ali Çehreli
Apr 20, 2012
Jonathan M Davis
April 20, 2012
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
April 20, 2012
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
}

April 20, 2012
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
April 20, 2012
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.
April 20, 2012
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
April 20, 2012
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