Re: D2 port of Tango

2011-10-18 Thread Jacob Carlborg

On 2011-10-18 06:52, SiegeLord wrote:

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


This is great, keep up to good work.

--
/Jacob Carlborg


Re: D2 port of Tango

2011-10-18 Thread Jacob Carlborg

On 2011-10-18 06:52, SiegeLord wrote:

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.


Does this use druntime?


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.


Do you have any examples of this, what's changed?


That's all. Cheers.

-SiegeLord



--
/Jacob Carlborg


Re: D2 port of Tango

2011-10-18 Thread Trass3r

Good job.

The first project is a D2 port proper that tries to keep API semantics  
This is the 'd2port' branch in my repository.


The second project is a more ambitious effort to rewrite some aspects 
This is the 'master' branch in my repository.


Why isn't it the other way around?


Re: D2 port of Tango

2011-10-18 Thread Trass3r

Why?  What's the point?  Why not work on Phobos instead?


Well D1 projects could be ported to D2 much more easily, e.g. Yage.


Re: D2 port of Tango

2011-10-18 Thread zsxxsz
Greate news. I wait for it for a long time.


Re: D2 port of Tango

2011-10-18 Thread SiegeLord
Caligo Wrote:
 Why?  What's the point?  Why not work on Phobos instead?

Aside from the obvious philosophical differences, which I am NOT going to get 
into, porting D1 projects is an important reason.

-SiegeLord


Re: D2 port of Tango

2011-10-18 Thread SiegeLord
Jacob Carlborg Wrote:
 Does this use druntime?

Yes, although a Tango specific runtime (compatible with druntime) will probably 
be an option some day too. Still, right now you can safely use (modulo my 
imperfect testing) Phobos and Tango modules together in a single program.

 Do you have any examples of this, what's changed?

The biggest difference right now is the near-complete rewriting of the 
tango.net package. You'd have to get a hold of mtachrono to see what roadmap he 
has.

-SiegeLord


Re: D2 port of Tango

2011-10-18 Thread SiegeLord
Trass3r Wrote:
 Why isn't it the other way around?

Just a historical oddity.

-SiegeLord


Re: D2 port of Tango

2011-10-18 Thread Denis Shelomovskij

18.10.2011 8:00, Caligo пишет:



On Mon, Oct 17, 2011 at 11:52 PM, SiegeLord n...@none.com
mailto:n...@none.com wrote:

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/haskelSiegeLord/Tango-D2
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


Why?  What's the point?  Why not work on Phobos instead?


+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?).


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)


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)).


3. There is no Andrei Alexandrescu clone to generate that perfect 
ideas for Tango.


Re: D2 port of Tango

2011-10-18 Thread Eric Poggel (JoeCoder)

On 10/18/2011 12:52 AM, SiegeLord wrote:

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


I already mentioned this deeper down in the thread, but what are the 
chances of being able to use tango as an add-on for phobos2?  Something 
from which I could pull in only the tango modules I need and use phobos 
for the rest?


Re: D2 port of Tango

2011-10-18 Thread Eric Poggel (JoeCoder)

On 10/18/2011 6:24 AM, Trass3r wrote:

Why? What's the point? Why not work on Phobos instead?


Well D1 projects could be ported to D2 much more easily, e.g. Yage.


True, but I had hoped to port Yage to phobos2 anyway.  Lack of xml 
support in phobos is the biggest reason I haven't started doing this 
already.  Time being another reason.


If Tango was a library of add-in modules of which I could include only 
what I need, I would be very likely to keep using it.  I think tango 
could become quite popular again with an approach like this.  But it may 
need to depend on some phobos modules and conventions for good integration.


Re: D2 port of Tango

2011-10-18 Thread Trass3r
I already mentioned this deeper down in the thread, but what are the  
chances of being able to use tango as an add-on for phobos2?  Something  
from which I could pull in only the tango modules I need and use phobos  
for the rest?


He already answered that:

SiegeLord Wrote:

Does this use druntime?
Yes, although a Tango specific runtime (compatible with druntime) will  
probably be an option some day too. Still, right now you can safely use  
(modulo my imperfect testing) Phobos and Tango modules together in a  
single program.


Re: D2 port of Tango

