digitalmars.D - Re: why a part of D community do not want go to D2 ?
- Sean Kelly <sean invisibleduck.org> Nov 10 2010
- Jacob Carlborg <doob me.com> Nov 11 2010
- Daniel Gibson <metalcaedes gmail.com> Nov 11 2010
- Bernard Helyer <b.helyer gmail.com> Nov 11 2010
Jacob Carlborg Wrote:On 2010-11-09 23:04, Don wrote:Jacob Carlborg wrote:On 2010-11-09 17:43, Andrei Alexandrescu wrote:I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.
Clearly we don't see this in the same way. I see it like this, because Tango was first it's druntime that chose to turn away from compatibility.
Sorry, that is completely false. druntime was created specifically to allow Phobos and Tango to co-exist. At the time, almost all of the code in druntime was written by Sean, and he was leading the Tango runtime development. The expectation was that Tango would continue to use Sean's runtime, it was just in a separate project.
Of course that would be the preferred way, there should have been some kind of agreement for this (maybe there was but never fulfilled?) But you also have to look at it from Tangos point of view. Why would Tango drop support for anything that isn't DMD 32bit? Or should Tango keep half of it's runtime in it's own repository and for the other half use druntime.
I maintained a D1 branch of druntime for ages thinking that it might be a good transition point for Tango, but no one ever used it. I was also very careful to avoid creating any incompatibilities with the Tango runtime for quite a while, but finally had to choose between letting the library stagnate in anticipation of an event that would likely never happen and moving forward. I do still try to avoid changing existing user-facing code though. Also, if you compare the two now, I think you'll find that the Tango runtime has diverged from the original design far more than druntime, so there's little apparent interest there in facilitating a merge. Either way, as there's been little apparent effort in porting Tango to D2, this whole discussion is moot.For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.
That runtime is druntime. If there is no understanding of that at Tango, that is suicide.
Apparently not, since Sean ripped out all that wasn't necessary for Phobos but is necessary for Tango. Why are you blaming everything on Tango all the time?
Sean took all the code he had written. The other minor contributors did not yet give permission for their code to be used, so of course it could not be included.
I really think it's a shame they couldn't/wanted to give permission for their code to be used.
There was another simpler reason as well, which was that I didn't want to speculatively maintain code for various compilers or whatever just in case they decided to use druntime one day. It's far less effort to simply add whatever's needed when that day comes. Also, I do still feel that the druntime SVN shouldn't have to be the repository used for every compiler runtime or garbage collector implementation. That was necessary in Tango because Tango was an alternative library, so for any hope of Tango being used we had to do all the work ourselves. It's far from being an optimal workflow however.
Nov 10 2010
On 2010-11-10 22:26, Sean Kelly wrote:Jacob Carlborg Wrote:On 2010-11-09 23:04, Don wrote:Jacob Carlborg wrote:On 2010-11-09 17:43, Andrei Alexandrescu wrote:I wouldn't be surprised if Tango chose to turn away from compatibility for the second time (be it theoretical compatibility for now since there is no Tango for D2). The technical reasons are dwindling and became tenuous to argue for, but however weak they are, they could be used to promote a political motivation: a Tango/D2 offering would come again as an either-or proposition for a standard library that precludes usage of Tango2 and Phobos2 together. In my opinion that would be an extremely dangerous gambit.
Clearly we don't see this in the same way. I see it like this, because Tango was first it's druntime that chose to turn away from compatibility.
Sorry, that is completely false. druntime was created specifically to allow Phobos and Tango to co-exist. At the time, almost all of the code in druntime was written by Sean, and he was leading the Tango runtime development. The expectation was that Tango would continue to use Sean's runtime, it was just in a separate project.
Of course that would be the preferred way, there should have been some kind of agreement for this (maybe there was but never fulfilled?) But you also have to look at it from Tangos point of view. Why would Tango drop support for anything that isn't DMD 32bit? Or should Tango keep half of it's runtime in it's own repository and for the other half use druntime.
I maintained a D1 branch of druntime for ages thinking that it might be a good transition point for Tango, but no one ever used it. I was also very careful to avoid creating any incompatibilities with the Tango runtime for quite a while, but finally had to choose between letting the library stagnate in anticipation of an event that would likely never happen and moving forward. I do still try to avoid changing existing user-facing code though. Also, if you compare the two now, I think you'll find that the Tango runtime has diverged from the original design far more than druntime, so there's little apparent interest there in facilitating a merge. Either way, as there's been little apparent effort in porting Tango to D2, this whole discussion is moot.
I can really understand that this can be very frustrating. I don't have any answers on why Tango didn't adopt druntime. Although as I said earlier I can think some reasons like no support for other compilers.For this to work the Tango team and the druntime contributors/maintainers have collaborate and work together on a runtime.
That runtime is druntime. If there is no understanding of that at Tango, that is suicide.
Apparently not, since Sean ripped out all that wasn't necessary for Phobos but is necessary for Tango. Why are you blaming everything on Tango all the time?
Sean took all the code he had written. The other minor contributors did not yet give permission for their code to be used, so of course it could not be included.
I really think it's a shame they couldn't/wanted to give permission for their code to be used.
There was another simpler reason as well, which was that I didn't want to speculatively maintain code for various compilers or whatever just in case they decided to use druntime one day. It's far less effort to simply add whatever's needed when that day comes. Also, I do still feel that the druntime SVN shouldn't have to be the repository used for every compiler runtime or garbage collector implementation. That was necessary in Tango because Tango was an alternative library, so for any hope of Tango being used we had to do all the work ourselves. It's far from being an optimal workflow however.
I you don't think that support for other compilers should be in druntime what do you suggest? -- /Jacob Carlborg
Nov 11 2010
Jacob Carlborg schrieb:On 2010-11-10 22:26, Sean Kelly wrote:There was another simpler reason as well, which was that I didn't want to speculatively maintain code for various compilers or whatever just in case they decided to use druntime one day. It's far less effort to simply add whatever's needed when that day comes. Also, I do still feel that the druntime SVN shouldn't have to be the repository used for every compiler runtime or garbage collector implementation. That was necessary in Tango because Tango was an alternative library, so for any hope of Tango being used we had to do all the work ourselves. It's far from being an optimal workflow however.
I you don't think that support for other compilers should be in druntime what do you suggest?
That every compiler ships it's own version of druntime? If druntime needs to be adjusted for any compiler anyway, the compiler-devs can do that themselves (probably they know better how to do that, anyway). This has the merit the compiler devs can make changes on the compiler without being afraid of breaking druntime - because they can adjust their version of druntime accordingly. Cheers, - Daniel
Nov 11 2010
On Wed, 10 Nov 2010 16:26:52 -0500, Sean Kelly wrote:Also, I do still feel that the druntime SVN shouldn't have to be the repository used for every compiler runtime or garbage collector implementation.
I am attempting to write a compiler in D2 (github.com/bhelyer/SDC), and I can't help but feel that rewriting druntime, or picking out the relatively benign parts would be a difficult, bug filled task. I don't see a realistic alternative to druntime compatibility. I also feel that having all implementations share the GC implementation means that improvements there will improve everywhere else. If I weren't to use druntime's GC, then I would use the Boehm collector, but I feel using druntime is more beneficial than not.
Nov 11 2010









Daniel Gibson <metalcaedes gmail.com> 