View mode: basic / threaded / horizontal-split · Log in · Help
April 20, 2012
Predefined 'release' version?
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
Re: Predefined 'release' version?
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
Re: Predefined 'release' version?
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
Re: Predefined 'release' version?
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
Re: Predefined 'release' version?
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
Re: Predefined 'release' version?
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
Top | Discussion index | About this forum | D home