source: project/chicken/trunk/TODO @ 12217

Last change on this file since 12217 was 12217, checked in by felix winkelmann, 12 years ago

todos update

File size: 3.6 KB
1TODO for trunk                                                          -*- Outline -*-
4* sort this document by order of importance
5  bugs, tasks, tests, documentation, optimizations
7* bugs
8** fprint benchmark crashes (base, out of heap) on 64-bit x86
9   (even with debug info)
10** compiler
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.
36* branches
37** merge cmi branch and announce changes
39* expander
40** at some stage disable debug-output in expand.scm
42* compiler
43** remove "custom-declare" + stuff?
45* optimizations
46** self-recursion optimization
47   what MacScheme called "benchmark-mode" (assume self-calls are recursion)
48*** needs declaration or option, >= -O2
49** when inlining, consing arg-list with "list" may make get-keyword possible foldable
50** local flow analysis
51** lambda-fusion
52** handle optional ags primitively
53   for example, set to distinguished val (checking argc) on C level, core
54   primitive for checking this - should be quite simple, but llist processing
55   (decompose-lambda-list) will be more expensive and cumbersome.
57* tests
58** optional longer run (env. var)
59*** syntax-rules-stress-test
60*** fully compiled ec-tests
62* module issues
63** code-duplication in compiler and evaluator for ##core#module
64** "scheme" module does not include some special forms ("define-syntax", etc.)
65** import-for-syntax imports value bindings into import-env
66   should actually be a distinct meta-import-env.
67   (does it work at all?)
68** curried define performs expansion in empty se - problem?
69   (as comment in expand.scm indicated (##sys#register-export))
70** checks to be implemented
71*** reimport of imported id
72*** unused defs?
74* setup/install
75** setup-download
76*** use HTTP_PROXY env. var
77*** handle redirects in http-fetch
78*** connect timeout and alternative download location
79** chicken-install
80*** should cache extension-info
81    necessary?
82** funky: allow CHICKEN_REPOSITORY to be a list and try in order
83*** special name to refer to default repo
85* library
86** read-mark list should be stored in read-table
88* documentation
89** document ("HI/LO") expander (-> wiki, internals)
90   will we ever have the time for that?
91** document new .meta entries
92   depends, test-depends
94* build
95** chicken.texi needs to be regenerated
96** rules.make should really be generated by a script
98* syntax-error
99** if ##sys#current-module is set, add name to error message?
100** fluidly keep track of expanded forms (extend meaning of culprit)
101   to pprint pruned expr on error
103* infrastructure
104** need script to process import libraries for generating indices for
105   then tell Toby about it
Note: See TracBrowser for help on using the repository browser.