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

Reply via email to