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