[M3devel] two questions on bootstrapping the compiler
Tony Hosking
hosking at cs.purdue.edu
Wed Jan 13 03:30:49 CET 2010
On 12 Jan 2010, at 21:23, Coleburn, Randy wrote:
> Ok, I thought I understood this, but now I’m not sure.
>
> I had trouble rebuilding everything due to the recent changes. So, I ran Jay’s upgrade.py to see what it does.
>
> I find that upgrade.py does some housekeeping with the CFGs, then builds and ships the following 11 packages:
> package C:\cm3\Sandbox\m3-win\import-libs
> package C:\cm3\Sandbox\m3-libs\sysutils
> package C:\cm3\Sandbox\m3-sys\m3middle
> package C:\cm3\Sandbox\m3-sys\m3objfile
> package C:\cm3\Sandbox\m3-sys\m3linker
> package C:\cm3\Sandbox\m3-sys\m3back
> package C:\cm3\Sandbox\m3-sys\m3staloneback
> package C:\cm3\Sandbox\m3-sys\m3front
> package C:\cm3\Sandbox\m3-sys\m3quake
> package C:\cm3\Sandbox\m3-sys\cm3
> package C:\cm3\Sandbox\m3-tools\m3bundle
>
> Note that “m3staloneback” and “m3bundle” are not listed as being part of the “front” group in pkginfo.txt.
>
> Next, upgrade.py does some more housekeeping, then builds and ships the following 14 packages:
> package C:\cm3\Sandbox\m3-win\import-libs
> package C:\cm3\Sandbox\m3-libs\m3core
> package C:\cm3\Sandbox\m3-libs\libm3
> package C:\cm3\Sandbox\m3-libs\sysutils
> package C:\cm3\Sandbox\m3-sys\m3middle
> package C:\cm3\Sandbox\m3-sys\m3objfile
> package C:\cm3\Sandbox\m3-sys\m3linker
> package C:\cm3\Sandbox\m3-sys\m3back
> package C:\cm3\Sandbox\m3-sys\m3staloneback
> package C:\cm3\Sandbox\m3-sys\m3front
> package C:\cm3\Sandbox\m3-sys\m3quake
> package C:\cm3\Sandbox\m3-sys\cm3
> package C:\cm3\Sandbox\m3-tools\m3bundle
> package C:\cm3\Sandbox\m3-sys\mklib
>
> The difference here is that “m3core” and “libm3” (which are in the “front” group) are added back to the list.
>
> Q1: So, am I to infer that in the process of “bootstrapping” a new compiler using an old one, that you have to leave out “m3core” and “libm3” on the first pass, or is there some other logic going on here?
It has to do with bootstrapping the compiler to implement feature FOO. Suppose that FOO is implemented in a new version of the compiler, and you also want to use it in the language libraries. First you build a compiler that can compiler FOO (using the old libraries). Then you make the FOO change to the libraries, and recompile the compiler against the new libraries. Now both libraries and compiler are FOO-capable. Carry on...
> Q2: Next, if “m3staloneback” and “m3bundle” are needed, shouldn’t they be listed as part of the “front” group in pkginfo.txt?
They aren't actually needed here. Not sure why they are included. Nor is import-libs unless on Windows perhaps.
>
> Regards,
> Randy Coleburn
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20100112/897e86ba/attachment-0002.html>
More information about the M3devel
mailing list