November 03, 2011
On 11/3/11 9:28 AM, Denis Shelomovskij wrote:
> Tango often asks you a buffer (e.g. at tango.text.Unicode,
> tango.text.convert.Utf) that is not needed in a language with GC. But it
> isn't a main problem.

It's not a bug, it's a featureā€¦ ;)

David
November 03, 2011
Am 03.11.2011, 00:46 Uhr, schrieb mta`chrono <chrono@mta-international.net>:

>> Yesterday I managed to compile all ported modules on Windows.
>> So it looks like Tango for D2 should work on Linux and Windows right now.
>
> SiegeLord has created a master branch. I've deleted tango.stdc and parts
> of tango.sys in my fork. At first, a thousands of errors arose but I
> could fix them by using druntime instead. We need to do similar for windows.

So how far along is this project actually?


> Yes, Tango for D2 should make use of druntime and deimos.
Deimos?? Isn't that dead?
November 03, 2011
On 11/3/11, Denis Shelomovskij <verylonglogin.reg@gmail.com> wrote:
> * the worst case, if you provide a large enough buffer, you are (I was) completely sure Tango will use it (you want to do a manual memory management by some reason), *but* it will reallocate a new one from GC if it just don't like yours
>

That sounds really weird. So it takes your array buffer as a ref argument and resizes it / reallocates it if it's not big enough? I've never used Tango so I don't quite understand how it works. If I pass a static array or its slice of it, it can't do much except maybe throw an exception if it's not big enough. Hidden memory allocations are superbad!
November 03, 2011
On 11/03/2011 02:55 PM, Trass3r wrote:
> Am 03.11.2011, 00:46 Uhr, schrieb mta`chrono
> <chrono@mta-international.net>:
>
>>> Yesterday I managed to compile all ported modules on Windows.
>>> So it looks like Tango for D2 should work on Linux and Windows right
>>> now.
>>
>> SiegeLord has created a master branch. I've deleted tango.stdc and parts
>> of tango.sys in my fork. At first, a thousands of errors arose but I
>> could fix them by using druntime instead. We need to do similar for
>> windows.
>
> So how far along is this project actually?
>
>
>> Yes, Tango for D2 should make use of druntime and deimos.
> Deimos?? Isn't that dead?

Probably he meant this:
https://github.com/D-Programming-Language/deimos

What other project were you referring to?
November 03, 2011
Timon Gehr Wrote:
> >> Yes, Tango for D2 should make use of druntime and deimos.
> > Deimos?? Isn't that dead?
> 
> Probably he meant this: https://github.com/D-Programming-Language/deimos
> 
> What other project were you referring to?

http://www.dsource.org/projects/deimos of course ;)
November 03, 2011
On Nov 3, 2011, at 9:06 AM, Timon Gehr wrote:

> On 11/03/2011 02:55 PM, Trass3r wrote:
>> 
>> 
>>> Yes, Tango for D2 should make use of druntime and deimos.
>> Deimos?? Isn't that dead?
> 
> Probably he meant this: https://github.com/D-Programming-Language/deimos
> 
> What other project were you referring to?

There's an old dead project on source named deimos.  As a bit of trivia, Tango would probably have been named deimos if dsource/deimos hadn't existed.

November 04, 2011
On 2011-11-03 16:01, Andrej Mitrovic wrote:
> On 11/3/11, Denis Shelomovskij<verylonglogin.reg@gmail.com>  wrote:
>> * the worst case, if you provide a large enough buffer, you are (I was)
>> completely sure Tango will use it (you want to do a manual memory
>> management by some reason), *but* it will reallocate a new one from GC
>> if it just don't like yours
>>
>
> That sounds really weird. So it takes your array buffer as a ref
> argument and resizes it / reallocates it if it's not big enough? I've
> never used Tango so I don't quite understand how it works. If I pass a
> static array or its slice of it, it can't do much except maybe throw
> an exception if it's not big enough. Hidden memory allocations are
> superbad!

Since most functions in Phobos don't accept a buffer parameter it would always need to allocate. How is that better? Or are you meaning that then you know it will always allocate.

Don't know what happens if a static array is not big enough.

-- 
/Jacob Carlborg
November 04, 2011
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.
November 05, 2011
== Quote from Damian Ziemba (nazriel@driv.pl)'s article
> On Tue, 18 Oct 2011 20:27:40 +0300, Denis Shelomovskij wrote:
> > +1 to Caligo. I agree that Tango is a good library (and was the best one
> > for D1) but, IMHO, porting it to D2 is a bad idea.
> > I'm the one who has a big D1+Tango project and I'd better rewrite it
> > with D2+Phobos, because:
> >
> >      0. I don't want to have a "two standard libraries problem" with D2
> > (which one to select?).
> >
> You don't have to. You can use Tango and Phobos together.
> You can also use some selected modules :) For example in one of my
> projects I use cipher and digest modules from Tango and rest is Phobos.
> >      1. Phobos has a better design (Tango is too complicated in some
> > places, has a lot of things I (and a regular programmer IMHO) don't use,
> > and has bad design decisions sometimes - both internal and user API)
> >
> I totally disagree :) Show me example of such bad decision.
> >      2. Phobos has less _critical bugs_ because of better code control
> > (e.g. Tango has memory corruption bug for a very long time in Vector
> > container (#2064)).
> >
> Tickets and Patches are always welcome :)
> >      3. There is no Andrei Alexandrescu clone to generate that perfect
> > ideas for Tango.
> This one made me rotfl in real :D Haha. Tango had some best developers in D community including h3r3tic, Kris, Fawzi, Sean and so on, so on :)

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.
November 05, 2011
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...