December 28, 2012
On 12/28/2012 6:35 AM, Russel Winder wrote:
> Also I think this needs to be made into a Git multi-module project so
> that the cloning and update pulling of the repositories is handled
> automatically by Git.
>
> I have rewritten the script to handle symbolic links and cleaning but
> this still leaves a problem with one of the components which insists on
> an exact relative position of components as real directories. This means
> there are too many assumptions in the DMD/Druntime/Phobos build for it
> to be considered stable.

Which component and where is the problem?

>
> Whilst I think SCons can easily handle all this better than the Make
> scripts currently there, I have no intention of promoting that solution
> as I realize many want to promote a D-based build solution for C, C++, D
> systems.
>
> Also of course, I am a n00b to the build of DMD/Druntime/Phobos and so
> have no right to have strong opinions :-)  What I can say is that the
> current system isn't really up to scratch for someone wading in to it
> from scratch.

December 29, 2012
On Fri, 2012-12-28 at 10:53 -0800, Walter Bright wrote: […]
> Which component and where is the problem?
[…]

The Phobos build depends on Druntime and makes the assumptions that it is in ../druntime via the:

	${MAKE} -C ../druntime …

line in the posix.mak file.

I would have thought DMD, Druntime and Phobos should be buildable independently but this seems not to be the case, in which case they should perhaps be a single multi-module project.

How do GDC and LDC relate to Druntime and Phobos?

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@winder.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


December 29, 2012
On Saturday, 29 December 2012 at 11:01:20 UTC, Russel Winder wrote:
> How do GDC and LDC relate to Druntime and Phobos?

GDC and LDC both use druntime/Phobos, but integrate it into their own build system instead of relying on the makefiles in the upstream repositories.

David
December 29, 2012
On Saturday, 29 December 2012 at 11:01:20 UTC, Russel Winder wrote:

> I would have thought DMD, Druntime and Phobos should be buildable
> independently but this seems not to be the case

Not much in D compiles without druntime, for the vast majority purposes it's a necessity.

Also, there are bits of the language itself that are dependant on phobos (x**y)

The 3 are pretty inextracably linked together.
December 29, 2012
On 12/29/12 6:01 AM, Russel Winder wrote:
> On Fri, 2012-12-28 at 10:53 -0800, Walter Bright wrote:
> […]
>> Which component and where is the problem?
> […]
>
> The Phobos build depends on Druntime and makes the assumptions that it
> is in ../druntime via the:
>
> 	${MAKE} -C ../druntime …
>
> line in the posix.mak file.
>
> I would have thought DMD, Druntime and Phobos should be buildable
> independently but this seems not to be the case, in which case they
> should perhaps be a single multi-module project.

Phobos must build druntime because on Posix the druntime library is integrated within the final library, libphobos.a.

Andrei
December 29, 2012
On 12/29/2012 3:01 AM, Russel Winder wrote:
> On Fri, 2012-12-28 at 10:53 -0800, Walter Bright wrote:
> […]
>> Which component and where is the problem?
> […]
>
> The Phobos build depends on Druntime and makes the assumptions that it
> is in ../druntime via the:
>
> 	${MAKE} -C ../druntime …
>
> line in the posix.mak file.

That is controlled by the line:

DRUNTIME_PATH = ../druntime

in posix.mak. What would be a better default?


> I would have thought DMD, Druntime and Phobos should be buildable
> independently but this seems not to be the case, in which case they
> should perhaps be a single multi-module project.

The order to build things is dmd, druntime, phobos. Perhaps it was not the best idea to make them separate projects, but I think we're stuck with that now.

> How do GDC and LDC relate to Druntime and Phobos?

I don't know.

December 29, 2012
On Sat, 2012-12-29 at 13:16 -0800, Walter Bright wrote: […]
> The order to build things is dmd, druntime, phobos. Perhaps it was not the best idea to make them separate projects, but I think we're stuck with that now.
[…]

I get the feeling GDC and LDC would be hard to manage if druntime and Phobos were tightly integrated with DMD so that split is actually good.

I think having DMD, Druntime and Phobos as distinct Git repositories is right, which means that using a super-project such as https://github.com/carlor/dlang-workspace with the three as submodules makes a great deal of sense. Then GDC and LDC can organize things as they need.

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@winder.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


December 29, 2012
On 12/29/2012 1:40 PM, Russel Winder wrote:
> I think having DMD, Druntime and Phobos as distinct Git repositories is
> right, which means that using a super-project such as
> https://github.com/carlor/dlang-workspace with the three as submodules
> makes a great deal of sense. Then GDC and LDC can organize things as
> they need.


I didn't know there was such a thing as a super-project!

December 29, 2012
On Saturday, December 29, 2012 13:43:11 Walter Bright wrote:
> On 12/29/2012 1:40 PM, Russel Winder wrote:
> > I think having DMD, Druntime and Phobos as distinct Git repositories is right, which means that using a super-project such as https://github.com/carlor/dlang-workspace with the three as submodules makes a great deal of sense. Then GDC and LDC can organize things as they need.
> 
> I didn't know there was such a thing as a super-project!

You can integrate git repositories into other git repositories as submodules.

http://git-scm.com/book/en/Git-Tools-Submodules

- Jonathan M Davis
December 29, 2012
On Sat, 2012-12-29 at 13:49 -0800, Jonathan M Davis wrote:
> On Saturday, December 29, 2012 13:43:11 Walter Bright wrote:
> > On 12/29/2012 1:40 PM, Russel Winder wrote:
> > > I think having DMD, Druntime and Phobos as distinct Git repositories is right, which means that using a super-project such as https://github.com/carlor/dlang-workspace with the three as submodules makes a great deal of sense. Then GDC and LDC can organize things as they need.
> > 
> > I didn't know there was such a thing as a super-project!
> 
> You can integrate git repositories into other git repositories as submodules.
> 
> http://git-scm.com/book/en/Git-Tools-Submodules
> 
> - Jonathan M Davis


cf. https://github.com/russel/dlang-workspace/tree/submodules

-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@winder.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder