GNU Mes is a Scheme interpreter and C compiler for bootstrapping the GNU System.
Go to file
Jan Nieuwenhuizen d114634203 Prepare for 0.1 release: new directory structure.
* scripts/elf.mes: New file.
* scripts/include.mes: New file.
* scripts/mescc.mes: New file.
* scripts/paren.mes: New file.
* scripts/repl.mes: New file.
* doc/examples/main.c: Move from ./main.c.
* module/mes/base-0.mes: Move from ./base0.mes.
* module/mes/base.mes: Move from top.
* module/mes/elf.mes: Likewise.
* module/mes/let-syntax.mes: Likewise.
* module/mes/let.mes: Likewise.
* module/mes/mes.mes: Likewise.
* module/mes/quasiquote.mes: Likewise.
* module/mes/repl.mes: Likewise.
* module/mes/scm.mes: Likewise.
* module/mes/syntax.mes: Likewise.
* module/mes/lalr-0.mes: Move from lib/lalr.mes.
* module/mes/lalr.mes: Move from lib/lalr.scm.
* module/mes/match.mes: Move from lib/match.scm.
* module/mes/record-0.mes: Move from lib/record.mes.
* module/mes/record.mes: Move from lib/record.scm.
* module/mes/test.mes: Move flom lib/.
* module/rnrs/bytevectors.mes: Move from lib/rnrs.
* module/srfi/srfi-0.mes: Move from lib/srfi.
* module/srfi/srfi-1.mes: Likewise.
* module/srfi/srfi-9.mes: Likewise.
* module/language/c/lexer.mes: Move from ./c-lexer.scm.
* module/language/c/parser.mes: Move from ./mescc.scm.
* module/language/c/compiler.mes: New file, split from parser.mes.
* module/language/paren.mes: Move from ./paren.scm.
* module/mes/libc-i386.mes: New file, split from elf.mes.
* tests/base.test: Move from test/.
* tests/closure.test: Likewise.
* tests/let-syntax.test: Likewise.
* tests/let.test: Likewise.
* tests/match.test: Likewise.
* tests/quasiquote.test: Likewise.
* tests/record.test: Likewise.
* tests/scm.test: Likewise.
* hello.S: Remove.
* hello.c: Remove.
* loop2.mes: Remove.
* test/foo.test: Remove.
2016-10-12 23:40:11 +02:00
doc/examples Prepare for 0.1 release: new directory structure. 2016-10-12 23:40:11 +02:00
guile Prepare for 0.1 release: new directory structure. 2016-10-12 23:40:11 +02:00
module Prepare for 0.1 release: new directory structure. 2016-10-12 23:40:11 +02:00
scripts Prepare for 0.1 release: new directory structure. 2016-10-12 23:40:11 +02:00
tests Prepare for 0.1 release: new directory structure. 2016-10-12 23:40:11 +02:00
.gitignore Prepare for 0.1 release: new directory structure. 2016-10-12 23:40:11 +02:00
ANNOUNCE cleanup and doc update. 2016-10-10 23:24:44 +02:00
ANNOUNCE-2 cleanup and doc update. 2016-10-10 23:24:44 +02:00
AUTHORS Add Guile version of John McCarthy's Maxwell Equations of Software. 2016-05-28 16:26:06 +02:00
COPYING Add Guile version of John McCarthy's Maxwell Equations of Software. 2016-05-28 16:26:06 +02:00
GNUmakefile Prepare for 0.1 release: new directory structure. 2016-10-12 23:40:11 +02:00
HACKING cleanup and doc update. 2016-10-10 23:24:44 +02:00
README cleanup and doc update. 2016-10-10 23:24:44 +02:00
TODO Prepare for 0.1 release: new directory structure. 2016-10-12 23:40:11 +02:00
mes.c Remove evcon (Sorry John). 2016-10-15 11:56:18 +02:00

README

Mes -- Maxwell Equations of Software

Mes is inspired by The Maxwell Equations of Software -- John McCarthy page 13
http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf

Its aim is to have GuixSD boostrap from a minimal trusted binary into
Scheme.  The strategy is to use OrianJs self-hosting hex assembler to
write a minimal LISP called MES to bootstrap a full fledged Scheme,
written in MES.

Mes is free software, it is distributed unde the terms of the GNU
General Public Licence version 3 or later.  See the file COPYING.

Current targets.

* make check

* C compiler

   make mescc
   make guile-mescc

from there, work on mescc.scm, main.c.

* syntax-case: simple portable version by Andre van Tonder

  TODO

* syntax-case: using portable psyntax.pp

   make psyntax

* syntax-case using define-macro

   make syntax-case
   make guile-syntax-case

* PEG

   make peg
   make guile-peg