From: ludo@gnu.org (Ludovic Courtès)
To: Jookia <166291@gmail.com>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: Removing compilers that cannot be bootstrapped
Date: Tue, 22 Mar 2016 17:25:52 +0100 [thread overview]
Message-ID: <87bn66tr73.fsf@gnu.org> (raw)
In-Reply-To: <20160322095628.GA13538@novena-choice-citizen.lan> (Jookia's message of "Tue, 22 Mar 2016 20:56:28 +1100")
Jookia <166291@gmail.com> skribis:
> On Mon, Mar 21, 2016 at 11:48:40PM +0100, Ludovic Courtès wrote:
>> Often, in their implementation history, compilers are boostrapped from
>> something else initially, and only later to they become self-hosted and
>> unbootstrappable.
>>
>> So in theory, it’d be possible to find, say, an old-enough GHC that only
>> requires a C compiler (?), and use that to build the next version and so
>> on, until we reach the latest version. I suspect the same applies to
>> many compilers.
>
> I'm not sure about this. Bootstrapping older compilers means there's often less
> support for the platform you're on, which means we'll end up in a situation
> where we're bootstrapping from machines and cross-compiling, and I forsee the
> problem being that we'll have to rely on nonfree code or machines as our huge
> backhaul in a decade where we're on some cool free hardware RISC architecture.
>
> For instance, to run GHC on ARM you can only use a recent GHC, all the old
> versions didn't support it. Sure you could go from C to get an old GHC on ARM,
> but it wouldn't have support for outputting ARM assembly.
Good point, indeed.
>> For GCC, an idea discussed at
>> <https://reproducible-builds.org/events/athens2015/bootstrapping/> would
>> be to build GCC 4.7 (the last version written in plain C) with something
>> more auditable like TinyCC, and then use this g++ 4.7 to build whatever
>> GCC version we want. Again, sounds like it should work, but we need to
>> actually try.
>
> Sounds interesting, and even better if we could compile the rest of the
> bootstrap with just TinyCC.
Yes, though we need a C++ compiler anyway to build current GCCs.
>> BTW, the “good news” is that more and more compilers build upon LLVM,
>> and for those there’s no bootstrapping problem if we take the C++
>> compiler for granted.
>
> Is this true? I know a lot of compilers *use* LLVM as a backend, but not sure
> about their frontends.
Right, it may be that front-ends are still mostly written in the target
language.
Ludo’.
next prev parent reply other threads:[~2016-03-22 16:26 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-21 17:54 Removing compilers that cannot be bootstrapped Thompson, David
2016-03-21 19:15 ` Taylan Ulrich Bayırlı/Kammer
2016-03-21 19:22 ` Taylan Ulrich Bayırlı/Kammer
2016-03-21 19:32 ` Andreas Enge
2016-03-21 22:43 ` rain1
2016-03-22 16:23 ` Ludovic Courtès
2016-03-21 22:48 ` Ludovic Courtès
2016-03-22 9:56 ` Jookia
2016-03-22 16:25 ` Ludovic Courtès [this message]
2016-03-22 14:57 ` Eric Bavier
2016-03-22 16:22 ` Ludovic Courtès
2016-03-22 22:29 ` Christopher Allan Webber
2016-03-23 22:12 ` Ludovic Courtès
2016-03-23 22:49 ` Christopher Allan Webber
2016-03-24 3:11 ` Leo Famulari
2016-03-25 23:08 ` Ludovic Courtès
2016-03-26 0:22 ` Leo Famulari
2016-03-26 6:40 ` Chris Marusich
2016-03-26 6:55 ` Chris Marusich
2016-03-26 9:02 ` Jookia
2016-03-26 14:05 ` Alex Vong
2016-03-26 8:12 ` Ricardo Wurmus
2016-03-26 9:23 ` Jookia
2016-03-26 14:31 ` Ludovic Courtès
2016-03-26 17:19 ` Christopher Allan Webber
2016-03-26 6:51 ` John Darrington
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87bn66tr73.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=166291@gmail.com \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).