www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - I just found dustmite...

reply "ed" <growlercab gmail.com> writes:
I've only now got the chance to try 2.065 beta and I have to say 
it's very good. All code breakages I've encountered so far are 
valid; real bugs missed in 2.064.

I was compiling msgpack with dmd2065 and it failed in unittests:
(https://github.com/msgpack/msgpack-d/tree/master/src)

msgpack.d(1099): Error: declaration 
msgpack.msgpack.__unittestL1044_2.tests is already defined in 
another scope in __unittestL1044_2
msgpack.d(1139): Error: declaration 
msgpack.msgpack.__unittestL1044_2.tests is already defined in 
another scope in __unittestL1044_2
msgpack.d(1247): Error: declaration 
msgpack.msgpack.__unittestL1044_2.tests is already defined in 
another scope in __unittestL1044_2

At first I thought regression, then I realised what the error was 
and knew I'd seen this problem caught building apps with 2.064. 
So I thought I give dustmite a go to reduce the code down to 
something managable...it produced this lovely little snippet:

unittest
{
{ // uint *
static UTest[]tests ;

}
static STest[]tests ;

}

 From this it was trivial to investigate using each DMD version 
and variants of the code, placing the bug in a function not a 
unittest etc.

It turns out 2.064 didn't pick up the error at all, the linker 
did.

Cheers,
ed
Jan 31 2014
parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/1/14, ed <growlercab gmail.com> wrote:
 I was compiling msgpack with dmd2065 and it failed in unittests:
 (https://github.com/msgpack/msgpack-d/tree/master/src)

Yeah, this bug was filed recently: https://github.com/msgpack/msgpack-d/issues/28
Jan 31 2014