January 27, 2007 DMD 1.004 release | ||||
---|---|---|---|---|
| ||||
Fixes mixin gc bug. http://www.digitalmars.com/d/changelog.html http://ftp.digitalmars.com/dmd.1.004.zip |
January 27, 2007 Re: DMD 1.004 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Changelog need update? |
January 27, 2007 Re: DMD 1.004 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote:
> Fixes mixin gc bug.
>
> http://www.digitalmars.com/d/changelog.html
>
> http://ftp.digitalmars.com/dmd.1.004.zip
Amazing turnaround time!
But no dice. The bug may be fixed but I can't tell because I get:
> Assertion failure: 'classinfo->structsize == CLASSINFO_SIZE' on line 316 in file 'toobj.c'
> abnormal program termination
when I try to compile.
--bb
|
January 27, 2007 Re: DMD 1.004 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bill Baxter | On Fri, 26 Jan 2007 23:58:56 -0500, Bill Baxter <dnewsgroup@billbaxter.com> wrote:
> Walter Bright wrote:
>> Fixes mixin gc bug.
>> http://www.digitalmars.com/d/changelog.html
>> http://ftp.digitalmars.com/dmd.1.004.zip
>
> Amazing turnaround time!
> But no dice. The bug may be fixed but I can't tell because I get:
>
> > Assertion failure: 'classinfo->structsize == CLASSINFO_SIZE' on line 316 in file 'toobj.c'
> > abnormal program termination
>
> when I try to compile.
>
> --bb
Yep, I tracked it down to simply this:
class MyException: Exception
{
///
this(char[] msg)
{
super(msg);
}
}
Assertion failure: 'classinfo->structsize == CLASSINFO_SIZE' on line 316 in file
'toobj.c'
|
January 27, 2007 Re: DMD 1.004 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bill Baxter | Bill Baxter wrote:
> > Assertion failure: 'classinfo->structsize == CLASSINFO_SIZE' on line 316 in file 'toobj.c'
> > abnormal program termination
>
> when I try to compile.
Oops, uploaded the wrong file. Try again.
|
January 27, 2007 Re: DMD 1.004 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote:
> Bill Baxter wrote:
>> > Assertion failure: 'classinfo->structsize == CLASSINFO_SIZE' on line 316 in file 'toobj.c'
>> > abnormal program termination
>>
>> when I try to compile.
>
> Oops, uploaded the wrong file. Try again.
Yay! All happy now.
--bb
|
January 27, 2007 Re: DMD 1.004 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bill Baxter | Bill Baxter wrote:
> Walter Bright wrote:
>> Bill Baxter wrote:
>>> > Assertion failure: 'classinfo->structsize == CLASSINFO_SIZE' on line 316 in file 'toobj.c'
>>> > abnormal program termination
>>>
>>> when I try to compile.
>>
>> Oops, uploaded the wrong file. Try again.
>
> Yay! All happy now.
I've automated much of the process of creating an update, but there's still maddening places where I can overlook something.
|
January 27, 2007 Re: DMD 1.004 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | "Walter Bright" <newshound@digitalmars.com> wrote in message news:epekud$128$1@digitaldaemon.com... > Fixes mixin gc bug. > > http://www.digitalmars.com/d/changelog.html > > http://ftp.digitalmars.com/dmd.1.004.zip Still another one mixin bug - causes dmd to crash. (dmd versions: 1.00, 1.002, 1.004) Tried to simplify it as much as I could: template Mix() { int i; } struct Z { // use unions or structs ... union { mixin Mix; } // ... both cause dmd to crash }; |
January 27, 2007 Re: DMD 1.004 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote:
> I've automated much of the process of creating an update, but there's still maddening places where I can overlook something.
Please also automate synchronization of std.compiler.version_* constants
vladimir
|
January 27, 2007 Re: DMD 1.004 release | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Here is a problem I've found in post-1.00 versions. I have this unittest in my library: unittest { char[] c = "Computer"; ArrayCopy!(char)(c, 3, c, 2, 4); assert(c == "Coputeer"); c = "Computer"; ArrayCopy!(char)(c, 2, c, 3, 4); assert(c == "Commputr"); } I have not changed the ArrayCopy function for months and when I updated from 1.00, the second assert started failing. After some work, I tracked down the problem. This line: c = "Computer"; is not doing anything. I put printf(c) right after that assignment, and it prints "Coputeer". I didn't test 1.002, but it is broken in 1.001, 1.003, and 1.004. (I love built-in unittests) The ArrayCopy function: void ArrayCopy(T)(T[] srcData, uint srcStart, T[] destData, uint destStart, uint length) { if((srcData is destData && srcStart == destStart) || length == 0) return; if(srcStart > destStart) { //copy forward for(int i = 0; i < length; ++i) destData[destStart + i] = srcData[srcStart + i]; } else { //copy reverse for(int i = length-1; i >= 0; --i) destData[destStart + i] = srcData[srcStart + i]; } } |
Copyright © 1999-2021 by the D Language Foundation