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">&lt;<a href=3D"mailto:bruce.mitchener@gmail=
.com" target=3D"_blank">[email protected]</a>&gt;</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&#39;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">&lt;<a href=3D"mailto:[email protected]" target=3D"_bl=
ank">[email protected]</a>&gt;</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&#39;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">&lt;<a href=3D"mailto:[email protected]" target=3D"_blank">dyl=
[email protected]</a>&gt;</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&#39;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==--