History

Udated and cleaned up TODO.

grischka committed 18 years ago

Commit 265dddb1 parent 36674082 files · +45 −33Browse files

Unified · Split

2 files
  1. Makefile +1 −1
  2. TODO +44 −32
Makefile+1−1
@@ -175,7 +175,7 @@ tiny_impdef$(EXESUF): tiny_impdef.c · 174 unmodified lines
175ifdef CONFIG_WIN32175ifdef CONFIG_WIN32
176# for windows, we must use TCC because we generate ELF objects176# for windows, we must use TCC because we generate ELF objects
177LIBTCC1_OBJS=$(addprefix win32/lib/, crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o) libtcc1.o177LIBTCC1_OBJS=$(addprefix win32/lib/, crt1.o wincrt1.o dllcrt1.o dllmain.o chkstk.o) libtcc1.o
178LIBTCC1_CC=./tcc.exe -Bwin32178LIBTCC1_CC=./tcc.exe -Bwin32 -DTCC_TARGET_PE
179else179else
180LIBTCC1_OBJS=libtcc1.o180LIBTCC1_OBJS=libtcc1.o
181LIBTCC1_CC=$(CC)181LIBTCC1_CC=$(CC)
TODO+44−32
@@ -1,63 +1,65 @@
1TODO list:1TODO list:
2 2
3- FPU st(0) is left unclean (incompatible with optimized gcc/msc code)3Bugs:
4
5- fix macro substitution with nested definitions (ShangHongzhang)
6- FPU st(0) is left unclean (kwisatz haderach). Incompatible with
7 optimized gcc/msc code
4 8
5- bug with defines:
6 #define spin_lock(lock) do { } while (0)
7 #define wq_spin_lock spin_lock
8 #define TEST() wq_spin_lock(a)
9- typedefs can be structure fields
10- see bugfixes.diff + improvement.diff from Daniel Glockner
11- constructors9- constructors
12- cast bug (Peter Wang)10- cast bug (Peter Wang)
13- define incomplete type if defined several times (Peter Wang).11- define incomplete type if defined several times (Peter Wang).
14- long long constant evaluation
15- configure --cc=tcc (still one bug in libtcc1.c)12- configure --cc=tcc (still one bug in libtcc1.c)
16- disable-asm and disable-bcheck options
17- test binutils/gcc compile13- test binutils/gcc compile
18- add alloca(), __builtin_expect()
19- gcc '-E' option.
20- optimize VT_LOCAL + const
21- tci patch + argument.14- tci patch + argument.
22- '-b' bug.
23- atexit (Nigel Horne)
24- see -lxxx bug (Michael Charity).15- see -lxxx bug (Michael Charity).
25- see transparent union pb in /urs/include/sys/socket.h16- see transparent union pb in /urs/include/sys/socket.h
26- precise behaviour of typeof with arrays ? (__put_user macro)17- precise behaviour of typeof with arrays ? (__put_user macro)
27- #include_next support for /usr/include/limits ?
28 but should suffice for most cases)18 but should suffice for most cases)
29- handle '? x, y : z' in unsized variable initialization (',' is19- handle '? x, y : z' in unsized variable initialization (',' is
30 considered incorrectly as separator in preparser)20 considered incorrectly as separator in preparser)
31- function pointers/lvalues in ? : (linux kernel net/core/dev.c)21- transform functions to function pointers in function parameters
32- transform functions to function pointers in function parameters (net/ipv4/ip_output.c)22 (net/ipv4/ip_output.c)
33- fix function pointer type display23- fix function pointer type display
34- fix bound exit on RedHat 7.3
35- check lcc test suite -> fix bitfield binary operations24- check lcc test suite -> fix bitfield binary operations
36- check section alignment in C25- check section alignment in C
37- fix invalid cast in comparison 'if (v == (int8_t)v)'26- fix invalid cast in comparison 'if (v == (int8_t)v)'
38- packed attribute
39- finish varargs.h support (gcc 3.2 testsuite issue)27- finish varargs.h support (gcc 3.2 testsuite issue)
40- fix static functions declared inside block28- fix static functions declared inside block
41- C99: add variable size arrays (gcc 3.2 testsuite issue)
42- C99: add complex types (gcc 3.2 testsuite issue)
43- postfix compound literals (see 20010124-1.c)
44- fix multiple unions init29- fix multiple unions init
30- sizeof, alignof, typeof can still generate code in some cases.
31- Fix the remaining libtcc memory leaks.
32- make libtcc fully reentrant (except for the compilation stage itself).
33
34Bound checking:
35
36- '-b' bug.
37- fix bound exit on RedHat 7.3
45- setjmp is not supported properly in bound checking.38- setjmp is not supported properly in bound checking.
46- better local variables handling (needed for other targets)
47- fix bound check code with '&' on local variables (currently done39- fix bound check code with '&' on local variables (currently done
48 only for local arrays).40 only for local arrays).
49- sizeof, alignof, typeof can still generate code in some cases.
50- bound checking and float/long long/struct copy code. bound41- bound checking and float/long long/struct copy code. bound
51 checking and symbol + offset optimization42 checking and symbol + offset optimization
52- Fix the remaining libtcc memory leaks.43
53- make libtcc fully reentrant (except for the compilation stage itself).44Missing features:
54- '-MD' option45
46- disable-asm and disable-bcheck options
47- __builtin_expect()
48- improve '-E' option.
49- add '-MD' option
50- atexit (Nigel Horne)
51- packed attribute
52- C99: add variable size arrays (gcc 3.2 testsuite issue)
53- C99: add complex types (gcc 3.2 testsuite issue)
54- postfix compound literals (see 20010124-1.c)
55 55
56Optimizations:56Optimizations:
57 57
58- suppress specific anonymous symbol handling58- suppress specific anonymous symbol handling
59- more parse optimizations (=even faster compilation)59- more parse optimizations (=even faster compilation)
60- memory alloc optimizations (=even faster compilation)60- memory alloc optimizations (=even faster compilation)
61- optimize VT_LOCAL + const
62- better local variables handling (needed for other targets)
61 63
62Not critical:64Not critical:
63 65
@@ -73,11 +75,21 @@ Not critical: · 9 unmodified lines
73- add portable byte code generator and interpreter for other75- add portable byte code generator and interpreter for other
74 unsupported architectures.76 unsupported architectures.
75- C++: variable declaration in for, minimal 'class' support.77- C++: variable declaration in for, minimal 'class' support.
76- win32: add __stdcall, __intxx. use resolve for bchecked malloc et78- win32: __intxx. use resolve for bchecked malloc et al.
77 al. check GetModuleHandle for dlls. check exception code (exception79 check exception code (exception filter func).
78 filter func).
79- handle void (__attribute__() *ptr)()80- handle void (__attribute__() *ptr)()
80 81
82Fixed (probably):
81 83
82 84- bug with defines:
83 85 #define spin_lock(lock) do { } while (0)
86 #define wq_spin_lock spin_lock
87 #define TEST() wq_spin_lock(a)
88- typedefs can be structure fields
89- see bugfixes.diff + improvement.diff from Daniel Glockner
90- long long constant evaluation
91- add alloca()
92- gcc '-E' option.
93- #include_next support for /usr/include/limits ?
94- function pointers/lvalues in ? : (linux kernel net/core/dev.c)
95- win32: add __stdcall, check GetModuleHandle for dlls.