source: EcnlProtoTool/trunk/tcc-0.9.27/TODO@ 331

Last change on this file since 331 was 331, checked in by coas-nagasima, 6 years ago

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

File size: 3.6 KB
Line 
1TODO list:
2
3Bugs:
4
5- i386 fastcall is mostly wrong
6- FPU st(0) is left unclean (kwisatz haderach). Incompatible with
7 optimized gcc/msc code
8- see transparent union pb in /urs/include/sys/socket.h
9- precise behaviour of typeof with arrays ? (__put_user macro)
10 but should suffice for most cases)
11- handle '? x, y : z' in unsized variable initialization (',' is
12 considered incorrectly as separator in preparser)
13- transform functions to function pointers in function parameters
14 (net/ipv4/ip_output.c)
15- fix function pointer type display
16- check section alignment in C
17- fix invalid cast in comparison 'if (v == (int8_t)v)'
18- finish varargs.h support (gcc 3.2 testsuite issue)
19- fix static functions declared inside block
20- fix multiple unions init
21- make libtcc fully reentrant (except for the compilation stage itself).
22- struct/union/enum definitions in nested scopes (see also Debian bug #770657)
23- __STDC_IEC_559__: float f(void) { static float x = 0.0 / 0.0; return x; }
24- memory may be leaked after errors (longjmp).
25
26Portability:
27
28- it is assumed that int is 32-bit and sizeof(int) == 4
29- int is used when host or target size_t would make more sense
30- TCC handles target floating-point (fp) values using the host's fp
31 arithmetic, which is simple and fast but may lead to exceptions
32 and inaccuracy and wrong representations when cross-compiling
33
34Linking:
35
36- static linking (-static) does not work
37
38Bound checking:
39
40- fix bound exit on RedHat 7.3
41- setjmp is not supported properly in bound checking.
42- fix bound check code with '&' on local variables (currently done
43 only for local arrays).
44- bound checking and float/long long/struct copy code. bound
45 checking and symbol + offset optimization
46
47Missing features:
48
49- disable-asm and disable-bcheck options
50- __builtin_expect()
51- atexit (Nigel Horne)
52- C99: add complex types (gcc 3.2 testsuite issue)
53- postfix compound literals (see 20010124-1.c)
54- interactive mode / integrated debugger
55
56Optimizations:
57
58- suppress specific anonymous symbol handling
59- more parse 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)
63
64Not critical:
65
66- C99: fix multiple compound literals inits in blocks (ISOC99
67 normative example - only relevant when using gotos! -> must add
68 boolean variable to tell if compound literal was already
69 initialized).
70- add PowerPC generator and improve codegen for RISC (need
71 to suppress VT_LOCAL and use a base register instead).
72- fix preprocessor symbol redefinition
73- add portable byte code generator and interpreter for other
74 unsupported architectures.
75- C++: variable declaration in for, minimal 'class' support.
76- win32: __intxx. use resolve for bchecked malloc et al.
77 check exception code (exception filter func).
78- handle void (__attribute__() *ptr)()
79- VLAs are implemented in a way that is not compatible with signals:
80 http://lists.gnu.org/archive/html/tinycc-devel/2015-11/msg00018.html
81
82Fixed (probably):
83
84- bug with defines:
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.
96- macro substitution with nested definitions (ShangHongzhang)
97- with "-run" and libtcc, a PLT is now built.
98- '-E' option was improved
99- packed attribute is now supported
100- ARM and ARM64 code generators have been added.
Note: See TracBrowser for help on using the repository browser.