<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 3 November 2015 at 12:57, drug via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 03.11.2015 14:11, Iain Buclaw via Digitalmars-d wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
On 3 November 2015 at 11:35, Daniel Murphy via Digitalmars-d<br></span><div><div class="h5">
<<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a> <mailto:<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>>> wrote:<br>
<br>
    On 3/11/2015 7:52 PM, drug wrote:<br>
<br>
        On 03.11.2015 11:22, Johannes Pfau wrote:<br>
<br>
<br>
            I guess it's to be compatible with the latest DMD, LDC and<br>
            GDC. GDC<br>
            currently only provides the 2.066.1 frontend.<br>
<br>
        A bit offtopic - will the situation change with ddmd accepted? I<br>
        mean<br>
        the situation with different frontend version in different<br>
        compilers.<br>
<br>
<br>
    While DDMD does not have any direct effect on our ability to keep<br>
    the three compilers synced, some of the cleanup work that has been<br>
    done does help.<br>
<br>
<br></div></div><span class="">
Whilst other clean-up work has destroyed years of stable compatibility<br>
between different 'ends'.  ;-)<br>
</span></blockquote>
Hmm, I asked because I've heard that using ddmd would help with keeping the compilers synced and we would have the same version of frontend everywhere...<br>
</blockquote></div><br></div><div class="gmail_extra">Well, how would that work?  :-)<br><br></div><div class="gmail_extra">What you've probably misheard is half of a phrase.  Moving to towards ddmd is not to be confused with moving towards a shared 'frontend' codebase, and is the first half of the correct sentence.  The second half is that even then, that has no guarantee of keeping things in sync without also integrating other 'ends' into the CI process.<br><br>This requires that we set-up an infrastructure where:<br><br>- New PRs are tested against all compilers before merging.  This not to be confused with our current set-up where all compilers build DMD.  Specifically new changes upstream must:<br>  1. Be able to apply the change cleanly in their local repositories<br>  2. Build themselves without error.<br>- We then need another process in place to keep each end in sync after changes upstream are applied.<br><br></div><div class="gmail_extra"></div><div class="gmail_extra">It was hoped that moving towards ddmd would force a lot of the ABI-specific code to be moved into Target or Port (host) interfaces that are agnostic to the backend.  There are still many target-specific areas where this is not the case, and on top of that there are regressions in the host-specific interfaces.<br><br></div><div class="gmail_extra">In short, there will always be a heavy maintenance burden regardless of what language we're written in. :-)<br><br></div><div class="gmail_extra">Iain<br></div></div>