<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On 11 August 2015 at 13:05, Martin Nowak via dmd-internals <span dir="ltr"><<a href="mailto:dmd-internals@puremagic.com" target="_blank">dmd-internals@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 08/10/2015 07:10 PM, Iain Buclaw wrote:<br>
> - Do we need to keep ddmd working with 2.068?<br>
><br>
> For the time being, yes, and for as long as possible.<br>
<br>
</span>Sticking to an old version of the compiler defeats a major reason to<br>
switch to self-hosting. By using D ourselves for a big project we'll<br>
resolve particular issues that'll come up. But if we cannot profit from<br>
solving those, this will have little impact.<br>
<br></blockquote><div><br></div><div>IMO, it only enforces that we don't immediately jump onto using new features introduced post-2.068 within the compiler so quickly.<br><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
So what is the major reason we need backwards compatibility for more<br>
than 1 version?<br>
After all you can always do the following.<br>
<br>
download2068<br>
foreach (ver; 2.069 .. 2.085)<br>
{<br>
git checkout ver<br>
buildWithPreviousVer<br>
}<br>
<br></blockquote><div><br><div>Because I operate around GCC releases, rather than DMD. In the 6-8
months that a GCC development cycle and release is done, there could be
many DMD releases during that time. If (the nonexistent) GDC-6.2 built
on 2.068 cannot build GDC-7.1 (2.072) or current GDC-8.0 development
snapshot (2.075), then I have a serious problem with upstream development.<br><br></div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
It seems to me the key problem is to guarantee that the above works,<br>
which is what I meant with testing compatibility.<br>
The minimum IMO would be the classical self-compiling check, and of<br>
course a rigorous test suite.<br>
<br>
buildWithPreviousVer<br>
test<br>
buildWithCurrentVer<br>
test<br>
buildWithCurrentVer <- binary must be equal to buildWithCurrentVer above<br>
test<br>
<br></blockquote><div><br></div><div>This cycle is what's done with GCC build process, if you change a few words around.<br><br></div><div>buildWithHostCompiler<br></div><div>bootstrap<br></div><div>buildWithBuildCompiler</div><div>bootstrap<br>buildWithBuildCompiler<br></div><div>Compare md5sum of second and third stage *.o files<br></div><div><br><br>Regards<br>Iain <br></div></div></div></div>