Update documentation wrt syntax-case.
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 2 Nov 2016 14:35:32 +0000 (15:35 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Mon, 12 Dec 2016 19:33:49 +0000 (20:33 +0100)
* HACKING: Update wrt syntax-case.
* NEWS: Likewise.
* README: Likewise.
* guix.scm: Likewise.

HACKING
NEWS

diff --git a/HACKING b/HACKING
index 2febd35b5de4760bbc207d59430f674a95aa4bf2..e8782f60b88d95c2a82bf1ee7625535ebb09d19c 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -14,12 +14,12 @@ metamorphose into R6RS.  It seemed to work but performance of the
 LISP-intepreted RRS was so bad (~1000x slower than initial LISP-1.5)
 that this track was abandoned after the initial ANNOUNCE.
 
-The route changed trying to strike a balance between core size and
-performance: still writing as much as possible in Scheme, but having a
+The route changed, trying to strike a balance between core size and
+performance: still writing as much as possible in Scheme but having a
 mescc compiler that takes not more than some seconds to run.
 
-Now that the important bits of R5RS are done and R6RS's syntax-case
-comes in scope, mes.c has grown into ~1500LOC, some effort must
+Now that portable R6RS syntax-case runs and mes.c has grown to
+~1200LOC with another ~300LOC of optional C code, some effort must
 probably be directed into making that smaller.
 
 ** Move mes.c into hex?
@@ -29,25 +29,9 @@ bootstrap into Scheme.
 
 ** Rewrite mes.c and generate hex?
 Another idea (thanks Rutger!) is to rewrite the mes.c core in a
-C/Assembly variant and have mescc produce the simple, annotated
+C/Assembly variant and thave mescc produce the simple, annotated
 bootstrap binary.
 
-** R6RS's syntax-case
-
-Having syntax-case should enable Mes to run [[https://savannah.gnu.org/projects/nyacc][nyacc]], which comes with a
-full C parser.
-
-*** Get Andre van Tonder's portable syntax-case up.
-    + This would avoid the psyntax.ss -> psyntax.pp -> psyntax.ss
-      bootstrap problem with an elegantly small implementation.
-
-    - Does this support the idea of a minimal mes.c core, or is too
-      much Scheme support required in the core?
-*** Get a version of portable psyntax.pp up.
-    + Fully standard complient R6RS macros.
-    + Minimal mes.c core required (not even quasiquote?).
-    - Sloooowwwww with intepreter?
-
 * Bugs
 ** Core is too fat
 mes.c is ~1500 lines (~10,000LOC Assembly) which seems much too big to
@@ -62,11 +46,15 @@ files to be prepended.  Previously, this information was put in
 GNUmakefile.
 ** Garbage collection?
 Mes is using malloc without freeing anything, memory is patient these
-days :-)
-** find/fix hygiene problem: see module/mes/match.scm ;; X vs x
-**
+days :-) Sadly, a factor 10^6 less patient than the future that SICP
+authors were hoping for (we have 10^3 less memory and 10^3 more
+instructions).
+
+SICP's stop and copy Garbage Colletor (Jam Scraper?) algorithm is now
+available, but it cannot be hooked up yet as even in boot mode the
+core mes eval/apply is still running; it executes the Scheme based
+eval/apply.
 ** Actually do something useful, build: [[https://en.wikipedia.org/wiki/Tiny_C_Compiler][Tiny C Compiler]]
-
 * OLD: Booting from LISP-1.5 into Mes
 
 Mes started out experimenting with booting from a hex-coded minimal
diff --git a/NEWS b/NEWS
index 98990475f635651d92c0c25274918e27de1bca88..0a335f0c24f802e17b0cbd6bd59a22abd71903f2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,8 +10,17 @@ Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 
 Please send Mes bug reports to janneke@gnu.org.
 
-* Changes in 0.1 (since progress report #2)
+* Changes in 0.2 since 0.1
+** Core
+*** Names of symbols and strings are list of characters [WAS: c-string].
+*** Macro expansion looks for sc-expand hook, enabling psyntax.
+** Language
+*** Mes now provides a subset of R6RS.
+*** Mes now provides psyntax-5.9f-based syntax-case.
+** Noteworthy bug fixes
+*** Using values as second parameter of builtin function yields first value.
 
+* Changes in 0.1 (since progress report #2)
 ** Core
 *** expand_macro is now a separate function.
 *** A smaller core can now compiled using BOOT=1.