unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* Mes 0.8 released
@ 2017-06-25 16:49 Jan Nieuwenhuizen
  2017-06-26  9:22 ` Neil Jerram
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Nieuwenhuizen @ 2017-06-25 16:49 UTC (permalink / raw)
  To: guile-user; +Cc: guix-devel, epsilon-devel

I am pleased to announce the release of Mes 0.8, representing 34
commits over 3 weeks.  Mescc now produces object files in the hex2
ascii output format compatible with the stage0 linker.

Special thanks to Jeremiah Orians for support with MESCC_Tools and
hex2, more goodness to follow soon!

* About

    Mes aims to create full source bootstrapping for GuixSD: an
    entirely source-based bootstrap path.  The target is to [have
    GuixSD] boostrap from a minimal, easily inspectable binary --that
    should be readable as source-- into something close to R6RS
    Scheme.

    It currently consists of a mutual self-hosting [close to Guile-]
    Scheme interpreter prototype in C and a Nyacc-based C compiler in
    [Guile] Scheme.

    The Scheme interpreter prototype (mes.c) has a Garbage Collector,
    a library of loadable Scheme modules-- notably Dominique Boucher's
    LALR[1], Pre-R6RS portable syntax-case[2] with R7RS ellipsis, Matt
    Wette's Nyacc[3] Guile's PEG[4] --and test suite just barely
    enough to support a simple REPL (repl.mes) and simple C-compiler
    (mescc.mes) that can produce the second initial ELF binary from
    binary from mes.c, in only about 2h30'.

    Mes was inspired by The Maxwell Equations of Software: LISP-1.5[5]
    -- John McCarthy page 13, GNU Guix's[6] source/binary packaging
    transparency and Jeremiah Orians's stage0[7] bootstrap project.

* Download

    git clone https://gitlab.com/janneke/mes

    wget https://gitlab.com/janneke/mes/repository/archive.tar.gz?ref=v0.8 -O mes-0.8.tar.gz

Mes runs from the source tree and can also be built, packaged and
installed in Guix[SD] by the usual

    guix package -f guix.scm

* Changes in 0.8 since 0.7
 ** Mescc
 *** Mescc now depends on the hex2 linker from MESCC_Tools[9].
 Direct ELF output support has been removed.
 ELF symbol and string table creation has been removed.
 *** Mescc now has experimental annotation support for hex2.
 *** Mescc has experimental annotation support for hex2.
 *** Mescc has been simplified by leveraging use labels in hex2 output.
 *** Mescc now supports continue in loops.
 *** Mescc now compiles to hex2 object files.
 ** Language
 *** 1 new function
 list-index.

Greetings,
janneke

[1] https://github.com/schemeway/lalr-scm
[2] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
[3] https://www.nongnu.org/nyacc/
[4] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[6] https://www.gnu.org/software/guix/
[7] https://github.com/oriansj/stage0
[8] https://gitlab.com/janneke/tinycc
[9] https://github.com/oriansj/MESCC_Tools

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Mes 0.8 released
  2017-06-25 16:49 Mes 0.8 released Jan Nieuwenhuizen
@ 2017-06-26  9:22 ` Neil Jerram
  2017-06-26 10:30   ` Jan Nieuwenhuizen
  0 siblings, 1 reply; 4+ messages in thread
From: Neil Jerram @ 2017-06-26  9:22 UTC (permalink / raw)
  To: Jan Nieuwenhuizen, guile-user; +Cc: guix-devel, epsilon-devel

Hi Jan,

In your bootstrap path, what is the step after Mes?‎ I guess it would be using mescc to compile some C program - but if that is right, which program? 

Regards - Neil 


  Original Message  
From: Jan Nieuwenhuizen
Sent: Sunday, 25 June 2017 17:40
To: guile-user@gnu.org
Cc: guix-devel@gnu.org; epsilon-devel@gnu.org
Subject: Mes 0.8 released

I am pleased to announce the release of Mes 0.8, representing 34
commits over 3 weeks. Mescc now produces object files in the hex2
ascii output format compatible with the stage0 linker.

Special thanks to Jeremiah Orians for support with MESCC_Tools and
hex2, more goodness to follow soon!

* About

Mes aims to create full source bootstrapping for GuixSD: an
entirely source-based bootstrap path. The target is to [have
GuixSD] boostrap from a minimal, easily inspectable binary --that
should be readable as source-- into something close to R6RS
Scheme.

It currently consists of a mutual self-hosting [close to Guile-]
Scheme interpreter prototype in C and a Nyacc-based C compiler in
[Guile] Scheme.

The Scheme interpreter prototype (mes.c) has a Garbage Collector,
a library of loadable Scheme modules-- notably Dominique Boucher's
LALR[1], Pre-R6RS portable syntax-case[2] with R7RS ellipsis, Matt
Wette's Nyacc[3] Guile's PEG[4] --and test suite just barely
enough to support a simple REPL (repl.mes) and simple C-compiler
(mescc.mes) that can produce the second initial ELF binary from
binary from mes.c, in only about 2h30'.

Mes was inspired by The Maxwell Equations of Software: LISP-1.5[5]
-- John McCarthy page 13, GNU Guix's[6] source/binary packaging
transparency and Jeremiah Orians's stage0[7] bootstrap project.

* Download

git clone https://gitlab.com/janneke/mes

wget https://gitlab.com/janneke/mes/repository/archive.tar.gz?ref=v0.8 -O mes-0.8.tar.gz

Mes runs from the source tree and can also be built, packaged and
installed in Guix[SD] by the usual

guix package -f guix.scm

* Changes in 0.8 since 0.7
** Mescc
*** Mescc now depends on the hex2 linker from MESCC_Tools[9].
Direct ELF output support has been removed.
ELF symbol and string table creation has been removed.
*** Mescc now has experimental annotation support for hex2.
*** Mescc has experimental annotation support for hex2.
*** Mescc has been simplified by leveraging use labels in hex2 output.
*** Mescc now supports continue in loops.
*** Mescc now compiles to hex2 object files.
** Language
*** 1 new function
list-index.

Greetings,
janneke

[1] https://github.com/schemeway/lalr-scm
[2] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
[3] https://www.nongnu.org/nyacc/
[4] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[6] https://www.gnu.org/software/guix/
[7] https://github.com/oriansj/stage0
[8] https://gitlab.com/janneke/tinycc
[9] https://github.com/oriansj/MESCC_Tools

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Mes 0.8 released
  2017-06-26  9:22 ` Neil Jerram
