Re: How does the bootstrap process work?
Bruce Mitchener <[email protected]> Thu, 12 Jun 2014 17:02:58 +0700
| Newsgroups | gmane.comp.lang.dylan.gwydion.devel |
|---|---|
| Message-ID | <CA+esKjOmHQGgK=OiN+SXf0w_T4fz+BEjJhx4kwmVK1+yg_QAVg@mail.gmail.com> |
--===============1289451855== Content-Type: multipart/alternative; boundary=f46d044402f45cbc9504fba0aa48 --f46d044402f45cbc9504fba0aa48 Content-Type: text/plain; charset=UTF-8 I replied in the wrong thread. On Thu, Jun 12, 2014 at 5:01 PM, Bruce Mitchener <[email protected]> wrote: > Thanks, I've done this in https://github.com/dylan-lang/opendylan/pull/775 > > - Bruce > > > > On Tue, Jun 10, 2014 at 5:04 PM, Bruce Hoult <[email protected]> wrote: > >> Presumably you're talking about Open Dylan, which unfortunately I know >> nothing about. >> >> However, the principles of any three stage bootstrap are pretty much the >> same. >> >> In the first stage, an existing compiler is used to build a compiler that >> understands the updated language. This new compiler is linked against the >> existing runtime library. >> >> In the second stage, the new compiler that understands the updated >> language is used to compile both itself and also the updated runtime >> library (which may use features that require the updated compiler). >> >> The third stage is essentially a check that the 2nd stage compiler works >> properly, and the output should be identical to that from the 2nd stage. >> >> Therefore, for example, syntax errors in the updated runtime library will >> only be detected in the 2nd stage build. As will logic errors in the >> updated compiler. >> >> >> >> On Tue, Jun 10, 2014 at 7:23 PM, Wim Vander Schelden <[email protected]> >> wrote: >> >>> Hi, >>> >>> I was playing around with some changes to the compiler, and I noticed my >>> errors only surfaced during the second stage. Previously, I always thought >>> the bootstrap compiler built the entire tree thrice, and only required >>> three builds to shake its dependencies on the installed compiler. >>> >>> That doesn't seem to be the case. Can someone explain the differences >>> between the three stages and what is built when? >>> >>> _______________________________________________ >>> hackers mailing list >>> [email protected] >>> https://lists.opendylan.org/mailman/listinfo/hackers >>> >>> >> >> _______________________________________________ >> hackers mailing list >> [email protected] >> https://lists.opendylan.org/mailman/listinfo/hackers >> >> > --f46d044402f45cbc9504fba0aa48 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">I replied in the wrong thread.</div><div class=3D"gmail_ex= tra"><br><br><div class=3D"gmail_quote">On Thu, Jun 12, 2014 at 5:01 PM, Br= uce Mitchener <span dir=3D"ltr"><<a href=3D"mailto:bruce.mitchener@gmail= .com" target=3D"_blank">[email protected]</a>></span> wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"><div dir=3D"ltr">Thanks, I've done this = in=C2=A0<a href=3D"https://github.com/dylan-lang/opendylan/pull/775" target= =3D"_blank">https://github.com/dylan-lang/opendylan/pull/775</a><span class= =3D"HOEnZb"><font color=3D"#888888"><div> <br></div><div>=C2=A0- Bruce</div><div><br></div></font></span></div><div c= lass=3D"HOEnZb"><div class=3D"h5"><div class=3D"gmail_extra"> <br><br><div class=3D"gmail_quote">On Tue, Jun 10, 2014 at 5:04 PM, Bruce H= oult <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" target=3D"_bl= ank">[email protected]</a>></span> wrote:<br><blockquote class=3D"gmail_qu= ote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex= "> <div dir=3D"ltr">Presumably you're talking about Open Dylan, which unfo= rtunately I know nothing about.<div><br></div><div>However, the principles = of any three stage bootstrap are pretty much the same.</div><div><br></div> <div>In the first stage, an existing compiler is used to build a compiler t= hat understands the updated language. This new compiler is linked against t= he existing runtime library.</div><div><br></div><div>In the second stage, = the new compiler that understands the updated language is used to compile b= oth itself and also the updated runtime library (which may use features tha= t require the updated compiler).</div> <div><br></div><div>The third stage is essentially a check that the 2nd sta= ge compiler works properly, and the output should be identical to that from= the 2nd stage.</div><div><br></div><div>Therefore, for example, syntax err= ors in the updated runtime library will only be detected in the 2nd stage b= uild. As will logic errors in the updated compiler.</div> <div><br></div></div><div class=3D"gmail_extra"><br><br><div class=3D"gmail= _quote"><div><div>On Tue, Jun 10, 2014 at 7:23 PM, Wim Vander Schelden <spa= n dir=3D"ltr"><<a href=3D"mailto:[email protected]" target=3D"_blank">dyl= [email protected]</a>></span> wrote:<br> </div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo= rder-left:1px #ccc solid;padding-left:1ex"><div><div><div dir=3D"ltr"><div>= <div>Hi,<br><br></div>I was playing around with some changes to the compiler, and I noticed my errors only surfaced during the second=20 stage. Previously, I always thought the bootstrap compiler built the=20 entire tree thrice, and only required three builds to shake its=20 dependencies on the installed compiler.<br> <br></div>That doesn't seem to be the case. Can someone explain the dif= ferences between the three stages and what is built when?</div> <br></div></div>_______________________________________________<br> hackers mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank">hackers@li= sts.opendylan.org</a><br> <a href=3D"https://lists.opendylan.org/mailman/listinfo/hackers" target=3D"= _blank">https://lists.opendylan.org/mailman/listinfo/hackers</a><br> <br></blockquote></div><br></div> <br>_______________________________________________<br> hackers mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank">hackers@li= sts.opendylan.org</a><br> <a href=3D"https://lists.opendylan.org/mailman/listinfo/hackers" target=3D"= _blank">https://lists.opendylan.org/mailman/listinfo/hackers</a><br> <br></blockquote></div><br></div> </div></div></blockquote></div><br></div> --f46d044402f45cbc9504fba0aa48-- --===============1289451855== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ hackers mailing list [email protected] https://lists.opendylan.org/mailman/listinfo/hackers --===============1289451855==--