November 05, 2011
On 11/05/2011 10:56 AM, Dejan Lekic wrote:
> On Sat, 05 Nov 2011 14:50:09 +0000, zsxxsz wrote:
>
>>
>> I don't like Phobos design, which takes all libs in the same path
>> looking so urgly, but tango seperate libs in different path according to
>> its function using,
>> so I like tango's design.
>
> You will never satisfy both worlds (simplicity vs flexibility). Both
> Phobos and Tango have their place in the D community. It is unfortunate
> many people in the D community fails to see it. Also, it is unfortunate
> (but very easy to explain) that Tango project started as a complete
> implementation of the run-time library. We debate this for years on irc://
> irc.freenode.org/d and it never ends. I belong to the group that like the
> way Phobos does things, but unlike some people I think Tango is a
> brilliant, high-level library. I wish we had druntime when Tango project
> started, but nothing is lost, I believe Tango2 project will fit nicely on
> top of druntime, and live long and prosperous life.
>
> The reason why I also like Tango (even though I never used it in anything
> serious) is that it reminds me a lot of Java API which is robust, reach
> and intuitive. Tango IO is very similar to Java NIO...

If Tango is compatible with Phobos, then I don't mind it.  I'm not real tight on either disk space or RAM.  The prior version, however, required that Phobos be removed to install, so you could either use Tango libraries *OR* Phobos libraries.  And Tango was often broken, where Phobos usually worked.  This divided the community, and gifted us with REAMS of non-usable projects.

So I'm just a bit skittish when I hear the name "Tango" these days. (Perhaps it worked better on MSWind platforms.  But it still divided a community that was already smaller than optimal.)

November 06, 2011
> No he said he was surprised Tango reallocated without him knowing about it. If this is actually documented behavior, then that could be ok.

