guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bootstrappable] Re: prototyping the full source bootstrap path


From: Jan Nieuwenhuizen
Subject: Re: [bootstrappable] Re: prototyping the full source bootstrap path
Date: Mon, 20 Nov 2017 19:41:56 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)

Ricardo Wurmus writes:

> Ludovic Courtès <address@hidden> writes:
>
>> So the next steps in the dependency graph are:
>>
>>   mes-boot -> mescc -> tinycc -> address@hidden -> 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 -> address@hidden

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?

> Also: I wonder if we can simplify these bootstrap packages in Guix, so
> that they can be built with even fewer build-time features.

Yeah, the mean reason to do it in Guix packages is that it becomes
impossible to cheat.  However, coding the bootstrap path in Guix means
that we depend on some form of Guile...hmm.

janneke

-- 
Jan Nieuwenhuizen <address@hidden> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]