www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Tango for D2: All user modules ported

reply SiegeLord <none none.com> writes:
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
Jan 31 2012
next sibling parent "Nick Sabalausky" <a a.a> writes:
"SiegeLord" <none none.com> wrote in message 
news:jgagrl$1ta5$1 digitalmars.com...
 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.

Nice!
Jan 31 2012
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2012-02-01 05: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

Very cool. Your doing a great job. BTW, it works on Mac OS X. I have a couple of changes I haven't made a pull request for yet. Please please PLEASE, no makefiles. I just hate them. -- /Jacob Carlborg
Jan 31 2012
next sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-02-01 08:24, Jacob Carlborg wrote:
 On 2012-02-01 05: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

Very cool. Your doing a great job. BTW, it works on Mac OS X. I have a couple of changes I haven't made a pull request for yet. Please please PLEASE, no makefiles. I just hate them.

Pull request sent. -- /Jacob Carlborg
Jan 31 2012
prev sibling parent reply SiegeLord <none none.com> writes:
Jacob Carlborg Wrote:

 Please please PLEASE, no makefiles. I just hate them.

Just to clarify, the bobs are not going anywhere. The Makefile will be just for the people that want to use it. -SiegeLord
 -- 
 /Jacob Carlborg

Feb 01 2012
parent reply Jacob Carlborg <doob me.com> writes:
On 2012-02-01 20:41, SiegeLord wrote:
 Jacob Carlborg Wrote:

 Please please PLEASE, no makefiles. I just hate them.

Just to clarify, the bobs are not going anywhere. The Makefile will be just for the people that want to use it. -SiegeLord
 --
 /Jacob Carlborg


