[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Removing compilers that cannot be bootstrapped
From: |
Ludovic Courtès |
Subject: |
Re: Removing compilers that cannot be bootstrapped |
Date: |
Tue, 22 Mar 2016 17:25:52 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Jookia <address@hidden> 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’.
- Removing compilers that cannot be bootstrapped, Thompson, David, 2016/03/21
- Re: Removing compilers that cannot be bootstrapped, Taylan Ulrich Bayırlı/Kammer, 2016/03/21
- Re: Removing compilers that cannot be bootstrapped, Ludovic Courtès, 2016/03/21
- Re: Removing compilers that cannot be bootstrapped, Jookia, 2016/03/22
- Re: Removing compilers that cannot be bootstrapped,
Ludovic Courtès <=
- Re: Removing compilers that cannot be bootstrapped, Eric Bavier, 2016/03/22
- Re: Removing compilers that cannot be bootstrapped, Christopher Allan Webber, 2016/03/22
- Re: Removing compilers that cannot be bootstrapped, Ludovic Courtès, 2016/03/23
- Re: Removing compilers that cannot be bootstrapped, Christopher Allan Webber, 2016/03/23
- Re: Removing compilers that cannot be bootstrapped, Leo Famulari, 2016/03/23
- Re: Removing compilers that cannot be bootstrapped, Ludovic Courtès, 2016/03/25
- Re: Removing compilers that cannot be bootstrapped, Leo Famulari, 2016/03/25
- Re: Removing compilers that cannot be bootstrapped, Chris Marusich, 2016/03/26
- Re: Removing compilers that cannot be bootstrapped, Chris Marusich, 2016/03/26