source: project/chicken/trunk/TODO @ 12122

Last change on this file since 12122 was 12122, checked in by felix winkelmann, 13 years ago

silly

File size: 3.3 KB
Line 
1TODO for trunk                                          -*- Outline -*-
2
3
4* expander
5** at some stage disable debug-output in expand.scm
6
7* bugs
8** compiler
9*** lambda-lifting breaks in ##sys#read (r-spaces), reported by Joerg Wittenberger
10    in rev. 12103
11*** pre-optimization
12**** changes call-sites and makes them invalid for later pre-optimization
13** expander
14*** expansion of r5rs_pitfall 4.2 incorrect
15    possibly due to a non-aliased implicit "begin" somewhere
16*** dirty-macros.scm loops when using `defile'
17    possibly due to unrenamed special forms
18** modules
19*** chicken.import.scm refers to ##sys#chicken-macro-environment
20    ... which is only set, if chicken-more-macros.scm is loaded, which
21    is of course not the case inside a compiled executable (current
22    workaround is to set them to nil by default)
23*** same for ##sys#chicken-ffi-macro-environment
24*** re-exports of syntax doesn't work
25    generating import library requires source
26    (compiled-module-registration), but original module is lost after
27    importing. Can we simply pull expander closure out of module from which
28    we imported?
29*** `require-extension' fails in interpreter when extension is .so without import library
30    probably because load and import is in same toplevel form, and the
31    load is performed after the import (at runtime). A possibly fix
32    would be to load the extension immediately (at
33    compile-/expansion-time), when import is #t and o import lib
34    exists.
35
36* compiler
37** self-recursion optimization
38   what MacScheme called "benchmark-mode" (assume self-calls are recursion)
39*** needs declaration or option, >= -O2
40** cross-module inlining
41*** emit <sourcefile>.inline file with "-inline-global" (?)
42*** "-inline-global" slurps *.inline files include-path (?)
43*** would inline in other compilation units, but not in current (sort of confusing)
44** remove "custom-declare" + stuff?
45** "assume-no-redefinitions" mode?
46   like Gambit's block-mode (?): single toplevel assignment makes assigned
47   variable known (and allows inlining/contraction)
48** when inlining, consing arg-list with "list" may make get-keyword possible foldable
49
50* tests
51** optional longer run (env. var)
52*** syntax-rules-stress-test
53*** fully compiled ec-tests
54
55* module issues
56** code-duplication in compiler and evaluator for ##core#module
57** "scheme" module does not include some special forms ("define-syntax", etc.)
58** import-for-syntax imports value bindings into import-env
59   should actually be a distinct meta-import-env.
60   (does it work at all?)
61** curried define performs expansion in empty se - problem?
62   (as comment in expand.scm indicated (##sys#register-export))
63
64* setup/install
65** setup-download
66*** use HTTP_PROXY env. var
67*** handle redirects in http-fetch
68*** connect timeout and alternative download location
69** chicken-install
70*** should cache extension-info
71    necessary?
72
73* documentation
74** document ("HI/LO") expander (-> wiki, internals)
75   will we ever have the time for that?
76** document new .meta entries
77   depends, test-depends
78
79* build
80** chicken.texi needs to be regenerated
81** rules.make should really be generated by a script
82
83* syntax-error
84** if ##sys#current-module is set, add name to error message?
85** fluidly keep track of expanded forms (extend meaning of culprit)
86   to pprint pruned expr on error
87
88* modules
89** checks
90*** reimport of imported id
91*** unused defs?
Note: See TracBrowser for help on using the repository browser.