February 01, 2012
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? :)

February 01, 2012
Congratulations. This is the penultimate death knell for D1, I feel. (The final being DMD1's discontinuation on December 31st).
February 01, 2012
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
February 01, 2012
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
February 01, 2012
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

February 02, 2012
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
> 

February 02, 2012
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
February 02, 2012
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.
February 02, 2012
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
February 03, 2012
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