dmd 1.056 and 2.040 release

Yao G foo at bar.com
Sat Jan 30 08:25:47 PST 2010


Walter Bright Wrote:

> 
> http://www.digitalmars.com/d/1.0/changelog.html
> http://ftp.digitalmars.com/dmd.1.056.zip
> 
> 
> http://www.digitalmars.com/d/2.0/changelog.html
> http://ftp.digitalmars.com/dmd.2.040.zip
> 
> Thanks to the many people who contributed to this update!

Looks like this doesn't work anymore with this release (D2):

---
module Foo;

import core.runtime;
import std.c.windows.windows;

class Bar {}

extern(Windows)
int WinMain(HINSTANCE instance, HINSTANCE, LPSTR cmdLine, int cmdShow )
{
    void exceptionHandler(Throwable e) {
        throw e;
    }

    Runtime.initialize( &exceptionHandler );
    
    auto foo = new Foo();
    
    Runtime.terminate ( &exceptionHandler );

    return 0;
}
---

When I run the program it "segfaults" with the following message (when I debug it):

Unhandled Exception: EXCEPTION_ACCESS VIOLATION(0xc000005) at object._moduleCtor2.ModuleInfo

The exception is thrown from the runtime initializer. It used to work with the previous DMD version (2.039). I think that the change of ModuleInfo from class to struct somehow affected this (just speculating).

I did a wrapper for the Windows API and now none of my programs run when I use DMD 2.040. Damn, I was excited by the new @disable attribute. :(



More information about the Digitalmars-d-announce mailing list