[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: on bootstrapping: introducing Mes
From: |
Ludovic Courtès |
Subject: |
Re: on bootstrapping: introducing Mes |
Date: |
Tue, 21 Jun 2016 22:38:22 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Jan Nieuwenhuizen <address@hidden> skribis:
> Ludovic Courtès writes:
[...]
>> From a bootstrapping viewpoint, since Mes is in C, we’re back to the
>> same problem we have with Guile. :-) Guile has an interpreter written
>> in C, for bootstrapping purposes, and it’s capable of running any kind
>> of Scheme code, I think, including the full macro expander.
>
> Ah. I possilby did not make myself clear --that or I don't understand
> the problem. The C interpreter is now 900 lines and I hope to simplify
> it into about half. I intend to make it so tiny that it can be easily
> implemented in annotated hex, so that we only need OriansJ's hex
> assembler.
>
> So the idea is to go from one small verifyable binary straight into
> LISP and build a tiny C compiler on top of that.
I see, that makes sense. libguile/{eval,memoize}.c alone is 1,900+
lines, and it relies on other parts of libguile, as well as libgc. So
in that sense, Mes is quite an achievement, and probably better suited
to make a small binary!
>> To make the bootstrap Guile smaller, maybe we could remove .go files
>> from it and build them as the initial step. That would be comparable to
>> the strategy you suggest, I think.
>
> It's not so much about smaller per se, but about making the initial
> binary we have to trust so small that it can be inspected byte-for-byte.
> Not sure yet if that's feasible or helpful, but as you guessed it's fun :-)
I understand now.
Thanks for explaining!
Ludo’.