[Top][All Lists]

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

Re: on using 8cc in reproducible bootstrap process

From: Rui Ueyama
Subject: Re: on using 8cc in reproducible bootstrap process
Date: Sun, 18 Jun 2017 15:39:38 -0700

Hi Jan,

Thank you for your interest in 8cc. 8cc is indeed a C compiler that
supports most C11 features. However, I don't think it is being used
seriously by anyone, so honestly I'd doubt it is a good choice to be used
as part of your bootstrapping process. tcc have been much more tested.

The most interesting use of 8cc is to write a C++11 constexpr compile-time
C compiler <> which is built on top
of ELVM <>, but that is still a toy program.

On Sun, Jun 18, 2017 at 6:52 AM, Jan Nieuwenhuizen <address@hidden> wrote:

> Hi!
> I am working to create a full source bootstrap path for GuixSD[0].  I
> have written Mes[1] a mutual self-hosting Scheme interpreter prototype
> in C and a C compiler (Mescc) in Scheme.
> The prototype Scheme interpreter in C will be redone in stage0's hex2[2]
> at an opportune moment which will give us a real simple C compiler
> (Mescc) that does not depend on any binary.
> The next leap forward is to compile gcc.  I have been looking at
> compiling Tinycc[3].  A couple of weeks ago, rain1 has been working with
> the tcc developers to succeed in compiling gcc using tcc[4].
> However, tcc uses many esoteric language features which makes
> bootstrapping using tcc pretty [unnecessarily?] difficult.
> That is why I was happily surprised to read about 8cc's advertised
> bootstrappability
>     8cc is a compiler for the C programming language. It's intended to
>     support all C11 language features while keeping the code as small
>     and simple as possible.
> However, I'm currently stuck on 8cc's use of anonymous unions and 8cc's
> anonymous structs in unions.  To me, as a fresh C compiler writer, those
> are pretty esoteric language features too.  The idea of having to
> implement those discourages me a bit.
> Do you think 8cc should be used in my efforts to create a full source
> bootstrap path (rather than tinycc, or as a stepping stone to tcc)?
> If so, I can think of two strategies
>   1) a. implement anonymous unions in Mescc
>      b. implement anonymous structs (inside anonymous unions) in Mescc
>   2) remove anonymous unions and structs from 8cc

That said, I don't think anonymous structs/unions are not that tricky. It
shouldn't be hard to support the feature. If it is the only missing feature
in your compiler, you might want to add that.

> which one would you advise, or do you have a better alternative?  Should
> I 1) learn about anonymous structs and make Mescc richer, or would you
> like to (help and) take patches for 2)?
> Greetings,
> janneke
> [0]
> [1]
> [2]
> [3]
> [4]
> 2017-05/msg00103.html
> --
> Jan Nieuwenhuizen <address@hidden> | GNU LilyPond
> Freelance IT | AvatarĀ®

reply via email to

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