From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Jan Nieuwenhuizen Newsgroups: gmane.lisp.guile.user Subject: Mes 0.6 released Date: Sun, 14 May 2017 18:08:50 +0200 Message-ID: <87k25j7759.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1494778181 32603 195.159.176.226 (14 May 2017 16:09:41 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 14 May 2017 16:09:41 +0000 (UTC) Cc: epsilon-devel@gnu.org To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Sun May 14 18:09:36 2017 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d9w5O-0008Kc-UF for guile-user@m.gmane.org; Sun, 14 May 2017 18:09:35 +0200 Original-Received: from localhost ([::1]:33251 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9w5U-0006iF-Jc for guile-user@m.gmane.org; Sun, 14 May 2017 12:09:40 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42778) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9w55-0006hv-HZ for guile-user@gnu.org; Sun, 14 May 2017 12:09:19 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d9w54-0003VM-5H for guile-user@gnu.org; Sun, 14 May 2017 12:09:15 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35676) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d9w4u-0003K1-6g; Sun, 14 May 2017 12:09:04 -0400 Original-Received: from peder.onsbrabantnet.nl ([88.159.206.46]:52054 helo=dundal.peder.onsbrabantnet.nl) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1d9w4t-00015R-ER; Sun, 14 May 2017 12:09:03 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:13714 Archived-At: I am pleased to announce the release of Mes 0.6, representing 32 commits over 10 days. Mescc now works with vanilla Nyacc 0.78.3 (thanks Matt!), Nyacc has been unbundled and Mescc compiles 33/55 of tinycc test2 tests. * 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=3Dv0.= 6 -O mes-0.6.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.6 since 0.5 ** Core *** configure, build now supports x86 and development for arm with-courage. ** Language *** Nyacc has been unbundled and is now a dependency. *** Mes now supports case-lambda. *** Mes reader now supports abbreviated form for return character #\cr. *** 1 new function string-index. ** Mescc *** Mescc can be used on regular C sources, like tinycc's tests/test2 suit= e. *** make check passes 33/55 of tinycc's test suite etest/test2 tests. *** Mescc now recognizes `short' as a type. *** Mescc now supports sizeof (), sizeof(). *** Mescc now respects enum field initializers and supports enum variables. *** Mescc now supports binary constants . *** Mescc now supports assignments from =3D=3D, !=3D boolean expressions . *** Mescc now supports &, ^. *** Mescc now supports struct pointers. *** Mescc now supports struct definition with immediatete variable declara= tion. *** Mescc now supports calling (returning correctly from) void functions. *** Mescc now handles case statements breaks without compound correctly. *** Mescc now has better [int/pointer] array support. *** Mescc now has better support for simple (non-array-)structs. *** Mescc now supports multiple declarations in one statement like: int a,= b; **** 2 new mlibc functions printf, strcpy. ** Noteworthy bug fixes *** Installed mes and mes.repl now also run outside of source tree again. 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.h= tml [5] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%252= 0Programmers%2520Manual.pdf [6] https://www.gnu.org/software/guix/ [7] https://github.com/oriansj/stage0 --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com