February 06, 2007 DMD 1.005 release | ||||
---|---|---|---|---|
| ||||
Fixes many bugs, some serious. Some new goodies. http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.1.005.zip |
February 06, 2007 Re: DMD 1.005 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright Wrote:
> Fixes many bugs, some serious.
>
> Some new goodies.
>
> http://www.digitalmars.com/d/changelog.html
>
> http://ftp.digitalmars.com/dmd.1.005.zip
Good stuff.
|
February 06, 2007 Re: DMD 1.005 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote:
> Fixes many bugs, some serious.
>
> Some new goodies.
>
> http://www.digitalmars.com/d/changelog.html
>
> http://ftp.digitalmars.com/dmd.1.005.zip
The new mixin stuff with the quotes seems a bit left of field. However I'd imagine you could write some very reusable code with the string con-concatenation stuff, although I'll bet it'll make things very hard to debug. Maybe even use the strings for some kinda meta/reflection coding. I can't wait to see some real-world examples.
-Joel
|
February 06, 2007 Re: DMD 1.005 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote: > Fixes many bugs, some serious. > > Some new goodies. > > http://www.digitalmars.com/d/changelog.html > > http://ftp.digitalmars.com/dmd.1.005.zip Mwahaha! This program, when run, prints out a copy of its own source. It also has some completely gratuitous new-style mixins. // file test.d mixin(`import std.stdio : writefln;`); mixin(`void main() { mixin("writefln(import(\"test.d\"));"); }`); -- Kirk McDonald Pyd: Wrapping Python with D http://pyd.dsource.org |
February 06, 2007 Re: DMD 1.005 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote:
> Fixes many bugs, some serious.
>
> Some new goodies.
>
> http://www.digitalmars.com/d/changelog.html
>
> http://ftp.digitalmars.com/dmd.1.005.zip
You fixed all the bugs I've added in recent memory. Plus, if I understand correctly, the implications of some of these features is
staggering...
It looks like one could write a few hundred line module that can pull in and do compile-time interpreting of a language of the complexity of say, Scheme. And the code in the module could be both readable and straightforward... And the results would be absorbed into the calling code as normal optimizable statements...
"I warn you, Doctor -- man was not meant to have this kind of power!"
Kevin
|
February 06, 2007 Re: DMD 1.005 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kevin Bealer | Kevin Bealer wrote:
> Walter Bright wrote:
>> Fixes many bugs, some serious.
>>
>> Some new goodies.
>>
>> http://www.digitalmars.com/d/changelog.html
>>
>> http://ftp.digitalmars.com/dmd.1.005.zip
>
> You fixed all the bugs I've added in recent memory. Plus, if I understand correctly, the implications of some of these features is
> staggering...
>
> It looks like one could write a few hundred line module that can pull in and do compile-time interpreting of a language of the complexity of say, Scheme. And the code in the module could be both readable and straightforward... And the results would be absorbed into the calling code as normal optimizable statements...
>
> "I warn you, Doctor -- man was not meant to have this kind of power!"
>
> Kevin
My thoughts exactly.
And it only warrants a version number increase of 0.001 ??? <g>
|
February 06, 2007 Re: DMD 1.005 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kevin Bealer | Kevin Bealer wrote:
> You fixed all the bugs I've added in recent memory. Plus, if I understand correctly, the implications of some of these features is
> staggering...
>
> It looks like one could write a few hundred line module that can pull in and do compile-time interpreting of a language of the complexity of say, Scheme. And the code in the module could be both readable and straightforward... And the results would be absorbed into the calling code as normal optimizable statements...
The irony is that it only took 3 hours to implement, which shows the power of having the lexing, parsing, and semantic passes be logically distinct.
The idea is to enable the creation of DSLs (Domain Specific Languages) that don't have the crippling problem C++ expression templates have - that of being stuck with C++ operators and precedence.
To make this work, however, one must be able to manipulate strings at compile time. I've made a start on a library to do this, std.metastrings, based on earlier work by Don Clugston and Eric Anderton.
This is just the start of what's going to happen with D 2.0.
|
February 06, 2007 Re: DMD 1.005 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote:
> Fixes many bugs, some serious.
>
> Some new goodies.
>
> http://www.digitalmars.com/d/changelog.html
>
> http://ftp.digitalmars.com/dmd.1.005.zip
!!!! This is just what I needed for a compile-time .rc compiler!
L.
|
February 06, 2007 Re: DMD 1.005 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote: > Fixes many bugs, some serious. > > Some new goodies. > > http://www.digitalmars.com/d/changelog.html > > http://ftp.digitalmars.com/dmd.1.005.zip Sounds like some nice new features, but even though the compiler seems to know that these new features are D 2.0, the spec don't show it. I'd suggest to branch the specification now, after all 1.0 shouldn't see any new feature changes. Without this, there is no point in the 1.0 marker whatsoever. -- Lars Ivar Igesund blog at http://larsivi.net DSource & #D: larsivi Dancing the Tango |
February 06, 2007 Re: DMD 1.005 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | > The idea is to enable the creation of DSLs (Domain Specific Languages) that don't have the crippling problem C++ expression templates have - that of being stuck with C++ operators and precedence. Not only that. This opens clean and simple way to use pre-compile-time code generation. For example: // greeting.d: import std.stdio; class Greeting { mixin( import( "greeting.impl.d" ) ); } void main() { auto g = new Greeting; g.hello(); g.bye(); } // greeting.impl.d: void hello() { writefln( "Hello!" ); } void bye() { writefln( "Bye!" ); } Where the content of greeting.impl.d can be generated by some domain-specific tool (such as ASN.1 serializator/deserializator generators). It's a very good news! Thanks! -- Regards, Yauheni Akhotnikau |
Copyright © 1999-2021 by the D Language Foundation