Thread overview
Quines
Jul 01, 2006
BCS
Jul 10, 2006
Stewart Gordon
Jul 10, 2006
Lutger
Jul 10, 2006
kris
Jul 11, 2006
Don Clugston
Jul 11, 2006
Don Clugston
Jul 11, 2006
Dave
Jul 12, 2006
Lutger
July 01, 2006
@run time

void main(){printf(a~\140~a~\140";");}char[]a=`void main(){printf(a~\140~a~\140";");}char[]a=`;

@compile time   =op

const char[]a=`const char[]a=`;const char[]b=`;const char[]`;const char[]c=`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);
July 10, 2006
BCS wrote:
> @run time
> 
> void main(){printf(a~\140~a~\140";");}char[]a=`void main(){printf(a~\140~a~\140";");}char[]a=`;

http://smjg.port5.com/wwwep/quines/d.html

Somewhere I've got one similar to the last of these but using writef.

> @compile time   =op
> 
> const char[]a=`const char[]a=`;const char[]b=`;const char[]`;const char[]c=`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c); 

Writing code to do stuff at compile time like this is an interesting idea.  I've seen the C preprocessor used for this:

http://www.99-bottles-of-beer.net/language-c-c++-preprocessor-115.html

Stewart.
July 10, 2006
Cool.
Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d
from Don Clugston's meta library. No need for a preprocessor...

In article <e8to1l$180u$1@digitaldaemon.com>, Stewart Gordon says...
>
>BCS wrote:
>> @run time
>> 
>> void main(){printf(a~\140~a~\140";");}char[]a=`void main(){printf(a~\140~a~\140";");}char[]a=`;
>
>http://smjg.port5.com/wwwep/quines/d.html
>
>Somewhere I've got one similar to the last of these but using writef.
>
>> @compile time   =op
>> 
>> const char[]a=`const char[]a=`;const char[]b=`;const char[]`;const char[]c=`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);
>
>Writing code to do stuff at compile time like this is an interesting idea.  I've seen the C preprocessor used for this:
>
>http://www.99-bottles-of-beer.net/language-c-c++-preprocessor-115.html
>
>Stewart.


July 10, 2006
Lutger wrote:
> Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d
> from Don Clugston's meta library. No need for a preprocessor...
> 
> In article <e8to1l$180u$1@digitaldaemon.com>, Stewart Gordon says...
> 
>>BCS wrote:
>>
>>>@run time
>>>
>>>void main(){printf(a~\140~a~\140";");}char[]a=`void main(){printf(a~\140~a~\140";");}char[]a=`;
>>
>>http://smjg.port5.com/wwwep/quines/d.html
>>
>>Somewhere I've got one similar to the last of these but using writef.
>>
>>
>>>@compile time   =op
>>>
>>>const char[]a=`const char[]a=`;const char[]b=`;const char[]`;const char[]c=`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c); 
>>
>>Writing code to do stuff at compile time like this is an interesting idea.  I've seen the C preprocessor used for this:
>>
>>http://www.99-bottles-of-beer.net/language-c-c++-preprocessor-115.html
>>
>>Stewart.
> 
> 
> 


LOL - Don is The Man :D
July 11, 2006
Lutger wrote:
> Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d
> from Don Clugston's meta library. No need for a preprocessor...

You just inspired me to update it to DMD 0.162. It's very simple now, all the workarounds are gone. It's probably worth submitting to 99-bottles-of-beer.net now.
And yes, D templates seem to be even more powerful than the combination of C preprocessor + C++ templates.

-Don.

> 
> In article <e8to1l$180u$1@digitaldaemon.com>, Stewart Gordon says...
>> BCS wrote:
>>> @run time
>>>
>>> void main(){printf(a~\140~a~\140";");}char[]a=`void main(){printf(a~\140~a~\140";");}char[]a=`;
>> http://smjg.port5.com/wwwep/quines/d.html
>>
>> Somewhere I've got one similar to the last of these but using writef.
>>
>>> @compile time   =op
>>>
>>> const char[]a=`const char[]a=`;const char[]b=`;const char[]`;const char[]c=`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c);`;pragma(msg,a~\140~a~\140~b~"b=\140"~b~\140~b~"c=\140"~c~\140~c); 
>> Writing code to do stuff at compile time like this is an interesting idea.  I've seen the C preprocessor used for this:
>>
>> http://www.99-bottles-of-beer.net/language-c-c++-preprocessor-115.html
>>
>> Stewart.
> 
> 
July 11, 2006
Don Clugston wrote:
> Lutger wrote:
>> Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d
>> from Don Clugston's meta library. No need for a preprocessor...
> 
> You just inspired me to update it to DMD 0.162. It's very simple now, all the workarounds are gone. It's probably worth submitting to 99-bottles-of-beer.net now.
> And yes, D templates seem to be even more powerful than the combination of C preprocessor + C++ templates.
> 
> -Don.

I just submitted it.
July 11, 2006
Don Clugston wrote:
> Don Clugston wrote:
>> Lutger wrote:
>>> Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d
>>> from Don Clugston's meta library. No need for a preprocessor...
>>
>> You just inspired me to update it to DMD 0.162. It's very simple now, all the workarounds are gone. It's probably worth submitting to 99-bottles-of-beer.net now.
>> And yes, D templates seem to be even more powerful than the combination of C preprocessor + C++ templates.
>>
>> -Don.
> 
> I just submitted it.

Very cool!
July 12, 2006
In article <e9107c$84j$1@digitaldaemon.com>, Don Clugston says...
>
>Don Clugston wrote:
>> Lutger wrote:
>>> Cool. Try compiling http://www.dsource.org/projects/ddl/browser/trunk/meta/demo/beer.d from Don Clugston's meta library. No need for a preprocessor...
>> 
>> You just inspired me to update it to DMD 0.162. It's very simple now,
>> all the workarounds are gone. It's probably worth submitting to
>> 99-bottles-of-beer.net now.
>> And yes, D templates seem to be even more powerful than the combination
>> of C preprocessor + C++ templates.
>> 
>> -Don.
>
>I just submitted it.

Awesome. Although if I look at the top 3 of the site I'm not sure if it would speak for D to end up there, that is some painful code!