On 2010-11-11 20:28, Sean Kelly wrote:
Jacob Carlborg Wrote:
I you don't think that support for other compilers should be in druntime
what do you suggest?
They should be in their own SVN repository somewhere. I think one could even
argue that the DMD compiler runtime (src/rt in druntime) should be maintained
separately. It's quite convenient to have the druntime repository produce a
fully functional runtime however, and what better compiler to support than the
reference compiler?
To be clear, I'm not vehemently opposed to other compiler runtimes living in
the druntime repository. It's simply proven to be a bad model. In Tango, when
a new DMD version was released I merged changes into the Tango runtime (a task
which wouldn't admittedly exist with druntime), and then I speculatively made
the same changes to the other runtimes as well. In places where compiler
support was needed, I left the new code versioned out with a comment to deal
with it when that compiler was updated. All in all, it meant a lot of work for
me, and it was difficult to maintain a fully functional source tree. I know
the alternative is that each compiler team may have to sync with changes to
druntime (at least core/* and gc/*), but this is a rather small and stable set
of modules compared to the D1 Phobos arrangement.
From a functional perspective, the other issue is that the compiler doesn't like
something having a module name of "rt.blah" but living in ldcrt/blah.d. This
is a problem with maintaining multiple GCs as well. Symlinks are an option on Posix, but
as far as I know that isn't possible on Windows, so files would have to be copied around
during the build process depending on which compiler or GC was selected.
Ok, thanks for explaining.
--
/Jacob Carlborg