September 05, 2007
Sean Kelly schrieb:
> BLS wrote:
>> Walter Bright schrieb:
>>> Mostly bug fixes for CTFE. Added library switches at Tango's request.
>>>
>>> http://www.digitalmars.com/d/1.0/changelog.html
>>> http://ftp.digitalmars.com/dmd.1.021.zip
>>>
>>> http://www.digitalmars.com/d/changelog.html
>>> http://ftp.digitalmars.com/dmd.2.004.zip
>>
>>
>> Multiple
>>
>> Module
>>
>> static constructors/destructors allowed.
>>
>> Unfortunately I have no idea what a "multiple module constructor" is. A code snippet showing a multi. module constructor in action would help.
>> Sorry about my ignorance and thanks in advance.
> 
> I thought they were already supported, but here's an example:
> 
> 
>     module MyModule;
> 
>     static  this() { printf( "ctor A\n" ); }
>     static  this() { printf( "ctor B\n" ); }
>     static ~this() { printf( "dtor A\n" ); }
>     static ~this() { printf( "dtor B\n" ); }
> 
> 
> Sean

Hm. okay I am able to call a static ctor/dtor from an foreign module .. but the semantic association I have regarding static module constructor is different/ Something like loading one or more module at compile time, pick up  some ctor infos from module A containing A.X A.Y  and from module B containing B.C  and  init. ALL the good stuff in A and B from C. which is in your example MyModule.
However. I have no idea which advantages this feature really has.
Bjoern

September 05, 2007
BLS wrote:
> However. I have no idea which advantages this feature really has.

In a long module, you can organize the static constructor code in a way that makes sense, rather than being forced to put it all in one place. It also makes it practical to mixin code that requires static construction.
September 05, 2007
Walter Bright wrote:
> Sean Kelly wrote:
>> I thought they were already supported, but here's an example:
>>
>>
>>     module MyModule;
>>
>>     static  this() { printf( "ctor A\n" ); }
>>     static  this() { printf( "ctor B\n" ); }
>>     static ~this() { printf( "dtor A\n" ); }
>>     static ~this() { printf( "dtor B\n" ); }
> 
> They were already supported, they just didn't work :-(

Oh!  Then why not make this change to the 1.0 release as well?


Sean
September 05, 2007
On Wed, 5 Sep 2007, Walter Bright wrote:

> Mostly bug fixes for CTFE. Added library switches at Tango's request.
> 
> http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.021.zip
> 
> http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.004.zip

The "Download latest D 2.0 alpha D compiler for Win32 and x86 linux" link on http://www.digitalmars.com/d/changelog.html still points to 2.002.

Similarly, though at least labeled, the 1.0 changelog still points to 1.016, now 5 versions behind?  Now that the 1.0 code line is no longer receiving anything other than bug fixes, is there really the need to distinguish between the latest 1.0 release and some other really stable 1.0 release?

http://www.digitalmars.com/d/1.0/dcompiler.html#Win32 still lists all the 1.00 (not 1.x) mirrors.  The same with http://www.digitalmars.com/d/1.0/dcompiler.html#linux.  There's a non 1.0 scoped version of the page, http://www.digitalmars.com/d/dcompiler.html, that at first glance looks identical to the 1.0/dcompiler.html page with the same problems.

I know I've brought some of these things up at least a handfull of times in the past.. can they finally be cleaned up, pretty please?

Thanks,
Brad
September 05, 2007
Sean Kelly wrote:
> Walter Bright wrote:
>> Sean Kelly wrote:
>>> I thought they were already supported, but here's an example:
>>>
>>>
>>>     module MyModule;
>>>
>>>     static  this() { printf( "ctor A\n" ); }
>>>     static  this() { printf( "ctor B\n" ); }
>>>     static ~this() { printf( "dtor A\n" ); }
>>>     static ~this() { printf( "dtor B\n" ); }
>>
>> They were already supported, they just didn't work :-(
> 
> Oh!  Then why not make this change to the 1.0 release as well?
> 
> 
> Sean

Walter: Yes please!  Great job on the latest update, btw.  (As if you haven't heard it yet.)

-- Chris Nicholson-Sauls
September 05, 2007
Walter Bright Wrote:

> Mostly bug fixes for CTFE. Added library switches at Tango's request.
> 
> http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.021.zip
> 
> http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.2.004.zip

Wow, thanks! It was definitely worth the wait! Also, thanks for adding a few non-breaking features (multiple module static constructors/destructors) to the 1.x branch to show it's still got life, and for adding the default lib switch!
September 05, 2007
Chris Nicholson-Sauls wrote:
> Sean Kelly wrote:
>> Walter Bright wrote:
>>> Sean Kelly wrote:
>>>> I thought they were already supported, but here's an example:
>>>>
>>>>
>>>>     module MyModule;
>>>>
>>>>     static  this() { printf( "ctor A\n" ); }
>>>>     static  this() { printf( "ctor B\n" ); }
>>>>     static ~this() { printf( "dtor A\n" ); }
>>>>     static ~this() { printf( "dtor B\n" ); }
>>>
>>> They were already supported, they just didn't work :-(
>>
>> Oh!  Then why not make this change to the 1.0 release as well?
> 
> Walter: Yes please!  Great job on the latest update, btw.  (As if you haven't heard it yet.)

My mistake.  I thought this was only in the 2.0 changelog but it's in both.


Sean
September 05, 2007
Brad Roberts wrote:
> The "Download latest D 2.0 alpha D compiler for Win32 and x86 linux" link on http://www.digitalmars.com/d/changelog.html still points to 2.002.
> 
> Similarly, though at least labeled, the 1.0 changelog still points to 1.016, now 5 versions behind?  Now that the 1.0 code line is no longer receiving anything other than bug fixes, is there really the need to distinguish between the latest 1.0 release and some other really stable 1.0 release?

I think their is still a need, as there's always a risk I break something with a new release, even if it's just bug fixes.

> http://www.digitalmars.com/d/1.0/dcompiler.html#Win32 still lists all the 1.00 (not 1.x) mirrors.  The same with http://www.digitalmars.com/d/1.0/dcompiler.html#linux.  There's a non 1.0 scoped version of the page, http://www.digitalmars.com/d/dcompiler.html, that at first glance looks identical to the 1.0/dcompiler.html page with the same problems.

I'll fix it.
September 05, 2007
Sean Kelly wrote:
> Chris Nicholson-Sauls wrote:
>> Sean Kelly wrote:
>>> Walter Bright wrote:
>>>> Sean Kelly wrote:
>>>>> I thought they were already supported, but here's an example:
>>>>>
>>>>>
>>>>>     module MyModule;
>>>>>
>>>>>     static  this() { printf( "ctor A\n" ); }
>>>>>     static  this() { printf( "ctor B\n" ); }
>>>>>     static ~this() { printf( "dtor A\n" ); }
>>>>>     static ~this() { printf( "dtor B\n" ); }
>>>>
>>>> They were already supported, they just didn't work :-(
>>>
>>> Oh!  Then why not make this change to the 1.0 release as well?
>>
>> Walter: Yes please!  Great job on the latest update, btw.  (As if you haven't heard it yet.)
> 
> My mistake.  I thought this was only in the 2.0 changelog but it's in both.
> 
> 
> Sean

Pardon me while I do my happy dance.

-- Chris Nicholson-Sauls
September 06, 2007
build every program, cause:
Compile error: QuadPart is not a member  of LARGE_INTEGER

DMD 1.021, Windows XP,

I Searched the DMD directory, not find the definition of LARGE_INTEGER