Re: Tuple to tuple conversion

2010-06-08 Thread Simen kjaeraas

Lars T. Kyllingstad pub...@kyllingen.nospamnet wrote:


FWIW, I've run across the same error, while writing code that had nothing
to do with tuples.  And I've seen others complaining about it too.  It
seems to be a rather elusive bug in Phobos.


This has now been tracked down to the importing of std.typecons in two
included files.

Test case:

//
module a;
import std.typecons;
alias Tuple!( float ) foo;

//
module b;
import std.typecons;

--
Simen


Re: Tuple to tuple conversion

2010-06-08 Thread Lars T. Kyllingstad
On Tue, 08 Jun 2010 12:39:43 +0200, Simen kjaeraas wrote:

 Simen kjaeraas simen.kja...@gmail.com wrote:
 
 Lars T. Kyllingstad pub...@kyllingen.nospamnet wrote:

 FWIW, I've run across the same error, while writing code that had
 nothing
 to do with tuples.  And I've seen others complaining about it too.  It
 seems to be a rather elusive bug in Phobos.

 This has now been tracked down to the importing of std.typecons in two
 included files.

 Test case:

 //
 module a;
 import std.typecons;
 alias Tuple!( float ) foo;

 //
 module b;
 import std.typecons;
 
 Forgot to mention, this only happens with -unittest.
 http://d.puremagic.com/issues/show_bug.cgi?id=4294

That's consistent with my experiences too.  It seems to be triggered by a 
Phobos unittest.

Still, I can't reproduce it with your test case.  Which DMD version are 
you using?

-Lars


Re: Tuple to tuple conversion

2010-06-08 Thread Simen kjaeraas

Lars T. Kyllingstad pub...@kyllingen.nospamnet wrote:


I'm not sure I understand this.  Do you then import a and b into another
module to reproduce the error?  This doesn't do it for me...


As the bug report says: dmd -unittest a b

--
Simen


Re: Tuple to tuple conversion

2010-06-08 Thread Lars T. Kyllingstad
On Tue, 08 Jun 2010 12:56:04 +0200, Simen kjaeraas wrote:

 Lars T. Kyllingstad pub...@kyllingen.nospamnet wrote:
 That's consistent with my experiences too.  It seems to be triggered by
 a Phobos unittest.

 Still, I can't reproduce it with your test case.  Which DMD version are
 you using?
 
 2.045. Actually, I can't reproduce it now either. Ah, found the problem.
 dmd a b -unittest works. dmd b a -unittest does not.

Ok, now I can reproduce it too, with 2.046.  This just makes it even more 
clear that it is a DMD bug, not a Phobos one.  I've been running into a 
lot of these order-of-compilation bugs lately. :(

-Lars


Re: Tuple to tuple conversion

2010-06-08 Thread Masahiro Nakagawa
On Tue, 08 Jun 2010 19:39:43 +0900, Simen kjaeraas  
simen.kja...@gmail.com wrote:



Simen kjaeraas simen.kja...@gmail.com wrote:


Lars T. Kyllingstad pub...@kyllingen.nospamnet wrote:

FWIW, I've run across the same error, while writing code that had  
nothing

to do with tuples.  And I've seen others complaining about it too.  It
seems to be a rather elusive bug in Phobos.


This has now been tracked down to the importing of std.typecons in two
included files.

Test case:

//
module a;
import std.typecons;
alias Tuple!( float ) foo;

//
module b;
import std.typecons;


Forgot to mention, this only happens with -unittest.
http://d.puremagic.com/issues/show_bug.cgi?id=4294



Same issue?
http://d.puremagic.com/issues/show_bug.cgi?id=4003


Tuple to tuple conversion

2010-06-07 Thread Simen kjaeraas

Sounds stupid, don't it?
123456789012345678901234567890123456789012345678901234567890123456789012
Carrying in my hat my trusty foo, a std.typecons.Tuple!(float), I want
to use it as a parameter to a function taking non-tuple parameters, i.e.
a single float. foo.tupleof gives me an unwieldy conglomerate of
tuple((Tuple!(float))._field_field_0,(Tuple!(float))._0). First, I'm not
sure what all of this means, second I'm completely sure it does not mean
what I want.

foo.field seems much more close to what I want, returning a nice and
clean (float) when I ask for it. However, doing so in the context of
being a function parameter yields other problems, in the form of:

src\phobos\std\typecons.d(424): Error: static assert   
(is(Tuple!(string,float) == Tuple!(string,float))) is false
src\phobos\std\typecons.d(413):instantiated from here:  
Tuple!(string,float)

src\phobos\std\typecons.d(423):instantiated from here: slice!(1,3)
problem.d(15):3 recursive instantiations from here: Tuple!(float)

Especially interesting might be line 424, as that assert ought to be
true in most cases.

I guess what I'm asking for here is, is there a way to do what I want?

--
Simen


Re: Tuple to tuple conversion

2010-06-07 Thread Simen kjaeraas

Simen kjaeraas simen.kja...@gmail.com wrote:


I guess what I'm asking for here is, is there a way to do what I want?


Hm, it seems the problem was not where I thought it was. However, this
is getting curiouser and curiouser.

--
Simen