[Top][All Lists]

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

Re: You missed my later work

From: Jan Nieuwenhuizen
Subject: Re: You missed my later work
Date: Thu, 27 Apr 2017 14:55:41 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

[cc: Matt, author of Nyacc]

> Well now you could have told them we already had the forth
> but none of the people in the forth community bothered to build upon it

You created a fully bootstrappable LISP and FORTH, wow!

That would make my answer easier; I started with Scheme/Lisp because
you have to start somewhere, and I like that better.

> For example break up the C compiler problem into pieces, for example
> have a seperate C preprocessor, a single file C compiler that only
> produces assembly and just leverage the already existing assembly
> infrastructure I already made.

That could open up new possibilities.  However, there are so many
choices, is this going to help us get forward right now?

> I honestly feel that is absolutely something that has to be done.
> However, you'll have to constrain yourself to what language features in
> C that you use to make the path from what I have completed to what is
> required possible.
> Some questions I have are as follows:
> 1) Could the C preprocessor componet of Nyacc be isolated and simplified
> enough to run on stage0's lisp interpreter and solve the C preprocessor
> question?

@Matt: would separating the cpp part from Nyacc be feasible?  Do you
also think that's helpful?

> 2) is cc500 or C in 4 functions good enough to bootstrap mescc or do we
> need to extend on of them or find/make a different C compiler that could
> be compiled by one of them which could get the job done?

Thanks for the pointers!  I just released Mes 0.5, which is now fully
self hosting.  We would need to investigate.  However, if we restrict
the boostrapping path to either Mes or stage0+Mes, how could this help?

> 3) has anyone looked at stripping tcc down to only using integers,
> structs, bytes and strings and outputting assembly instead of a binary?

Compiling tcc is near the top of my priority list -- just below
releasing Mes 0.5 (done) and discussing the next step (doing that now).
So if nothing changes, I'll be working to compile tcc, any help or
insights to make that easier are much appreciated.

> 4) or have we become too focused on getting C working that we missed
> implementing another language (perhaps PL/0 or algol w) might end up
> saving us a bunch of work?

Posibly.  Christopher Webber mentioned PreScheme to me so I guess he's
a fan.  Mes is currently prototyped in C, if we could move that to
[Pre]Scheme that would be great!

However, my first priority is to close the bootstrap loop, i.e. get
either GCC or Guile compiled from what's Mes now. 

> 5) Are there any languages for which it would be easier to implement C
> than assembly or simpler than trying to parse C in S-expressions?

Mes/Scheme? ;-)  I'm not sure that i understand thihs question.

> 6) Are there any primitives I could implement into my Lisp that would
> make C parsing trivial?

The one thing holding me back to attempt glueing your stage-N LISP to
Mes is performance (and well, being terribly busy working to release Mes
:-).  Currently mescc takes 2h30' to compile itself.  Compiling tcc is
still a lot of work and is 10x as big...

I fear that running mes on stage-N's LISP adds another 2 factors of
perfomance penalty...

> 7) What else could I be missing about this problem?

It seems you're asking all the right questions...THANK!  However,
although this full source bootstrapping endeavor has been a lot of fun
until now, one of the biggest difficulties has been to reduce the number
of open questions...almost anything seems possible.  So I was hoping to
get more answers and all I get is more questions ;-)

Thanks, greetings

Jan Nieuwenhuizen <address@hidden> | GNU LilyPond
Freelance IT | AvatarĀ®  

reply via email to

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