Re: Massive linker error after upgrade to DMD 2.068.1-1

2015-09-15 Thread rcorre via Digitalmars-d-learn
On Sunday, 13 September 2015 at 00:21:22 UTC, Nicholas Wilson 
wrote:


there was talk of adding symbol name compression some time ago 
( to reduce lib size ( and maybe make ddemangle not fail on 
long syms?). This might be the cause of your problems i.e. the 
new compiler emitting references to compressed names but built 
with the old compiler using the not compressed ones. Try 
rebuilding everything and see if that fixes it.


I tried deleting ~/.dub and the .dub folder in every referenced 
project and rebuilding, but unfortunately no luck.


Massive linker error after upgrade to DMD 2.068.1-1

2015-09-12 Thread rcorre via Digitalmars-d-learn
After upgrading from DMD 2.068.0-1 to DMD 2.068.1-1, my project 
began producing a large linker error (when built using dub).


I was able to trace it down to a single line:

target = target.adjacent(Diagonals.yes).randomSample(1).front;

target is of type RowCol 
(https://github.com/rcorre/dtiled/blob/master/src/dtiled/coords.d#L36),
which has an `adjacent` property that leverages chain, only, and 
take.


When I comment this line out (or build on a system with DMD 
2.068.0-1), I can build fine. When uncommented, I see (post 
ddemangle):


http://dpaste.com/1PJB35V

I've tried to break this down into a reduced example to prove 
that I can call randomSample on the range returned by 
RowCol.adjacent (http://dpaste.com/13G9WDE). This runs fine, so 
it seems to be a deeper issue with my build environment (full 
project at https://github.com/rcorre/damage_control if you're 
curious).


I don't want to turn this into "please debug my project for me", 
but do people have general hints on how to track down issues like 
this?


Thanks!

Side note: I see src/transition.d in the output, but I don't see 
how it is relevant to the error (it isn't even imported by the 
file causing the error).


Re: Massive linker error after upgrade to DMD 2.068.1-1

2015-09-12 Thread Nicholas Wilson via Digitalmars-d-learn

On Saturday, 12 September 2015 at 20:05:28 UTC, rcorre wrote:
After upgrading from DMD 2.068.0-1 to DMD 2.068.1-1, my project 
began producing a large linker error (when built using dub).


I was able to trace it down to a single line:

target = target.adjacent(Diagonals.yes).randomSample(1).front;

target is of type RowCol 
(https://github.com/rcorre/dtiled/blob/master/src/dtiled/coords.d#L36),
which has an `adjacent` property that leverages chain, only, 
and take.


When I comment this line out (or build on a system with DMD 
2.068.0-1), I can build fine. When uncommented, I see (post 
ddemangle):


http://dpaste.com/1PJB35V

I've tried to break this down into a reduced example to prove 
that I can call randomSample on the range returned by 
RowCol.adjacent (http://dpaste.com/13G9WDE). This runs fine, so 
it seems to be a deeper issue with my build environment (full 
project at https://github.com/rcorre/damage_control if you're 
curious).


I don't want to turn this into "please debug my project for 
me", but do people have general hints on how to track down 
issues like this?


Thanks!

Side note: I see src/transition.d in the output, but I don't 
see how it is relevant to the error (it isn't even imported by 
the file causing the error).


there was talk of adding symbol name compression some time ago ( 
to reduce lib size ( and maybe make ddemangle not fail on long 
syms?). This might be the cause of your problems i.e. the new 
compiler emitting references to compressed names but built with 
the old compiler using the not compressed ones. Try rebuilding 
everything and see if that fixes it.