X-Git-Url: https://jxself.org/git/?p=mes.git;a=blobdiff_plain;f=HACKING;h=55033408815e5be0ffb85e8e5daad6ef6ce79107;hp=2febd35b5de4760bbc207d59430f674a95aa4bf2;hb=7bf25a7e1799a9abaf7fd1a3f1c26555ac9cdcf1;hpb=09a21626a88bcde91da55773b4541f2ca796b363 diff --git a/HACKING b/HACKING index 2febd35b..55033408 100644 --- 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]]