February 03, 2012
> Please don't change that! That's the way it should be. I tried very hard, and unsuccessfully to avoid that code being duplicated in Phobos and Tango, it's fantastic that you've finally achieved it.

But it'll make tango depending on phobos which is something that not all people seem to like.
February 04, 2012
Great news. Makes me wanna do D again after I gave it up mainly because the lack of Tango for D2 and the obvious death of D1 years ago. I don't see the announcement in the tango forums. I'm wandering if the original tango developers have any plans in using D2 and developing tango for D2? Also what are your plans for maintaining the port? Does it seem it will have long happy future or it is more of a hobby project?

Regards,
bobef

On 1.2.2012 г. 06:59 ч., SiegeLord wrote:
> Hello everyone,
>
> Just wanted to put out an announcement with a progress report on porting effort of Tango. For those that don't know what it is, Tango is a framework library that used to be/is the de facto standard library of D1.
>
> Through the heroic efforts by Igor Stepanov, the initial porting was completed ahead of schedule. All the user modules are now ported (save for tango.math.BigInt, which right now is aliased to std.bigint... this might change in the future). All unittests pass on Linux (using LDC2) and most do on Windows. Additionally, again kudos to Igor, it compiles with -property and -w flags for all of you style purists. Additionally, most of the examples have been also ported.
>
> I have personally used Tango in few KLoC line D2 project and I find it works just as well as it did in D1.
>
> This is naturally not the end, in the coming weeks/months you can expect the following:
>
> -New Makefile based build system
> -Documentation creation
> -Ironing out of a few const related inelegancies
> -Revival of the support for MacOSX and FreeBSD
> -Revival of the GDC
> -Shared library creation
> -Dance lessons
>
> You can download the latest version of it here:
>
> https://github.com/SiegeLord/Tango-D2
>
> FAQ
>
> Does it work alongside Phobos/does it use druntime?
>
> Yes and yes.
>
> Why are you doing this?
>
> Because I want to.
>
>
> That's all,
>
> -SiegeLord

February 04, 2012
On Thursday, 2 February 2012 at 13:50:56 UTC, Don Clugston wrote:
> On 01/02/12 05:59, SiegeLord wrote:
>> Hello everyone,
>>
>> Just wanted to put out an announcement with a progress report on porting effort of Tango.
>>
>> Through the heroic efforts by Igor Stepanov, the initial porting was completed ahead of schedule.All the user modules are now ported
>
> > (save for tango.math.BigInt, which right now is aliased to
> std.bigint... this might change in the future)
>
> Please don't change that! That's the way it should be. I tried very
> hard, and unsuccessfully to avoid that code being duplicated in Phobos and Tango, it's fantastic that you've finally achieved it.

Don, what about cases when you don't need Phobos at all and you would to stick to Tango+Druntime only?

tango.math.internal.* are mostly constness changes (and coding style change :D)
but tango.math.BigInt and std.bigint seems to be a bit different (more features in Phobos version?)

Best Regards,
Damian Ziemba


February 04, 2012
On 02/04/2012 11:56 AM, bobef wrote:
> Great news. Makes me wanna do D again after I gave it up mainly because
> the lack of Tango for D2 and the obvious death of D1 years ago. I don't
> see the announcement in the tango forums. I'm wandering if the original
> tango developers have any plans in using D2 and developing tango for D2?
> Also what are your plans for maintaining the port? Does it seem it will
> have long happy future or it is more of a hobby project?
>
> Regards,
> bobef
>

I cannot speak for SiegeLord, but since the project is on github, anyone can fork it and continue the maintenance. As long as there is someone who wants it to be maintained, it probably will be.

February 05, 2012
On 02/04/2012 05:56 AM, bobef wrote:
> Great news. Makes me wanna do D again after I gave it up mainly because
> the lack of Tango for D2 and the obvious death of D1 years ago. I don't
> see the announcement in the tango forums. I'm wandering if the original
> tango developers have any plans in using D2 and developing tango for D2?
> Also what are your plans for maintaining the port? Does it seem it will
> have long happy future or it is more of a hobby project?
>
> Regards,
> bobef

To add to what Timon Gehr said, I plan on using it and thus maintaining it as much as possible. I keep it synched up with the D1 original, so as long as the Tango developers keep improving the original, I'll keep the port updated. I also welcome new features as long as they are in the spirit of Tango, and don't break backwards compatibility too much (after all, a big use case of Tango is for porting).

I haven't talked to the developers about making this an "official" port or anything like that. I plan to in the future.

-SiegeLord
February 05, 2012
doc\example\system\stacktrace.d has exception:

object.Exception@.\tango\core\tools\WinStackTrace.d(1918): Can't initialize the
TangoTrace LGPL stuff


February 05, 2012
On 02/05/2012 07:04 AM, Nengwen Zhuo wrote:
> doc\example\system\stacktrace.d has exception:
>
> object.Exception@.\tango\core\tools\WinStackTrace.d(1918): Can't
> initialize the
> TangoTrace LGPL stuff
>
>

It should be fixed now. Make sure to compile the example and the library with the -g flag.

-SiegeLord
February 06, 2012
On 04/02/12 15:50, Damian Ziemba wrote:
> On Thursday, 2 February 2012 at 13:50:56 UTC, Don Clugston wrote:
>> On 01/02/12 05:59, SiegeLord wrote:
>>> Hello everyone,
>>>
>>> Just wanted to put out an announcement with a progress report on
>>> porting effort of Tango.
>>>
>>> Through the heroic efforts by Igor Stepanov, the initial porting was
>>> completed ahead of schedule.All the user modules are now ported
>>
>> > (save for tango.math.BigInt, which right now is aliased to
>> std.bigint... this might change in the future)
>>
>> Please don't change that! That's the way it should be. I tried very
>> hard, and unsuccessfully to avoid that code being duplicated in Phobos
>> and Tango, it's fantastic that you've finally achieved it.
>
> Don, what about cases when you don't need Phobos at all and you would to
> stick to Tango+Druntime only?

