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) LISP-intepreted RRS was so bad (~1000x slower than initial LISP-1.5)
that this track was abandoned after the initial ANNOUNCE. that this track was abandoned after the initial ANNOUNCE.
The route changed trying to strike a balance between core size and The route changed, trying to strike a balance between core size and
performance: still writing as much as possible in Scheme, but having a performance: still writing as much as possible in Scheme but having a
mescc compiler that takes not more than some seconds to run. 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 Now that portable R6RS syntax-case runs and mes.c has grown to
comes in scope, mes.c has grown into ~1500LOC, some effort must ~1200LOC with another ~300LOC of optional C code, some effort must
probably be directed into making that smaller. probably be directed into making that smaller.
** Move mes.c into hex? ** Move mes.c into hex?
@ -29,25 +29,9 @@ bootstrap into Scheme.
** Rewrite mes.c and generate hex? ** Rewrite mes.c and generate hex?
Another idea (thanks Rutger!) is to rewrite the mes.c core in a 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. 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 * Bugs
** Core is too fat ** Core is too fat
mes.c is ~1500 lines (~10,000LOC Assembly) which seems much too big to 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. GNUmakefile.
** Garbage collection? ** Garbage collection?
Mes is using malloc without freeing anything, memory is patient these Mes is using malloc without freeing anything, memory is patient these
days :-) days :-) Sadly, a factor 10^6 less patient than the future that SICP
** find/fix hygiene problem: see module/mes/match.scm ;; X vs x authors were hoping for (we have 10^3 less memory and 10^3 more
** instructions).
** Actually do something useful, build: [[https://en.wikipedia.org/wiki/Tiny_C_Compiler][Tiny C Compiler]]
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 * OLD: Booting from LISP-1.5 into Mes
Mes started out experimenting with booting from a hex-coded minimal 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. 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 ** Core
*** expand_macro is now a separate function. *** expand_macro is now a separate function.
*** A smaller core can now compiled using BOOT=1. *** A smaller core can now compiled using BOOT=1.