source: project/chicken/trunk/TODO @ 12130

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

added missing entry in chicken.import.scm for load-verbose; require-extension didn't generate import code for registered feature id [both reported by Peter Bex]

File size: 3.4 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** using plists instead of symbol lists (block-globals, etc.) might speed up things
50
51* tests
52** optional longer run (env. var)
53*** syntax-rules-stress-test
54*** fully compiled ec-tests
55
56* module issues
57** code-duplication in compiler and evaluator for ##core#module
58** "scheme" module does not include some special forms ("define-syntax", etc.)
59** import-for-syntax imports value bindings into import-env
60   should actually be a distinct meta-import-env.
61   (does it work at all?)
62** curried define performs expansion in empty se - problem?
63   (as comment in expand.scm indicated (##sys#register-export))
64
65* setup/install
66** setup-download
67*** use HTTP_PROXY env. var
68*** handle redirects in http-fetch
69*** connect timeout and alternative download location
70** chicken-install
71*** should cache extension-info
72    necessary?
73
74* documentation
75** document ("HI/LO") expander (-> wiki, internals)
76   will we ever have the time for that?
77** document new .meta entries
78   depends, test-depends
79
80* build
81** chicken.texi needs to be regenerated
82** rules.make should really be generated by a script
83
84* syntax-error
85** if ##sys#current-module is set, add name to error message?
86** fluidly keep track of expanded forms (extend meaning of culprit)
87   to pprint pruned expr on error
88
89* modules
90** checks
91*** reimport of imported id
92*** unused defs?
Note: See TracBrowser for help on using the repository browser.