August 24, 2001
I was reading the D specification. And is a very good job. But just my 2c :

From specification :

DebugStatement:
debug Statement
debug ( Integer ) Statement
debug ( Identifier ) Statement

int k;
debug
{   int i;
    int k;// error, k already defined     i = 3;
}
x = i;// uses the i declared above

and from a previous post :

This would eliminate the #define brackets:
asm(x86) {
}
asm(ppc) {
}
asm(sparc) {
}

or simply

AsmStatement:
asm Statement
asm ( Integer ) Statement
asm ( Identifier ) Statement

But if you generalize :

ConditionalStatement:
Statement Identifier ;

then can I use the Conditional Statement as like variable

E.g: Statement VersionType;

VersionType ( Light ) {
	....
}
Question :
This will replace the #ifdef in a generic and good form ?
This is easy and fast for language ?
And the #ifndef ?
This make sense ?


August 26, 2001
Juarez Rudsatz wrote:
> 
> I was reading the D specification. And is a very good job. But just my 2c :
> 
> From specification :
> 
> DebugStatement:
> debug Statement
> debug ( Integer ) Statement
> debug ( Identifier ) Statement
> 
> int k;
> debug
> {   int i;
>     int k;// error, k already defined     i = 3;
> }
> x = i;// uses the i declared above
> 
> and from a previous post :
> 
> This would eliminate the #define brackets:
> asm(x86) {
> }
> asm(ppc) {
> }
> asm(sparc) {
> }
> 
> or simply
> 
> AsmStatement:
> asm Statement
> asm ( Integer ) Statement
> asm ( Identifier ) Statement
> 
> But if you generalize :
> 
> ConditionalStatement:
> Statement Identifier ;
> 
> then can I use the Conditional Statement as like variable
> 
> E.g:
> Statement VersionType;
> 
> VersionType ( Light ) {
>         ....
> }
> Question :
> This will replace the #ifdef in a generic and good form ?
> This is easy and fast for language ?
> And the #ifndef ?
> This make sense ?

	It makes sense.  It's better than nothing.  Considering all the
interesting thing that can be done with the configure scripts in most
open source programs, I find it really hard to imagine that this will be
possible without some form of conditional compiling.  Worse yet, people
will probably just abuse debug(<identifier>) to get this functionality.

Dan