Prepare for 0.1 release: new directory structure.
[mes.git] / TODO
1 -*-mode:org-*-
2
3 * minimal bootstrap binary, via Scheme, into C compiler/linker
4 ** core: mes.c
5 *** make mes.c smaller
6 **** replace mes.c:quasiquote by quasiquote.mes
7 ***** SPEEDUP
8 **** cleanup environment/closures
9 *** make mes.c faster
10 *** use GC
11 *** move from C to hex/assembly
12
13 ** bugs
14 See bugs/
15
16 *** find/fix hygiene problem: see lib/match.scm ;; X vs x
17 Is it in let, define-syntax, match or intrinsically in define-macro?
18
19 ** parse C using PEG
20 http://piumarta.com/software/peg/
21 *** Simple Guile test:
22     make guile-peg
23 *** PEG on Mes does not work yet:
24     make peg
25 **** syntax-case
26 ***** portable syntax-case Andre van Tonder
27 ***** psyntax.pp
28 ***** hook-up sc-expand, see guile-1.0?: scheme:eval-transformer
29 Find out how to hook-up sc-expand in eval/apply.
30
31 ** parse C using LALR
32 *** Translate cgram.y into lalr, generate AST
33 *** C grammar in lex/yacc
34 https://github.com/rabishah/Mini-C-Compiler-using-Flex-And-Yacc
35 https://www.lysator.liu.se/c/ANSI-C-grammar-y.html
36 http://www2.cs.uidaho.edu/~jeffery/courses/nmsu/370/cgram.y
37 https://github.com/ProgramLeague/C-Compilerp
38 *** parsing in scheme
39 ftp://ftp.cs.indiana.edu/pub/scheme-repository/code/lang/cgram-ll1
40 ** Tiny C
41 https://en.wikipedia.org/wiki/Tiny_C_Compiler
42 ** Sub C
43 http://www.t3x.org/subc/index.html
44 **
45 https://groups.google.com/forum/#!topic/comp.lang.lisp/VPuX0VsjTTE
46 *** any, each?
47
48
49 * assorted info
50 **  ASM
51 http://www.tldp.org/HOWTO/Assembly-HOWTO/linux.html
52
53 Basically, you issue an int 0x80, with the __NR_syscallname number
54 (from asm/unistd.h) in eax, and parameters (up to six) in ebx, ecx,
55 edx, esi, edi, ebp respectively.
56
57 ** ELF
58 7f 45 4c 46
59
60 http://www.muppetlabs.com/~breadbox/software/tiny/
61
62 http://www.cirosantilli.com/elf-hello-world/
63
64 ** SCM
65 ** RNRS
66    http://www.scheme-reports.org/
67 *** Scheme
68 ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-349.pdf
69 *** RRS
70 ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-452.pdf
71
72 http://groups.csail.mit.edu/mac/ftpdir/scm/OLD/scm2e.tar.Z
73 wget http://groups.csail.mit.edu/mac/ftpdir/scm/OLD/scm3c13.tar.Z
74 http://groups.csail.mit.edu/mac/ftpdir/scm/OLD/scm4a5.tar.Z
75
76 http://groups.csail.mit.edu/mac/ftpdir/scm/OLD/scm5a1.tar.gz --> syntax-rules
77 http://groups.csail.mit.edu/mac/ftpdir/scm/OLD/scm5c0.tar.gz
78
79
80 define-
81
82 http://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
83
84 http://www.cs.indiana.edu/chezscheme/syntax-case/
85
86 1.4..2.9:
87 http://groups.csail.mit.edu/mac/ftpdir/siod/
88
89 http://groups.csail.mit.edu/mac/ftpdir/s48/archive/scheme48-0-21.tar.gz
90
91 Macros:
92    http://www.bcl.hamilton.ie/~barak/teach/F97/CS257/macros.html
93
94
95 syntax-case/syntax-rules in clojure
96 https://github.com/qbg/syntax-rules/blob/master/src/qbg/syntax_rules.clj