Created attachment 568 [details] sc.ini, makefile, binding, screen Well, I found this bug when I was trying to make the win32lib from the binding available on Dsource.org. I'll try to explain the environment with lot of details : 1. DMD Compiler : Version 1.033, 1.056 ; 2.040, dmd2beta have been "tested". Each one returned the bug. So, the version of the compiler don't play a role to have this bug. 2. Libraries : - Standard Library : tango 0.98 and tango 0.99.9 kai have been tried too. Same result. - Others : tried with and without these ones : tangobos (latest), DFL (latest), INI (from dprogramming.com). Nothing changed the result. 3. Binding : - Win32 from DSource - the latest one from trunk version (trunk-r337) 4. Attachement : - The makefile for the binding (and the binding itself) - A screen from my dmd\lib directory - sc.ini file I'm using (there's lot of comments cause of tests I made for this bug or other things ...)
Well, I found this bug when I was trying to make the win32lib from the binding available on Dsource.org. I'll try to explain the environment with lot of details : 1. DMD Compiler : Version 1.033, 1.056 ; 2.040, dmd2beta have been "tested". Each one returned the bug. So, the version of the compiler don't play a role to have this bug. 2. Libraries : - Standard Library : tango 0.98 and tango 0.99.9 kai have been tried too. Same result. - Others : tried with and without these ones : tangobos (latest), DFL (latest), INI (from dprogramming.com). Nothing changed the result. 3. Binding : - Win32 from DSource - the latest one from trunk version (trunk-r337) 4. Attachement : - The makefile for the binding (and the binding itself) - A screen from my dmd\lib directory - sc.ini file I'm using (there's lot of comments cause of tests I made for this bug or other things ...)
This is caused by an incorrectly installed DMD (wrong phobos.lib). However, the compiler should say that, instead of failing with an assert).
The error message should be improved. I suggest something like this: toobj, line 995: if (vtblInterfaces->dim) { - if (classinfo) - assert(classinfo->structsize == CLASSINFO_SIZE); + if (classinfo && classinfo->structsize != CLASSINFO_SIZE) + error("Incorrect installation. D compiler and phobos' typeinfo are mismatched"); offset = CLASSINFO_SIZE; dtxoff(&dt, csym, offset, TYnptr); // (*)
changeset 425
Fixed DMD1.058 and 2.043.