That's OK. It has no dependencies on anything else in Phobos.
(OK, recently there is a toString() thing, which needs to be sorted out in general for Phobos/Tango compatibility).

> tango.math.internal.* are mostly constness changes (and coding style
> change :D)
> but tango.math.BigInt and std.bigint seems to be a bit different (more
> features in Phobos version?)

I wrote both of them. The tango one is just a really old version, with many more bugs.


February 09, 2012
On Saturday, 4 February 2012 at 10:56:14 UTC, bobef wrote:
> Great news. ...
Same here!

This is the number one thing I waited for to be ported to D2. I never considered moving to D2 without Tango. Big thanks to SiegeLord and all the other contributors.

Just one example why I like Tango:

hello_tango.d:
module hello_tango;
// dmd 2.057 + SiegeLord-Tango-D2-4c9566e 2012-01-24
import tango.io.Stdout;

int main(string[] args)
{
   foreach(i, arg; args)
   {
       Stdout.formatln("  arg {,3}: '{}'", i, arg);
   }
   return 0;
}

rdmd --build-only -release -O hello_tango.d

hello_tango a b ä ö
 arg   0: 'hello_tango'
 arg   1: 'a'
 arg   2: 'b'
 arg   3: 'ä'
 arg   4: 'ö'


hello_phobos.d:
module hello_phobos;

// dmd 2.057
import std.stdio;

int main(string[] args)
{
   foreach(i, arg; args)
   {
       stdout.writefln("  arg %3d: '%s'", i, arg);
   }
   return 0;
}

rdmd --build-only -release -O hello_phobos.d

hello_phobos a b ä ö
 arg   0: 'hello_phobos'
 arg   1: 'a'
 arg   2: 'b'
 arg   3: '+ñ'
 arg   4: '+Â'


E:\source\D\d2>dir he*
09.02.2012  15:18               204 hello_phobos.d
09.02.2012  15:18           992.284 hello_phobos.exe
09.02.2012  15:18               250 hello_tango.d
09.02.2012  15:18           180.764 hello_tango.exe

The hello_tango.exe is much smaller and it even works with strange german umlauts :-)

BTW:
Tango doesn't build (bob) with dmd 2.058 beta because of:
...
dmd -c -I. -release -oftango-net-device-Berkeley-release.obj ./tango/net/device/Berkeley.d
object.Exception@build\src\bob.d(632): Process exited normally with return code 1
.\tango\net\device\Berkeley.d(1921): Error: cannot implicitly convert expression (new char[][](cast(uint)i)) of type char[][] to const(char)[][]

February 09, 2012
On 02/09/2012 06:05 PM, HeiHon wrote:
> On Saturday, 4 February 2012 at 10:56:14 UTC, bobef wrote:
>> Great news. ...
> Same here!
>
> This is the number one thing I waited for to be ported to D2. I never
> considered moving to D2 without Tango. Big thanks to SiegeLord and all
> the other contributors.
>

For me it is the other way round: I never considered trying Tango until it was ported to D2. =)

> Just one example why I like Tango:
>
> hello_tango.d:
> module hello_tango;
> // dmd 2.057 + SiegeLord-Tango-D2-4c9566e 2012-01-24
> import tango.io.Stdout;
>
> int main(string[] args)
> {
> foreach(i, arg; args)
> {
> Stdout.formatln(" arg {,3}: '{}'", i, arg);
> }
> return 0;
> }
>
> rdmd --build-only -release -O hello_tango.d
>
> hello_tango a b ä ö
> arg 0: 'hello_tango'
> arg 1: 'a'
> arg 2: 'b'
> arg 3: 'ä'
> arg 4: 'ö'
>
>
> hello_phobos.d:
> module hello_phobos;
>
> // dmd 2.057
> import std.stdio;
>
> int main(string[] args)
> {
> foreach(i, arg; args)
> {
> stdout.writefln(" arg %3d: '%s'", i, arg);
> }
> return 0;
> }
>

fixed:

import std.stdio;

void main(string[] args){
   foreach(i, arg; args){
       writefln("  arg %3d: '%s'", i, arg);
   }
}

> rdmd --build-only -release -O hello_phobos.d
>
> hello_phobos a b ä ö
> arg 0: 'hello_phobos'
> arg 1: 'a'
> arg 2: 'b'
> arg 3: '+ñ'
> arg 4: '+Â'
>
>
> E:\source\D\d2>dir he*
> 09.02.2012 15:18 204 hello_phobos.d
> 09.02.2012 15:18 992.284 hello_phobos.exe
> 09.02.2012 15:18 250 hello_tango.d
> 09.02.2012 15:18 180.764 hello_tango.exe
>
> The hello_tango.exe is much smaller and it even works with strange
> german umlauts :-)
>

Works for me with Phobos perfectly fine. What platform are you on? (probably Windows?)

> BTW:
> Tango doesn't build (bob) with dmd 2.058 beta because of:
> ...
> dmd -c -I. -release -oftango-net-device-Berkeley-release.obj
> ./tango/net/device/Berkeley.d
> object.Exception@build\src\bob.d(632): Process exited normally with
> return code 1
> .\tango\net\device\Berkeley.d(1921): Error: cannot implicitly convert
> expression (new char[][](cast(uint)i)) of type char[][] to const(char)[][]
>

Harmless 'bug' exposed by bugfix in compiler. Should be a trivial. It would cease to be an issue if this enhancement was implemented in the compiler:

http://d.puremagic.com/issues/show_bug.cgi?id=7208