Update README.
[mes.git] / README
1                                                               -*- org -*-
2 Mes -- Maxwell Equations of Software
3
4 Mes aims to create an entirely source-based bootstrapping path.  The
5 target is to [have GuixSD] boostrap from a minimal, easily inspectable
6 binary --that should be readable as source-- into something close to
7 R6RS Scheme.
8
9 As bootstrapping is presumably easiest and probably most fun with
10 Scheme, the next step for Mes is mescc: a C compiler/linker to
11 boostrap into GNU Gcc and GNU Guile, possibly via Tiny-CC.
12
13 It currently has an interpreter written in C (mes) with Garbage
14 Collector (Jam Scraper), a library of loadable Scheme modules with
15 test suite just barely enough to support a simple REPL (repl.mes) and
16 a proof-of-concept c-compiler (mescc.mes) that produces an elf from
17 the simplest of C files.
18
19 Mes is inspired by The Maxwell Equations of Software: [[http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf][LISP-1.5]] -- John
20 McCarthy page 13.
21
22 Mes is free software, it is distributed under the terms of the GNU
23 General Public Licence version 3 or later.  See the file COPYING.
24
25 * Get it
26
27    git clone https://gitlab.com/janneke/mes
28
29 * Build it (see INSTALL for full instructions)
30
31    ./configure
32    make all
33    make check
34
35 * REPL it
36
37    scripts/repl.mes
38
39 * Mescc compiler
40
41    scripts/mescc.mes doc/examples/main.c > a.out
42
43 * Other
44
45    make check
46    make guile-check
47    make mes-check
48    make paren
49    make mescc