[bootstrappable] Re: prototyping the full source bootstrap path

  • From: ludo@xxxxxxx (Ludovic Courtès)
  • To: Jan Nieuwenhuizen <janneke@xxxxxxx>
  • Date: Mon, 20 Nov 2017 22:55:56 +0100

Jan Nieuwenhuizen <janneke@xxxxxxx> skribis:

Ricardo Wurmus writes:

Ludovic Courtès <ludo@xxxxxxx> writes:

So the next steps in the dependency graph are:

  mes-boot -> mescc -> tinycc -> gcc@4.7 -> gcc

Do I get this right?

That has been my idea for a long time, yes...but it may not be feasible,
wise or most fun.  It may not be feasible because Mes Scheme is just
tooo slow.  We could look into fixing that, or try to avoid it by

It’s not clear yet.  An alternative approach is to try to build Guile
first by using mes as the bootstrap Scheme interpreter.

...yeah bootstrapping into to Guile Scheme early!  Something like

   mes-boot -> mescc -> mini-guile -> mescc+/guilecc -> gcc@4.7

It wouldn’t really help in that mescc+/guilecc is just as capable as the
earlier mescc, no?

That's a very tempting idea that Ricardo came up with in Berlin and we
even hacked quite a bit on this.  To be precise, we looked if Mes could
run ice-9/eval.scm.

One of the targets that had on my list for a long time is
libguile/eval.c.  Now I'm starting to wonder, what would be the fastest
path to a minimal Guile, and what would we need for that?  IIUC, Guile
does not run without at least some bits of libguile, such as
libguile/strings.c.  Thoughts?

Indeed, Guile needs a C compiler.

In general, we need a C compiler early on… unless we have replacements
for Bash, Coreutils, etc. written in Guile or Mes, which would allow us
to strip bits of the tip of the DAG.

Thanks,
Ludo’.

Other related posts: