December 24, 2011
Hey Jordi,

thank you for posting your results!!! :-)

It tries to read "core.sys.posix.sys.un" which is part of druntime.

Unlike SiegeLord's branch I've removed tango's runtime and build on top of druntime. This step is inevitable in order to make tango and phobos work side by side.

The file that cannot be read on your system is definitivly there. https://github.com/D-Programming-Language/druntime/blob/master/src/core/sys/posix/sys/un.d

You just need to checkout druntime, phobos and tango and put them in some kind of following file structure.

/usr/include/d/dmd/druntime
/usr/include/d/dmd/tango
/usr/include/d/dmd/phobos

Then compile druntime, phobos and tango.


- mta`chrono
December 24, 2011
Al 24/12/11 14:20, En/na mta`chrono ha escrit:
> Hey Jordi,
> 
> thank you for posting your results!!! :-)
> 
> It tries to read "core.sys.posix.sys.un" which is part of druntime.

Yes, but it is not present on dmd.2.057.zip

> 
> Unlike SiegeLord's branch I've removed tango's runtime and build on top of druntime. This step is inevitable in order to make tango and phobos work side by side.

hmmm, SiegeLord's branch works together with phobos too.

> 
> The file that cannot be read on your system is definitivly there. https://github.com/D-Programming-Language/druntime/blob/master/src/core/sys/posix/sys/un.d
> 
> You just need to checkout druntime, phobos and tango and put them in some kind of following file structure.
> 
> /usr/include/d/dmd/druntime
> /usr/include/d/dmd/tango
> /usr/include/d/dmd/phobos
> 
> Then compile druntime, phobos and tango.
> 

After checkout, it properly compiles your branch of tango! many thanks!

Here is a link to a deb file containing your tango branch.

https://d-packages.googlecode.com/files/libtango-dev_1.99%7E2011.12.23-0_all.deb

It includes both 32 and 64-bit libraries, the modules, and the pkg-config configuration file for an easy compiling: $ dmd `pkg-config --cflags --libs tango` myapp.d

As it was compiled with dmd 2.058 and there is not deb package for this version yet, this tango deb package has no  any dmd dependency (enough just for testing).

Now I've many problems generating documentation.
$ make doc -f posix.mak
dmd -o- -version=TangoDoc -Dfdoc/html/tango/core/Array.html tango/core/Array.d
dmd -o- -version=TangoDoc -Dfdoc/html/tango/core/BitArray.html tango/core/BitArray.d
dmd -o- -version=TangoDoc -Dfdoc/html/tango/core/ByteSwap.html tango/core/ByteSwap.d
dmd -o- -version=TangoDoc -Dfdoc/html/tango/core/Exception.html tango/core/Exception.d
dmd -o- -version=TangoDoc -Dfdoc/html/tango/core/RuntimeTraits.html tango/core/RuntimeTraits.d
tango/core/RuntimeTraits.d(569): use of typedef is deprecated; use alias instead
tango/core/RuntimeTraits.d(569): use of typedef is deprecated; use alias instead
make: *** [doc/html/tango/core/RuntimeTraits.html] Error 1

Best regards,
-- 
Jordi Sayol




December 24, 2011
Al 24/12/11 14:20, En/na mta`chrono ha escrit:
> 
> Unlike SiegeLord's branch I've removed tango's runtime and build on top of druntime. This step is inevitable in order to make tango and phobos work side by side.

SiegeLord's branch do not need druntime lib to be present on the system when compiling tango-d2, and the resulting libraries can be used together with phobos.

import std.stdio;
import tango.io.Stdout;

void main()
{
  writeln("hello phobos!");
  Stdout("hello tango!").newline;
}

Properly compiles and run.
So, is it not a good idea to join forces to advance more strongly, since pursued the same goal?

Best regards,
-- 
Jordi Sayol



December 25, 2011
On Saturday, 24 December 2011 at 22:15:59 UTC, Jordi Sayol wrote:
> Al 24/12/11 14:20, En/na mta`chrono ha escrit:
>> 
>> Unlike SiegeLord's branch I've removed tango's runtime and build on top
>> of druntime. This step is inevitable in order to make tango and phobos
>> work side by side.
>
> SiegeLord's branch do not need druntime lib to be present on the system when compiling tango-d2, and the resulting libraries can be used together with phobos.
>
> import std.stdio;
> import tango.io.Stdout;
>
> void main()
> {
> writeln("hello phobos!");
> Stdout("hello tango!").newline;
> }
>
> Properly compiles and run.
> So, is it not a good idea to join forces to advance more strongly, since pursued the same goal?
>
> Best regards,

They got 2 different goals. SiegeLord wants to keep as much of original Tango as possible and make it D2-wish while mt'chrono changes Tango itself, because he thinks something is wrong-designed (or he doesn't get idea properly). tango.net.* for example. That's all, that's why there are 2 branches.

And SiegeLord's branch *IS* built on top of druntime. Extra features that Tango runtime had, are inside version blocks, so you may want use them also :) But out of box it works with druntime without any additional steps.