2011-10-18 Thread Eric Poggel (JoeCoder)

On 10/18/2011 12:45 PM, Trass3r wrote:

I already mentioned this deeper down in the thread, but what are the
chances of being able to use tango as an add-on for phobos2? Something
from which I could pull in only the tango modules I need and use
phobos for the rest?


He already answered that:

SiegeLord Wrote:

Does this use druntime?

Yes, although a Tango specific runtime (compatible with druntime) will
probably be an option some day too. Still, right now you can safely
use (modulo my imperfect testing) Phobos and Tango modules together in
a single program.


Not quite.  I was wondering if it can be done with ONLY bringing in what 
I need, as apposed to most or all of tango.


Re: D2 port of Tango

2011-10-18 Thread Jonathan M Davis
On Tuesday, October 18, 2011 10:27 Denis Shelomovskij wrote:
 18.10.2011 8:00, Caligo пишет:
  On Mon, Oct 17, 2011 at 11:52 PM, SiegeLord n...@none.com
  
  mailto:n...@none.com wrote:
  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/haskelSiegeLord/Tango-D2
  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
  
  Why? What's the point? Why not work on Phobos instead?
 
 +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?).
 
 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)
 
 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)).
 
 3. There is no Andrei Alexandrescu clone to generate that perfect
 ideas for Tango.

While I would much rather see effort being put into improving Phobos than 
Tango, I think that it's a bit rude to claim that the Tango folks should just 
throw away all of their Tango work and move all of their projects over to 
Phobos. Wanting to be able to easily port D1 programs to D2 is a completely 
valid thing to want to do, and while I think that new projects should use 
Phobos since it's the standard library, there's nothing wrong with using a 
different library if you want to. If SiegeLord and others want to spend time 
porting Tango to D2, it's their right to be able to do so. Ostracizing Tango 
and its users is just going to make the D2 community poorer. And thanks to
druntime, it's now perfectly possible to mix Phobos and Tango code if you
want to (though the differences in design will likely make that not always
work as well as might be nice), so the situation is not the same as it was
for D1 when Phobos sucked, and it and Tango didn't work together.

- Jonathan M Davis


Re: D2 port of Tango

2011-10-18 Thread SiegeLord
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?).
 
  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)
 
  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)).
 
  3. There is no Andrei Alexandrescu clone to generate that perfect 
 ideas for Tango.

0. Phobos is still the standard library for D2. Tango becomes a 3rd party 
library you can use alongside Phobos. Think using libGTK along side glibc.

1, 3. Subjective. I think the opposite and more importantly I believe in choice.

2. Fixed 3 months ago.

-SiegeLord


Re: D2 port of Tango

2011-10-18 Thread SiegeLord
Eric Poggel (JoeCoder) Wrote:

 Not quite.  I was wondering if it can be done with ONLY bringing in what 
 I need, as apposed to most or all of tango.

One of Tango's philosophies was to minimize intermodule dependencies, something 
that makes this porting effort a lot easier... still, those dependencies do 
exist, meaning that you usually can't use individual modules in isolation. I 
don't really get your question however. TangoD2 is just another 3rd party 
library... to use it you'd install the whole thing somewhere on your computer. 
Then, you can compile the whole thing into a library OR use a tool like xfbuild 
(maybe rdmd too, never had luck with that one) to compile only the modules that 
your program imports.

-SiegeLord


Re: D2 port of Tango

2011-10-18 Thread Charles Hixson

On 10/18/2011 09:15 AM, SiegeLord wrote:

Caligo Wrote:

Why?  What's the point?  Why not work on Phobos instead?


Aside from the obvious philosophical differences, which I am NOT going to get 
into, porting D1 projects is an important reason.

-SiegeLord


While I can see the desirability of porting good D1 projects, from my 
point of view when Tango became popular the usability of D1 plummeted. 
Too many tools would only work either with or without Tango installed. 
And I kept having installation problems.


So I'm *not* looking forwards to seeing Tango in D2.  If this could be 
done without requiring phobos to be disabled, and without mangling it, 
then I would have many fewer problems with it, but as it is...Tango for 
D1 left a VERY bad taste in my mouth.  Very.  In fact it was one of the 
major reasons I switched to D2 while it was still quite flakey.