dmd build instructions from source don't work anymore

Laeeth Isharc via Digitalmars-d digitalmars-d at puremagic.com
Tue May 12 10:32:44 PDT 2015


On Tuesday, 12 May 2015 at 15:03:59 UTC, Andrei Alexandrescu 
wrote:
> On 5/12/15 4:47 AM, Daniel Murphy wrote:
>> "Andrei Alexandrescu"  wrote in message
>> news:mis2ub$j0s$1 at digitalmars.com...
>>
>>> Can we automate installation of the last C++-based dmd via 
>>> scripting?
>>> -- Andrei
>>
>> Can't people just use dvm?  I suppose we could add a makefile 
>> target
>> that grabs the zip or something...
>
> dvm is fine as long as its installation itself is automated.
>
> Sadly I just hit this matter head-on after updating dmd last 
> night. It seems to me unacceptable to leave the build process 
> flapping in the wind like that. Guess I'll need to work on that.
>
>
> Andrei

Automating the installation of the last C++-based dmd is one 
(good and necessary thing).

But either I am mistaken, or in future years you shall still face 
a choice between manually hacking up Phobos and DMD so they 
compile under this last C++-based dmd (a gulf which will widen 
increasingly) or you need to iteratively build compilers to cross 
the multiple-version bridges where changes to the source of 
dmd+phobos mean that they no longer compile with the last but one 
version.


Thought experiment (I am making up the numbers, and in practice 
the gap between incompatible compilers and dmd+phobos source will 
be several releases):

suppose the last C++-based dmd is 2.05.
and suppose 2.05 dmd compiles 2.06 but not 2.07
and suppose 2.06 dmd compiles 2.07 but not 2.08

If you are porting dmd to a new platform (and I suppose this is 
true for all other D compilers since they, too, will move to 
using ddmd), then it's not just enough to download dmd 2.05.

You have to download 2.05, compile it using a C++ compiler.  Now 
you can download the 2.06 source, compile it so you have a dmd 
2.06.  You can't compile the latest release 2.08 so you either 
need to hack the source, or download 2.07, compile it with 2.06 
and _then_ compile 2.08.

Over time this will become more of a nuisance, because it's not 
necessarily the case on a new platform that it all just works.  
So unless I have got it wrong, it's worth changing tools now so 
the bootstrap from the last c++ dmd to the latest ddmd is done 
for you.


More information about the Digitalmars-d mailing list