Ok, I see. Then we would have four different build methods: * bob.d * bob.rb * makefiles * shell script (don't know if this works) -- /Jacob Carlborg
Feb 01 2012
parent reply SiegeLord <none none.com> writes:
Jacob Carlborg Wrote:

 Ok, I see. Then we would have four different build methods:
 
 * bob.d
 * bob.rb
 * makefiles
 * shell script (don't know if this works)

Not shell script (I wouldn't know how to get it working, don't know shell well enough). The Ruby is in a similar situation, but perhaps I can learn enough of it to fix it (or someone can step up, it probably works now thanks to your efforts). I know enough Makefile to fix that up too if needed. -SiegeLord
Feb 02 2012
parent Jacob Carlborg <doob me.com> writes:
On 2012-02-02 20:42, SiegeLord wrote:
 Jacob Carlborg Wrote:

 Ok, I see. Then we would have four different build methods:

 * bob.d
 * bob.rb
 * makefiles
 * shell script (don't know if this works)

Not shell script (I wouldn't know how to get it working, don't know shell well enough). The Ruby is in a similar situation, but perhaps I can learn enough of it to fix it (or someone can step up, it probably works now thanks to your efforts). I know enough Makefile to fix that up too if needed. -SiegeLord

Same here for me with shell scripts. I almost hate shell scripts as bad as makefiles. You don't have to worry about the Ruby script. I created that one, and it already works for at least Mac OS X. Hopefully it already works on the other platforms. The reason I created the Ruby script was the chicken and egg problem. I wanted to build the latest version of Tango, they had changed the build script to be written in D. There was no pre-compiled binary for Mac OS X and the build script used the latest version of Tango. I think Ruby is a great scripting language and it's installed out of the box on Mac OS X. So, any issues with Ruby script, just let me know. -- /Jacob Carlborg
Feb 02 2012
prev sibling next sibling parent Gour <gour atmarama.net> writes:
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Tue, 31 Jan 2012 23:59:33 -0500
SiegeLord <none none.com> wrote:

Congratulations for great work!!

 -New Makefile based build system

Have you considered some alternative(s)?
 -Shared library creation

This is cool.
 -Dance lessons

We're interested for that one, but wonder about instructors? Sincerely, Gour --=20 As a strong wind sweeps away a boat on the water,=20 even one of the roaming senses on which the mind=20 focuses can carry away a man's intelligence. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 31 2012
prev sibling next sibling parent "Kagamin" <spam here.lot> writes:
On Wednesday, 1 February 2012 at 04:59:33 UTC, SiegeLord wrote:
 Why are you doing this?

 Because I want to.

Hmm... What does this question ask? Whether Tango is inferior to phobos2 or whether the whole d2 thing is inferior to d1?
Feb 01 2012
prev sibling next sibling parent reply Nick_B <nick.NOSPAMbarbalich gmail.com> writes:
On 1/02/2012 5:59 p.m., 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.


than D1 ? Nick
Feb 01 2012
parent SiegeLord <none none.com> writes:
Nick_B Wrote:

 Any comment that you can make on performance. Is it faster or slower 
 than D1 ?

It's hard to say. I write very non-idiomatic D2 code... I don't use the string type at all, saving on quite a bit of GC use. I would say that if you code just like you did in D1, but use the const system to enforce some safety then your code will be just as fast as it was in D1. If you start using immutable and all the extra allocations that entails... I doubt it'd be nearly as fast. As this project was written from scratch in D2, I don't have a D1 version to compare to... Lastly, this was a game, so most of the time consumption comes from the graphical pipeline... As for Tango itself, yes I had to add a few .dups here and there. They are relatively rare, however, and usually only happen when an error is raised. I'd be very surprised if under normal usage TangoD2 is significantly slower than the original Tango. -SiegeLord
 
 Nick
 

Feb 01 2012
prev sibling next sibling parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/31/12 8:59 PM, 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.

This is awesome. Thanks for the great news! Andrei
Feb 01 2012
prev sibling next sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On reddit:

http://www.reddit.com/r/programming/comments/p5xzk/tango_library_for_d2_initial_port_finished/


Andrei
Feb 01 2012
parent "Nick Sabalausky" <a a.a> writes:
"Andrei Alexandrescu" <SeeWebsiteForEmail erdani.org> wrote in message 
news:jgb0dl$11vi$1 digitalmars.com...
 On reddit:

 http://www.reddit.com/r/programming/comments/p5xzk/tango_library_for_d2_initial_port_finished/

I predict reddit posts, from people who didn't fully read the post, claiming that D2 now has two std libs in 3...2...1...
Feb 01 2012
prev sibling next sibling parent "Iain Buclaw" <ibuclaw ubuntu.com> writes:
On Wednesday, 1 February 2012 at 04:59:33 UTC, 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

Writing a new book on Dance lessons? :)
Feb 01 2012
prev sibling next sibling parent "Bernard Helyer" <b.helyer gmail.com> writes:
Congratulations. This is the penultimate death knell for D1, I 
feel. (The final being DMD1's discontinuation on December 31st).
Feb 01 2012
prev sibling next sibling parent Moritz Warning <moritzwarning web.de> writes:
On Tue, 31 Jan 2012 23:59:33 -0500, 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

Awesome! :D
Feb 01 2012
prev sibling next sibling parent =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= <xtzgzorex gmail.com> writes:
On 01-02-2012 05: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

Amazing work folks! I would recommend Waf for your build system, but the downside is that it doesn't support Windows... (This could probably be fixed with some trivial patches, though...) -- - Alex
Feb 01 2012
prev sibling next sibling parent reply Don Clugston <dac nospam.com> writes:
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 

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.
Feb 02 2012
next sibling parent mta`chrono <chrono mta-international.net> writes:
 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.
Feb 03 2012
prev sibling parent reply "Damian Ziemba" <nazriel driv.pl> writes:
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

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
Feb 04 2012
parent Don Clugston <dac nospam.com> writes:
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

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.
Feb 06 2012
prev sibling next sibling parent reply bobef <dontspamme smapsucess.co.uk> writes:
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

Feb 04 2012
next sibling parent Timon Gehr <timon.gehr gmx.ch> writes:
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.
Feb 04 2012
prev sibling next sibling parent SiegeLord <none none.com> writes:
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
Feb 05 2012
prev sibling next sibling parent reply "HeiHon" <heiko.honrath gmx.de> writes:
On Saturday, 4 February 2012 at 10:56:14 UTC, bobef wrote:
 Great news. ...

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)[][]
Feb 09 2012
parent Timon Gehr <timon.gehr gmx.ch> writes:
On 02/09/2012 06:05 PM, HeiHon wrote:
 On Saturday, 4 February 2012 at 10:56:14 UTC, bobef wrote:
 Great news. ...

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
Feb 09 2012
prev sibling parent "HeiHon" <heiko.honrath gmx.de> writes:
On Thursday, 9 February 2012 at 17:39:39 UTC, Timon Gehr wrote:
 For me it is the other way round: I never considered trying 
 Tango until it was ported to D2. =)

But I started using D back in the pre 0.125 days (2004) and I got used to using Tango.
 fixed:

 import std.stdio;

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

Just tried again with dmd2.057 and dmd2.058 beta: foreach(i, arg; args) { writefln(" arg %3d: '%s'", i, arg); } And it's still the same.
 Works for me with Phobos perfectly fine. What platform are you 
 on? (probably Windows?)

Yes, Win XP SP3 32 Bit. OT: Just tried the new DMD 2.058 beta: Whoa! Magicians at work. I do like this: hello.d: module hello; import std.stdio; void main(string[] args) { foreach(i, arg; args) { writefln(" arg %3d: '%s'", i, arg); } } rdmd --build-only -release -O hello.d dmd2.057: E:\source\D\d2>dir hello.exe 09.02.2012 18:21 992.284 hello.exe dmd2.058beta: E:\source\D\d2>dir hello.exe 09.02.2012 18:22 216.604 hello.exe +1
 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

Will have a look.
Feb 09 2012
prev sibling parent reply Nengwen Zhuo <soarowl yeah.net> writes:
doc\example\system\stacktrace.d has exception:

object.Exception .\tango\core\tools\WinStackTrace.d(1918): Can't initialize 
the
TangoTrace LGPL stuff
Feb 05 2012
parent SiegeLord <none none.com> writes:
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
Feb 05 2012