December 26, 2011
Al 25/12/11 18:17, En/na Damian Ziemba ha escrit:
> 
> They got 2 different goals. SiegeLord wants to keep as much of original Tango as possible and make it D2-wish while mt'chrono changes Tango itself, because he thinks something is wrong-designed (or he doesn't get idea properly). tango.net.* for example. That's all, that's why there are 2 branches.

Thanks for your comment.
Then, if mt'chrono change Tango itself, isn't a good ide to change a bit its name? as Tango2 or whatever, just to be more distinguishable from SiegeLord's branch.

> 
> And SiegeLord's branch *IS* built on top of druntime. Extra features that Tango runtime had, are inside version blocks, so you may want use them also :) But out of box it works with druntime without any additional steps.
> 

I'm sure you're right but, I just say that SiegeLord's branch do not need druntime.a library present on a Linux system to be compiled, and mt'chrono's branch yes.

Best regards,
-- 
Jordi Sayol



December 26, 2011
On 2011-12-26 15:54, Jordi Sayol wrote:
> Al 25/12/11 18:17, En/na Damian Ziemba ha escrit:
>>
>> They got 2 different goals. SiegeLord wants to keep as much of original Tango as possible and make it D2-wish while mt'chrono changes Tango itself, because he thinks something is wrong-designed (or he doesn't get idea properly). tango.net.* for example. That's all, that's why there are 2 branches.
>
> Thanks for your comment.
> Then, if mt'chrono change Tango itself, isn't a good ide to change a bit its name? as Tango2 or whatever, just to be more distinguishable from SiegeLord's branch.
>
>>
>> And SiegeLord's branch *IS* built on top of druntime. Extra features that Tango runtime had, are inside version blocks, so you may want use them also :) But out of box it works with druntime without any additional steps.
>>
>
> I'm sure you're right but, I just say that SiegeLord's branch do not need druntime.a library present on a Linux system to be compiled, and mt'chrono's branch yes.
>
> Best regards,

I got linker errors on Mac OS X when I did link with druntime.

-- 
/Jacob Carlborg
December 27, 2011
> Al 24/12/11 14:20, En/na mta`chrono ha escrit:
>>
>> Unlike SiegeLord's branch I've removed tango's runtime and build on top of druntime. This step is inevitable in order to make tango and phobos work side by side.
> 
> SiegeLord's branch do not need druntime lib to be present on the system when compiling tango-d2, and the resulting libraries can be used together with phobos.

If you start use phobos and tango more intensively, you'll ran into different problems.

Consider this: Cannot implicit convert struct timeval to struct timeval. Just because there are two definitions, one in druntime and another in tango.

Sooner or later you'll get crazy. I'm going to remove everything that's already present in druntime.

> 
> import std.stdio;
> import tango.io.Stdout;
> 
> void main()
> {
>   writeln("hello phobos!");
>   Stdout("hello tango!").newline;
> }
> 
> Properly compiles and run.
> So, is it not a good idea to join forces to advance more strongly, since pursued the same goal?
> 
> Best regards,


Okay, I've also changed a little bit of tango's original api. People might dislike this. But it's a little bit more KISS (Keep it small and simple).

tango.utils.container.more.Stack.

Why not just use

tango.container.Stack ?

December 27, 2011
Al 27/12/11 14:04, En/na mta`chrono ha escrit:
> 
> If you start use phobos and tango more intensively, you'll ran into different problems.
> 
> Consider this: Cannot implicit convert struct timeval to struct timeval. Just because there are two definitions, one in druntime and another in tango.
> 
> Sooner or later you'll get crazy. I'm going to remove everything that's already present in druntime.
> 
>>
>> import std.stdio;
>> import tango.io.Stdout;
>>
>> void main()
>> {
>>   writeln("hello phobos!");
>>   Stdout("hello tango!").newline;
>> }
>>
>> Properly compiles and run.
>> So, is it not a good idea to join forces to advance more strongly, since pursued the same goal?
>>
>> Best regards,
> 
> 
> Okay, I've also changed a little bit of tango's original api. People might dislike this. But it's a little bit more KISS (Keep it small and simple).
> 
> tango.utils.container.more.Stack.
> 
> Why not just use
> 
> tango.container.Stack ?
> 
> 

Ok, so if this "tango" will be quite different than the original one, is not a good idea to change its name? Just to make it more "clear" and less "confusing". "Tango2" is enough, I think.

-- 
Jordi Sayol
December 27, 2011
> 
> Ok, so if this "tango" will be quite different than the original one, is not a good idea to change its name? Just to make it more "clear" and less "confusing". "Tango2" is enough, I think.
> 

Yes, but phobos is called "phobos" instead of phobos2. I'll think about it ;-).
December 27, 2011
Al 27/12/11 14:41, En/na mta`chrono ha escrit:
> 
> Yes, but phobos is called "phobos" instead of phobos2. I'll think about it ;-).
> 
hmmmm, phobos for dmd2 is not a fork of phobos for dmd1 ;-)

Another thing, I got many problems generating documentation.

$ make doc -f posix.mak
...
tango/core/RuntimeTraits.d(569): use of typedef is deprecated; use alias instead
tango/core/RuntimeTraits.d(569): use of typedef is deprecated; use alias instead
...

-- 
Jordi Sayol