I think this behavoir should be changed in tango d2. if you pass a buffer then it should be used or not (if it's not big enough for any reason). but no hidden memory allocation.
November 06, 2011
>> You will never satisfy both worlds (simplicity vs flexibility). Both
>> Phobos and Tango have their place in the D community. It is unfortunate
>> many people in the D community fails to see it. Also, it is unfortunate
>> (but very easy to explain) that Tango project started as a complete
>> implementation of the run-time library. We debate this for years on
>> irc://
>> irc.freenode.org/d and it never ends.

Tango d2 should give up it's own runtime and consequently use druntime, even though this is an immense change that nearly affects everything to change.

Nobody will be able to maintain two runtime's at the same time. You'll have to be aware of so many stuff. Even if you provide a method that the user can choose between tango's runtime and druntime, you will have to mess around with duplicate declarations etc. In one module you're using tango's struct sockaddr declaration and in the other you'll try to pass it to a functions that requires druntime's struct sockaddr. the compiler will complain that you cannot pass sockaddr where sockaddr is required.

So please give up tango's runtime and make a consequent use of druntime. If someone want's to customize the behavoir of the gc for example than he should use druntime's possibilities to change it.
November 06, 2011
On 2011-11-06 12:43, mta`chrono wrote:
>>> You will never satisfy both worlds (simplicity vs flexibility). Both
>>> Phobos and Tango have their place in the D community. It is unfortunate
>>> many people in the D community fails to see it. Also, it is unfortunate
>>> (but very easy to explain) that Tango project started as a complete
>>> implementation of the run-time library. We debate this for years on
>>> irc://
>>> irc.freenode.org/d and it never ends.
>
> Tango d2 should give up it's own runtime and consequently use druntime,
> even though this is an immense change that nearly affects everything to
> change.
>
> Nobody will be able to maintain two runtime's at the same time. You'll
> have to be aware of so many stuff. Even if you provide a method that the
> user can choose between tango's runtime and druntime, you will have to
> mess around with duplicate declarations etc. In one module you're using
> tango's struct sockaddr declaration and in the other you'll try to pass
> it to a functions that requires druntime's struct sockaddr. the compiler
> will complain that you cannot pass sockaddr where sockaddr is required.
>
> So please give up tango's runtime and make a consequent use of druntime.
> If someone want's to customize the behavoir of the gc for example than
> he should use druntime's possibilities to change it.

As far as I know, the D2 port of Tango uses druntime.

-- 
/Jacob Carlborg
November 06, 2011
On 2011-11-04 20:11, Andrej Mitrovic wrote:
> On 11/4/11, Jacob Carlborg<doob@me.com>  wrote:
>> Since most functions in Phobos don't accept a buffer parameter it would
>> always need to allocate. How is that better?
>
> No he said he was surprised Tango reallocated without him knowing
> about it. If this is actually documented behavior, then that could be
> ok.

Many functions in Tango mention in the documentation if it allocates. If you know the concept of how buffers are used then you know it could allocate.

-- 
/Jacob Carlborg
December 23, 2011
Al 18/10/11 06:52, En/na SiegeLord ha escrit:
> I just wanted to get the word out about a little project me and a few other people been working on for the few past months, in case anyone feels like helping out (or just as an FYI). This project is the D2 port of the Tango framework library. You can read about it here:
> 
> https://github.com/SiegeLord/Tango-D2
> 
> We are currently a little more than half way done in terms of modules fiddled with. Currently there are 181 modules ported out of approximately 343 (give or take 20). Currently only the dmd compiler and Linux platform are supported... but obviously we want to get all the other platforms/compilers as time goes on. I'm guessing at the current rate of porting we'll be done in about half a year.
> 
> Now, the project is actually two projects in one.
> 
> The first project is a D2 port proper that tries to keep API semantics the same as the D1 original. I preside over this aspect, and you can see the rough porting guidelines in the repository. This is the 'd2port' branch in my repository.
> 
> The second project is a more ambitious effort to rewrite some aspects of Tango without preserving semantics or anything. mtachrono presides over this aspect, so you can talk to him about the motivations behind it. This is the 'master' branch in my repository.
> 
> That's all. Cheers.
> 
> -SiegeLord
> 

Hello,

I've created two tango-d2 deb packages for debian like systems.

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

The first one includes the library (both, 32 and 64 bit, so it is not arch dependent), the source modules, and the "pkg-config" configuration file for an easy compilation:

$ dmd `pkg-config --cflags --libs tango` myapp.d

It depends on dmd 2.057 and newer.

The second one includes the html documentation generated with "CandyDoc", and a shortcut to it at the system menu. Also it includes the examples.

Best regards,
-- 
Jordi Sayol



December 23, 2011
Hey,

that's cool. How did you create it? I'd like to create a .deb for my tango branch, too.

https://github.com/mtachrono/tango

- mta`chrono

December 23, 2011
Al 23/12/11 21:38, En/na mta`chrono ha escrit:
> Hey,
> 
> that's cool. How did you create it? I'd like to create a .deb for my tango branch, too.
> 
> https://github.com/mtachrono/tango
> 
> - mta`chrono
> 
> 

I manually created them with debhelper.

I'm getting errors compiling your branch with dmd 2.057

Regards,
-- 
Jordi Sayol



December 24, 2011
I'm using dmd 2.058 and `make -f posix.mak` to compile it. Can you please tell me your errors?

- mta`chrono
December 24, 2011
Al 24/12/11 01:39, En/na mta`chrono ha escrit:
> I'm using dmd 2.058 and `make -f posix.mak` to compile it. Can you please tell me your errors?
> 
> - mta`chrono
> 

$ make -f posix.mak
make MODEL=32 BUILD=release --no-print-directory -f posix.mak
dmd -c -m32 -I../druntime/import -w -d -m32 -O -release -nofloat -ofgenerated/release/32/tango/util/log/AppendSocket.o tango/util/log/AppendSocket.d
tango/net/Address.d(18): Error: module un is in file 'core/sys/posix/sys/un.d' which cannot be read
import path[0] = ../druntime/import
import path[1] = /usr/include/d/dmd/phobos
import path[2] = /usr/include/d/dmd/druntime/import
make[1]: *** [generated/release/32/tango/util/log/AppendSocket.o] Error 1
make: *** [release] Error 2

same result with:
$ make -f posix.mak MODEL=64
-- 
Jordi Sayol