Update documentation wrt syntax-case.

* HACKING: Update wrt syntax-case.
* NEWS: Likewise.
* README: Likewise.
* guix.scm: Likewise.
This commit is contained in:
Jan Nieuwenhuizen 2016-11-02 15:35:32 +01:00
parent 14f417d780
commit 0e13b7e8dd
2 changed files with 23 additions and 26 deletions

38
HACKING
View File

@ -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
**
** Actually do something useful, build: [[https://en.wikipedia.org/wiki/Tiny_C_Compiler][Tiny C Compiler]]
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

11
NEWS
View File

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