added CType structure for type storage - supressed define hash table - added time...
[tinycc.git] / TODO
blob6e607f9498f7c04240535ed7878607bda9aab3d3
1 TODO list:
3 - add 'CType' structure to optimize type handling (= compile even faster)
4 - suppress unneeded hash table for Symbols (= compile even faster)
5 - add alloca()
6 - implement minimal 'asm' extension
7 - setjmp is not supported properly in bound checking.
8 - better local variables handling (needed for other targets)
9 - fix bound check code with '&' on local variables (currently done
10   only for local arrays).
11 - sizeof, alignof, typeof can still generate code in some cases.
12 - bound checking and float/long long/struct copy code. bound
13   checking and symbol + offset optimization
14 - Fix the remaining libtcc memory leaks.
15 - make libtcc fully reentrant (except for the compilation stage itself).
16 - '-MD' option
18 Not critical:
20 - C99: add variable size arrays
21 - C99: add complex types
22 - C99: fix multiple compound literals inits in blocks (ISOC99
23   normative example - only relevant when using gotos! -> must add
24   boolean variable to tell if compound literal was already
25   initialized).
26 - add PowerPC or ARM code generator and improve codegen for RISC (need
27   to suppress VT_LOCAL and use a base register instead).
28 - interactive mode / integrated debugger
29 - fix preprocessor symbol redefinition
30 - better constant opt (&&, ||, ?:)
31 - add portable byte code generator and interpreter for other
32   unsupported architectures.
33 - C++: variable declaration in for, minimal 'class' support.
34 - win32: add __stdcall, __intxx. use resolve for bchecked malloc et
35   al. check GetModuleHandle for dlls. check exception code (exception
36   filter func).
37 - handle void (__attribute__() *ptr)()
38 - handle '? x, y : z' in reversed function arguments or unsized
39   variable initialization (',' is considered incorrectly as separator
40   in preparser).