<p><br>
On Feb 28, 2013 1:31 AM, "Walter Bright" <<a href="mailto:newshound2@digitalmars.com">newshound2@digitalmars.com</a>> wrote:<br>
><br>
> On 2/27/2013 4:57 PM, H. S. Teoh wrote:<br>
>><br>
>> How will this work with the continual stream of fixes that the current<br>
>> C++-based compiler is getting? I assume we're not just going to put DMD<br>
>> development on hold.<br>
><br>
><br>
> I've done many projects consisting of converting a medium sized code base from one language to another. The way that works is to do it incrementally. Incrementally means:<br>
><br>
> 1. at each step (i.e. pull request) we will have a fully functioning D compiler that passes its test suite<br>
><br>
> 2. there is no divergence in code bases because there is not a divergent code base.<br>
><br>
><br>
>> Also, wouldn't this be a good time to review some of the current designs<br>
>> in DMD that may be hampering the full implementation of features that<br>
>> we'd like, such as discrepancies with TDPL, etc.? Would it make sense to<br>
>> redesign some of the code currently causing hard-to-fix issues as we're<br>
>> porting that part of DMD into D? It seems a bit counterproductive to<br>
>> simply transcribe the current buggy code into D, only to rewrite it<br>
>> later when (if) we finally get round to fixing it.<br>
><br>
><br>
> My experience chiming in - never ever ever attempt to refactor while translating. What always happens is you wind up with a mess that just doesn't work.<br>
><br>
><br>
><br>
>> Finally, I think somebody has brought up the idea of "freezing" a<br>
>> particular subset of D that the D compiler can use in its own code,<br>
>> preferably a reasonably simple subset that is safe from breaking changes<br>
>> down the road (it would be pathetic if a breaking change causes the<br>
>> compiler to be unable to compile itself, because the source code uses a<br>
>> language construct that was later deemed to need redesign)g . As DMD is<br>
>> ported over to D, it should be restricted to using only this subset of<br>
>> the language, so that it does not hamper future developments of the<br>
>> language unnecessarily.<br>
><br>
><br>
> Experience chiming in - a successful model is that the HEAD is compiled by the previous official release of D.<br>
></p>
<p>Once HEAD is compiled by the previous release (or system D compiler), it might be a good practice for HEAD to compile itself too. Then this compiler built by HEAD will then build the library. </p>
<p>Regards<br>
Iain</p>