epsilon-devel
[Top][All Lists]
Advanced

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

[epsilon-devel] Next steps for Mes, stage0+? -- Re: You missed my later


From: Jan Nieuwenhuizen
Subject: [epsilon-devel] Next steps for Mes, stage0+? -- Re: You missed my later work
Date: Tue, 02 May 2017 08:17:05 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

>> 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?
>
> The idea is to make a sub-C compiler that supports only enough of the C
> language required to bootstrap your MES, which I then could hand convert
> to assembly and thus solve your lower bootstrapping problem.

Ah, and this is what you would need a separate cpp for?

>> 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.
>
> Use the tests included in tcc, as once you can compile all of them your
> compiler should support everything required to compile tcc.

Thanks for the pointer, I missed that.  I have looked into that
yesterday.  There are 55 tests and Mes has two obvious reasons why none
of them work: we need to supply some headers <stdio.h>, <string.h>, and
they are using printf in all tests.

I am curious to see how far Mes will get :-)

>> 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. 
>
> Absolutely agreed. And in the mean time, I'll be making tools to help
> your bootstrap become ever easier. I'm looking at following the C
> evolutionary path and implementing the META II compiler compiler and a
> couple similiar tools.

It's good to hear my plan makes sense to you (see below).  What's the
META II compiler compiler?

>> 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...
>
> How about an easier problem? If your mes was written in lisp, why not
> write a lisp compiler capable of compiling the lisp and thus solving the
> performance problem.

Indeed, that would be great!  Writing mes.c in Scheme fairly easy of
course; I've done almost that a couple of times already.  Being able to
compile [some] Scheme to native code would be very nice in itself too,
not just for bootstrapping.

> As once an interpreter is made, you are already 30% done writing a
> working compiler.

I was hoping for that, I still need some inspiration here.

>> 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 ;-)
>
> How is this for some answers.

Yes, thanks a lot!  When I started Mes it looked like an almost
impossible task and what needs to be done can still look daunting.
Questions are great, but some balancing with answers is very helpful.

> We are not smarter than all of the great minds of computer science that
> have used teams of hundreds to create the foundation of tools upon which
> we now stand.
>
> But we have something they didn't... The answers of what worked well.

Yes, I see.  That's the knowledge that must somehow regain.  It's
probably a good thing that not everything works well :-)

> From that I assert that the correct course of action for us is the
> following:
> Build simple, easy and fun tools that simplify the task of solving the
> problem.

Check!

> Your lisp interpreter, actually is closer to becoming a lisp compiler
> than mine is. Should that interest you, it would solve your performance
> problems.

Hmm...It would make sense to write this lisp compiler in lisp, of
course.  No need to write it in C.  Hmm.  I wonder if someone would want
to help transforming the mes.c interpreter into a mes.scm compiler?

> Thank you as always,

Greetings,
janneke

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



reply via email to

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