1 | TODO for macro/module system -*- Outline -*- |
---|
2 | |
---|
3 | * bugs |
---|
4 | ** modules |
---|
5 | *** code-duplication in compiler and evaluator for ##core#module |
---|
6 | *** syntax-definitions in modules |
---|
7 | transformers use ##sys#meta-macro-environment + unset ##sys#current-module, |
---|
8 | this may not be be sufficient (expansion assumes ids are imported in used |
---|
9 | context) [is this still relevant? we could simply reexport the ids used in |
---|
10 | in the expansion] |
---|
11 | *** "scheme" module does not include special forms ("define-syntax", etc.) |
---|
12 | |
---|
13 | * test |
---|
14 | ** reexports |
---|
15 | ** compiled import libs |
---|
16 | ** syntax-export of srfi-14 module |
---|
17 | ** hiding of non-exported module vars in compiler |
---|
18 | ** def of exported module variables with defie-values |
---|
19 | ** foreign module |
---|
20 | ** bootstrap |
---|
21 | ** line-number retention over macro-expansion |
---|
22 | |
---|
23 | * syntax-error |
---|
24 | ** if ##sys#current-module is set, add name to error message |
---|
25 | |
---|
26 | * modules |
---|
27 | ** checks |
---|
28 | *** redefinition of imported id |
---|
29 | *** reimport of imported id |
---|
30 | ** hide unexported module definitions |
---|
31 | |
---|
32 | * update manual/NEWS |
---|
33 | ** hygienic macros |
---|
34 | ** modules |
---|
35 | ** import libraries |
---|
36 | ** expand unit (move stuff from eval) |
---|
37 | ** document extensions |
---|
38 | *** user defined ellipsis |
---|
39 | *** define-compiled-syntax |
---|
40 | *** modules |
---|
41 | ** removed deprecated stuff |
---|
42 | [un]shift! |
---|
43 | andmap ormap |
---|
44 | byte-vector? byte-vector-fill! |
---|
45 | make-byte-vector byte-vector |
---|
46 | byte-vector-set! byte-vector-ref |
---|
47 | byte-vector->list list->byte-vector |
---|
48 | string->byte-vector byte-vector->string |
---|
49 | byte-vector-length |
---|
50 | make-static-byte-vector static-byte-vector->pointer |
---|
51 | byte-vector-move! byte-vector-append! |
---|
52 | set-file-position! set-user-id! set-group-id! |
---|
53 | set-process-group-id! |
---|
54 | ** ack synrules authors |
---|
55 | ** DSSSL lambda-lists work only with imported "chicken" module |
---|
56 | let-optionals, etc. |
---|
57 | ** removals |
---|
58 | *** "run-time" and "compile-time" situations for eval-when |
---|
59 | *** syntax |
---|
60 | define-foreign-record |
---|
61 | define-foreign-enum |
---|
62 | define-record |
---|
63 | define-macro |
---|
64 | *** compiler options |
---|
65 | -check-imports |
---|
66 | -emit-exports |
---|
67 | -import |
---|
68 | |
---|
69 | * build |
---|
70 | ** compile and install import libraries |
---|
71 | *** where? probably in repository... |
---|
72 | *** install import libs as .scm when it is a static build |
---|
73 | |
---|
74 | * csi |
---|
75 | ** describe should print if symbol is interned |
---|
76 | |
---|
77 | * compiler |
---|
78 | ** warn if encountering global ref to "unquote[-splicing]" |
---|
79 | |
---|
80 | * eggs to be adapted/obsoleted |
---|
81 | ** syntax-case (eval/expand integration?) |
---|
82 | *** sxml-match |
---|
83 | ** codewalk |
---|
84 | must probably go... influences modules, crunch |
---|
85 | ** remove |
---|
86 | modules |
---|
87 | ** syntactic-closures? |
---|
88 | ** simple-macros |
---|
89 | ** alexpander |
---|