@ 2017-06-26 10:30   ` Jan Nieuwenhuizen
  2017-06-26 23:34     ` Neil Jerram
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Nieuwenhuizen @ 2017-06-26 10:30 UTC (permalink / raw)
  To: Neil Jerram; +Cc: guix-devel, guile-user, epsilon-devel

Neil Jerram writes:

Hi Neil!

> In your bootstrap path, what is the step after Mes?‎ I guess it would
> be using mescc to compile some C program - but if that is right, which
> program? 

Indeed.  Short answer: I don't know.  Do you have something in mind?

We haven't decided yet and are still exploring possibilities.  We are
looking for the target that requires the least amount of work to get us
close the bootstrap path to gcc.

The most obvious candidate to compile with mescc is tinycc.  rain1 has
worked with the tinycc and succeeded in compiling GCC 4.7.0 using
tinycc[0].

However, tinycc uses C constructs that mescc does not support [yet] and
libc functions that mescc's libc does not have.

So we are also considering other candidates such as 8cc, pcc, the ack,
cc500, gcc-2.95 (what about earlier gcc's?).

Another possible first target for Mescc could be libguile/eval.c ;-) and
develop a fork/sister of mescc as guilecc.

Greetings,
janneke

[0] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Mes 0.8 released
  2017-06-26 10:30   ` Jan Nieuwenhuizen
@ 2017-06-26 23:34     ` Neil Jerram
  0 siblings, 0 replies; 4+ messages in thread
From: Neil Jerram @ 2017-06-26 23:34 UTC (permalink / raw)
  To: Jan Nieuwenhuizen; +Cc: guix-devel, guile-user, epsilon-devel

Hi Jan,

Thanks for your answer. I'm afraid I have no better ideas than the ones that you have listed - and in fact I wouldn’t have known about those ones either. I was just curious about what the next step would be.

It certainly seems to me like an interesting and worthwhile project. 

Best wishes - Neil 


  Original Message  
From: Jan Nieuwenhuizen
Sent: Monday, 26 June 2017 11:22
To: Neil Jerram
Cc: guile-user@gnu.org; guix-devel@gnu.org; epsilon-devel@gnu.org
Subject: Re: Mes 0.8 released

Neil Jerram writes:

Hi Neil!

> In your bootstrap path, what is the step after Mes?‎ I guess it would
> be using mescc to compile some C program - but if that is right, which
> program? 

Indeed. Short answer: I don't know. Do you have something in mind?

We haven't decided yet and are still exploring possibilities. We are
looking for the target that requires the least amount of work to get us
close the bootstrap path to gcc.

The most obvious candidate to compile with mescc is tinycc. rain1 has
worked with the tinycc and succeeded in compiling GCC 4.7.0 using
tinycc[0].

However, tinycc uses C constructs that mescc does not support [yet] and
libc functions that mescc's libc does not have.

So we are also considering other candidates such as 8cc, pcc, the ack,
cc500, gcc-2.95 (what about earlier gcc's?).

Another possible first target for Mescc could be libguile/eval.c ;-) and
develop a fork/sister of mescc as guilecc.

Greetings,
janneke

[0] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-06-26 23:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-25 16:49 Mes 0.8 released Jan Nieuwenhuizen
2017-06-26  9:22 ` Neil Jerram
2017-06-26 10:30   ` Jan Nieuwenhuizen
2017-06-26 23:34     ` Neil Jerram

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).