core: Remove define.
[mes.git] / HACKING
diff --git a/HACKING b/HACKING
index 2febd35b5de4760bbc207d59430f674a95aa4bf2..55033408815e5be0ffb85e8e5daad6ef6ce79107 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,44 +29,15 @@ 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
 start translating it to assembly/hex.
 
-** (mes-use-module ...) is a fake, see module/mes/base.mes.
-All top level scripts and test files (scripts/*.mes tests/*.test)
-now include appropriate (mes-use-module ...) stanzas.
-
-This hack allows for scripts/includes.mes to generate the list of
-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]]
-
 * OLD: Booting from LISP-1.5 into Mes
 
 Mes started out experimenting with booting from a hex-coded minimal
@@ -110,6 +81,8 @@ edx, esi, edi, ebp respectively.
 *** [[http://www.muppetlabs.com/~breadbox/software/tiny/][Small ELF programs]]
 *** [[http://www.cirosantilli.com/elf-hello-world/][Elf hello world]]
 
+** SC - c as s-expressions
+sc: http://sph.mn/content/3d3
 ** RNRS
 *** [[http://www.scheme-reports.org/][Scheme Reports]] 
 *** [[ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-349.pdf][Scheme - Report on Scheme]]