[bootstrappable] Re: GNU Mes 0.18 released

  • From: "Orians, Jeremiah (DTMB)" <OriansJ@xxxxxxxxxxxx>
  • To: "bootstrappable@xxxxxxxxxxxxx" <bootstrappable@xxxxxxxxxxxxx>
  • Date: Thu, 8 Nov 2018 16:17:09 +0000

I tried ./kaem.run, and it works for me. I then bootstrapped M2-Planet using 
bootstrap.sh and it works, and does not require "vm".
Good

To be honest, I am still trying to wrap my head around the current bootstrap 
to see which parts cannot be bootstrapped yet without "vm". 
Those would be:
Hex2, M1, kaem, blood-elf and M2-Planet

and the following files:
seed.M1 -- generated
blood-elf.M1 -- generated
 M1.M1 -- generated 
 hex2.M1 -- generated
 x86_defs.M1 -- hand written
libc-core.M1 -- hand written
ELF-i386-debug.hex2 - hand written
Entirely Correct

And so to finish the bootstrap without "vm", one needs to be able to 
bootstrap the generated files somehow, as well as the binaries. 
Actually no as the bootstrap can be an incremental process of eliminating the 
generated files with handwritten versions.
The Order of which would be:
Hex2 (in hex1 that is already written in hex0 (600ish lines of assembly))
M1 (Actually a subset in hex2 (900ish lines of assembly))
cc_x86 (in M1 assembly (5-6K lines of assembly))
M2-Planet (simply have cc_x86 build it)
Kaem (Built by M2-Planet; eliminates need for bash or make)
Blood-elf (Built by M2-Planet; generates Dwarf stubs to enable objdump and gdb 
to be easier to use)
Mes.c (Built by M2-Planet and we are done)

So one needs to convert hex2.c, M0-macro.c, and blood-elf_x86.c. 
Blood-elf is just used in the generation of dwarf stubs and can be eliminated 
by using the non-debug headers which are smaller but objdump -d stops working 
on them.

But what about the seed.M1 --- if I want to generate it without "vm", I don't 
think that can be done either, can it?
Seed.M1 needs a C compiler to be generated; its hand written equivalent is 
cc_x86.s in stage0
So not difficult to write at all but rather tedious (As is obvious from the 
implementation of cc_x86.s) [About a month of work]
(Simply replace each function in seed.M1 with a handwritten one; until done)

I also could convert the vm into hand written x86 M1-macro assembly provided I 
hammered on it for a month

But again I made lots of paths forward with lots of individual pieces for 
people to make that are well specified and can all be worked on in parallel by 
different people.

Once I complete the Mes.c bootstrap, I'll be going back and finishing off the 
x86 bootstrap and then ARM and finally build the hardware.

-Jeremiah

Other related posts: