Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6429 | siemargl | 1 | Version 0.9.27: |
2 | |||
3 | Licensing: |
||
4 | |||
5 | - TinyCC partly relicensed to MIT license |
||
6 | |||
7 | User interface: |
||
8 | |||
9 | - define __STDC_HOSTED__ (Michael Matz, Urs Janssen) |
||
10 | - added support for CPATH, C_INCLUDE_PATH and LD_LIBRARY_PATH (Andrew Aladjev |
||
11 | and Urs Janssen) |
||
12 | - added option -norunsrc to control argv[0] with tcc -run (James Lyon) |
||
13 | - improve --with-libgcc configure help (grischka) |
||
14 | - improve error message when memory is full (grischka) |
||
15 | - improve wording about compiler switches in documentation (Thomas Preud'homme) |
||
16 | - use GNU triplet prefix for cross compiler names (Thomas Preud'homme) |
||
17 | - ignore unknown linker optimization and as-needed option (Austin English) |
||
18 | |||
19 | Features: |
||
20 | |||
21 | - added ABI tests with native compiler using libtcc (James Lyon) |
||
22 | - added CMake build system with support for cross-compilation (James Lyon) |
||
23 | - improved variable length array support (James Lyon) |
||
24 | - add the possibility to use noname functions by ordinal (YX Hao) |
||
25 | - add a install-strip target to install tcc (Thomas Preud'homme) |
||
26 | - add runtime selection of float ABI on ARM (Thomas Preud'homme) |
||
27 | - add shared lib support on x86-64 (Michael Matz) |
||
28 | |||
29 | Platforms: |
||
30 | - support Debian GNU/kfreeBSD 64bit userspace (Thomas Preud'homme) |
||
31 | - fix GNU/Hurd interpreter path (Thomas Preud'homme) |
||
32 | - fix configure script for FreeBSD host (Thomas Preud'homme) |
||
33 | - make tcc -run work reliably on ARM by flushing caches (Thomas Preud'homme) |
||
34 | - many x86-64 ABI fixes incl. XMM register passing (James Lyon) |
||
35 | - improve compatibility with mingw's long double (James Lyon) |
||
36 | - avoid .stabstr section name to be truncated on win32 (Roy) |
||
37 | - add support for load/store of _Bool value (Thomas Preud'homme) |
||
38 | - detect instruction with incorrect operands on x86-64 (Thomas Preud'homme) |
||
39 | - improved relocations on ARM (Thomas Preud'homme) |
||
40 | - add va_* macro implementation for ARM (Thomas Preud'homme) |
||
41 | - define __ARM_EABI__, __ARMEL__ and __ARM_PCS_VFP (Thomas Preud'homme) |
||
42 | - provide a runtime library for ARM (Thomas Preud'homme) |
||
43 | - vastly improved support for ARM hard float calling convention |
||
44 | (Thomas Preud'homme, Daniel Glöckner) |
||
45 | - tcc can uses libtcc1 on ARM (Thomas Preud'homme) |
||
46 | - use __fixdfdi for all float to integer conversion (grischka) |
||
47 | - simplify startup code for unix platforms (grischka) |
||
48 | - improve ELF generated on ARM (Thomas Preud'homme) |
||
49 | - add support for thumb to ARM relocation (Thomas Preud'homme) |
||
50 | - fix globbing to match MSVC on Windows (Thomas Preud'homme) |
||
51 | - deprecate FPA and OABI support for ARM (Thomas Preud'homme) |
||
52 | - warn about softfloat not being supported on ARM (Thomas Preud'homme) |
||
53 | |||
54 | Bug fixes: |
||
55 | - many code clean up (Urs Janssen, grischka) |
||
56 | - fixes of other's patches (grischka, Ramsay Jones, Michael Matz) |
||
57 | - fix documentation about __TINYC__ (Urs Janssen) |
||
58 | - improve build of documentation (Urs Janssen) |
||
59 | - improve build instructions (Jov) |
||
60 | - switch from texi2html to makeinfo --html to build tcc-doc.html (James Lyon) |
||
61 | - improve out of tree build (James Lyon) |
||
62 | - improved passing and returning of struct (James Lyon) |
||
63 | - fix CMake build on i386 and x86-64 (James Lyon) |
||
64 | - fix i386 calling convention issue (James Lyon) |
||
65 | - fix error in Windows build of tests (James Lyon) |
||
66 | - fix x86-64 long double passing (James Lyon) |
||
67 | - fix crash with undefined struct (grischka) |
||
68 | - normalize slashes on win32 to always use backslashes (grischka) |
||
69 | - use runtime function for float to int conversion on i386 (grischka) |
||
70 | - improved documentation for include and lib lookup on win32 (grischka) |
||
71 | - detect redefinition of function (Thomas Preud'homme) |
||
72 | - detect the use of array of functions (Thomas Preud'homme) |
||
73 | - detect use of enumerator with wrong enumeration (Thomas Preud'homme) |
||
74 | - detect redefinition of enumerator or enumeration (Thomas Preud'homme) |
||
75 | - set the user-defined library search paths first (Vittorio Giovara) |
||
76 | - detect usage of incomplete types inside struct/union (Amine Najahi) |
||
77 | - various macro bug fixes (Joseph Poirier) |
||
78 | - avoid wrong trigger of assert on x86-64 platform (Thomas Preud'homme) |
||
79 | - fix NaN comparison (Thomas Preud'homme) |
||
80 | - use libtcc for static linking with runtime library (Thomas Preud'homme) |
||
81 | - fix negation of 0.0 and -0.0 values (Thomas Preud'homme) |
||
82 | - fix use of long long as if condition (Thomas Preud'homme) |
||
83 | - disable bound check if libgcc is used (Thomas Preud'homme) |
||
84 | - error out when casting to void (grischka) |
||
85 | - remove circular dependency in Makefile (grischka) |
||
86 | - stop preventing gcc to do strict aliasing (grischka) |
||
87 | - fix Windows build of tcc (grischka) |
||
88 | - build runtime library for arm cross compiler (Thomas Preud'homme) |
||
89 | - fix installation of arm cross-compiler (Thomas Preud'homme) |
||
90 | - add basic test for cross-compiler (Thomas Preud'homme) |
||
91 | - fix failure when generating PE on x86-64 (Archidemon) |
||
92 | - fix floating point unary minus and plus (Michael Matz) |
||
93 | - add more tests for signed zero float (Michael Matz) |
||
94 | - fix precision of double on x86-64 (Vincent Lefevre) |
||
95 | - fix bound checking of argv with -run switch (Kirill Smelkov) |
||
96 | - work around a wine cmd bug when building tcc on Windows (Austin English) |
||
97 | - reenable some bound check tests (grischka) |
||
98 | - boundtest.c lookup honors VPATH (grischka) |
||
99 | - diff compared to CC in test[123]b? are now errors (grischka) |
||
100 | - fix test3 on Windows (grischka) |
||
101 | - prevent gcc from building (non functional) libtcc.a (grischka) |
||
102 | - fix warning related to PE file generation on x86-64 (grischka) |
||
103 | - stop mixing ordinary and implicit rule in Makefile (Iavael) |
||
104 | - fix integer to double conversion on ARM (Thomas Preud'homme) |
||
105 | - fix parameter passing of structure < 4 bytes on ARM (Thomas Preud'homme) |
||
106 | - disable builtin_frame_address test on ARM due to gcc bug (Thomas Preud'homme) |
||
107 | - fix initialization of struct on ARM (Thomas Preud'homme) |
||
108 | - fix parameter passing of (unsigned) long long bitfield (Thomas Preud'homme) |
||
109 | - improve float to integer tests (Thomas Preud'homme) |
||
110 | - fix relocation of Thumb branch to ARM function (Thomas Preud'homme) |
||
111 | - fix char wrong compatibility with [un]signed char (Thomas Preud'homme) |
||
112 | - choose the code to compile based on target in libtcc1 (Thomas Preud'homme) |
||
113 | - fix various clang warnings (Thomas Preud'homme) |
||
114 | - don't hardcode tcc in Makefile for tests (Thomas Preud'homme) |
||
115 | - fix relocation of __bound_init bound checking code (Thomas Preud'homme) |
||
116 | - accept only one basic type for a given variable (Thomas Preud'homme) |
||
117 | - fix error when using va_* with tcc using libgcc (Thomas Preud'homme) |
||
118 | - support GOT32 and PLT32 reloc on the same symbol (Thomas Preud'homme) |
||
119 | - fix memory leak due to symbol attributes (mingodad) |
||
120 | - partially fix bound checking of argv and arge (Thomas Preud'homme) |
||
121 | - fix possible dereference when getting name of symbol (grischka) |
||
122 | - fix va_list type definition on x86-64 (Daniel Glöckner) |
||
123 | - reduce number of scan-build false positive (mingodad) |
||
124 | |||
125 | version 0.9.26: |
||
126 | |||
127 | User interface: |
||
128 | - -MD/-MF (automatically generate dependencies for make) |
||
129 | - -pthread option (same as -D_REENTRANT -lpthread) (Henry Kroll III) |
||
130 | - -m32/-m64 to re-exec cross compiler (Henry Kroll III) |
||
131 | - -Wl, Mimic all GNU -option forms supported by ld (Kirill Smelkov) |
||
132 | - new LIBTCCAPI tcc_set_options() (grischka) |
||
133 | |||
134 | Platforms: |
||
135 | - Many improvements for x86-64 target (Shinichiro Hamaji, Michael Matz, grischka) |
||
136 | - x86-64 assembler (Frederic Feret) |
||
137 | - Many improvements for ARM target (Daniel Glöckner, Thomas Preud'homme) |
||
138 | - Support WinCE PE ARM (Timo VJ Lahde) |
||
139 | - Support ARM hardfloat calling convention (Thomas Preud'homme) |
||
140 | - Support SELinux (Security-Enhanced Linux) (Henry Kroll III) |
||
141 | - Support Debian GNU/kFreeBSD kernels (Pierre Chifflier) |
||
142 | - Support GNU/Hurd kernels (Thomas Preud'homme) |
||
143 | - Support OSX (tcc -run only) (Milutin Jovanovic) |
||
144 | - Support multiarch configuration (Thomas Preud'homme) |
||
145 | - Support out-of-tree build (Akim Demaille) |
||
146 | |||
147 | Features: |
||
148 | - C99 variable length arrays (Thomas Preud'homme & Joe Soroka) |
||
149 | - Asm labels for variables and functions (Thomas Preud'homme) |
||
150 | - STT_GNU_IFUNC (Indirect functions as externals) (Thomas Preud'homme) |
||
151 | - More tests (tests2) (Milutin Jovanovic) |
||
152 | |||
153 | version 0.9.25: |
||
154 | |||
155 | - first support for x86-64 target (Shinichiro Hamaji) |
||
156 | - support µClibc |
||
157 | - split tcc.c into tcc.h libtcc.c tccpp.c tccgen.c tcc.c |
||
158 | - improved preprocess output with linenumbers and spaces preserved |
||
159 | - tcc_relocate now copies code into user buffer |
||
160 | - fix bitfields with non-int types and in unions |
||
161 | - improve ARM cross-compiling (Daniel Glöckner) |
||
162 | - link stabstr sections from multiple objects |
||
163 | - better (still limited) support for multiple TCCStates |
||
164 | |||
165 | version 0.9.24: |
||
166 | |||
167 | - added verbosity levels -v, -vv, -vvv |
||
168 | - Accept standard input as an inputstream (Hanzac Chen) |
||
169 | - Support c89 compilers other than gcc (Hanzac Chen) |
||
170 | - -soname linker option (Marc Andre Tanner) |
||
171 | - Just warn about unknown directives, ignore quotes in #error/#warning |
||
172 | - Define __STDC_VERSION__=199901L (477) |
||
173 | - Switch to newer tccpe.c (includes support for resources) |
||
174 | - Handle backslashes within #include/#error/#warning |
||
175 | - Import changesets (part 4) 428,457,460,467: defines for openbsd etc. |
||
176 | - Use _WIN32 for a windows hosted tcc and define it for the PE target, |
||
177 | otherwise define __unix / __linux (Detlef Riekenberg) |
||
178 | - Import changesets (part 3) 409,410: ARM EABI by Daniel Glöckner |
||
179 | - Some in-between fixes: |
||
180 | TCC -E no longer hangs with macro calls involving newlines. |
||
181 | (next_nomacro1 now advances the read-pointer with TOK_LINEFEED) |
||
182 | Global cast (int g_i = 1LL;) no longer crashes tcc. |
||
183 | (nocode_wanted is initially 1, and only 0 for gen_function) |
||
184 | On win32 now tcc.exe finds 'include' & 'lib' even if itself is in 'bin'. |
||
185 | (new function w32_tcc_lib_path removes 'bin' if detected) |
||
186 | Added quick build batch file for mingw (win32/build-tcc.bat) |
||
187 | Last added case label optimization (455) produced wrong code. Reverted. |
||
188 | |||
189 | - Import more changesets from Rob Landley's fork (part 2): |
||
190 | 487: Handle long long constants in gen_opic() (Rob Landley) |
||
191 | 484: Handle parentheses within __attribute__((...)) (Rob Landley) |
||
192 | 480: Remove a goto in decl_initializer_alloc (Rob Landley) |
||
193 | 475: Fix dereferences in inline assembly output (Joshua Phillips) |
||
194 | 474: Cast ptrs to ints of different sizes correctly (Joshua Phillips) |
||
195 | 473: Fix size of structs with empty array member (Joshua Phillips) |
||
196 | 470: No warning for && and || with mixed pointers/integers (Rob Landley) |
||
197 | 469: Fix symbol visibility problems in the linker (Vincent Pit) |
||
198 | 468: Allow && and || involving pointer arguments (Rob Landley) |
||
199 | 455: Optimize case labels with no code in between (Zdenek Pavlas) |
||
200 | 450: Implement alloca for x86 (grischka) |
||
201 | 415: Parse unicode escape sequences (Axel Liljencrantz) |
||
202 | 407: Add a simple va_copy() in stdarg.h (Hasso Tepper) |
||
203 | 400: Allow typedef names as symbols (Dave Dodge) |
||
204 | |||
205 | - Import some changesets from Rob Landley's fork (part 1): |
||
206 | 462: Use LGPL with bcheck.c and il-gen.c |
||
207 | 458: Fix global compound literals (in unary: case '&':) (Andrew Johnson) |
||
208 | 456: Use return code from tcc_output_file in main() (Michael Somos) |
||
209 | 442: Fix indirections with function pointers (***fn)() (grischka) |
||
210 | 441: Fix LL left shift in libtcc1.c:__shldi3 (grischka) |
||
211 | 440: Pass structures and function ptrs through ?: (grischka) |
||
212 | 439: Keep rvalue in bit assignment (bit2 = bit1 = x) (grischka) |
||
213 | 438: Degrade nonportable pointer assignment to warning (grischka) |
||
214 | 437: Call 'saveregs()' before jumping with logical and/or/not (grischka) |
||
215 | 435: Put local static variables into global memory (grischka) |
||
216 | 432/434: Cast double and ptr to bool (grischka) |
||
217 | 420: Zero pad x87 tenbyte long doubles (Felix Nawothnig) |
||
218 | 417: Make 'sizeof' unsigned (Rob Landley) |
||
219 | 397: Fix save_reg for longlongs (Daniel Glöckner) |
||
220 | 396: Fix "invalid relocation entry" problem on ubuntu - (Bernhard Fischer) |
||
221 | |||
222 | - ignore AS_NEEDED ld command |
||
223 | - mark executable sections as executable when running in memory |
||
224 | - added support for win32 wchar_t (Filip Navara) |
||
225 | - segment override prefix support (Filip Navara) |
||
226 | - normalized slashes in paths (Filip Navara) |
||
227 | - windows style fastcall (Filip Navara) |
||
228 | - support for empty input register section in asm (Filip Navara) |
||
229 | - anonymous union/struct support (Filip Navara) |
||
230 | - fixed parsing of function parameters |
||
231 | - workaround for function pointers in conditional expressions (Dave Dodge) |
||
232 | - initial '-E' option support to use the C preprocessor alone |
||
233 | - discard type qualifiers when comparing function parameters (Dave Dodge) |
||
234 | - Bug fix: A long long value used as a test expression ignores the |
||
235 | upper 32 bits at runtime (Dave Dodge) |
||
236 | - fixed multiple concatenation of PPNUM tokens (initial patch by Dave Dodge) |
||
237 | - fixed multiple typedef specifiers handling |
||
238 | - fixed sign extension in some type conversions (Dave Dodge) |
||
239 | |||
240 | version 0.9.23: |
||
241 | |||
242 | - initial PE executable format for windows version (grischka) |
||
243 | - '#pragma pack' support (grischka) |
||
244 | - '#include_next' support (Bernhard Fischer) |
||
245 | - ignore '-pipe' option |
||
246 | - added -f[no-]leading-underscore |
||
247 | - preprocessor function macro parsing fix (grischka) |
||
248 | |||
249 | version 0.9.22: |
||
250 | |||
251 | - simple memory optimisations: kernel compilation is 30% faster |
||
252 | - linker symbol definitions fixes |
||
253 | - gcc 3.4 fixes |
||
254 | - fixed value stack full error |
||
255 | - 'packed' attribute support for variables and structure fields |
||
256 | - ignore 'const' and 'volatile' in function prototypes |
||
257 | - allow '_Bool' in bit fields |
||
258 | |||
259 | version 0.9.21: |
||
260 | |||
261 | - ARM target support (Daniel Glöckner) |
||
262 | - added '-funsigned-char, '-fsigned-char' and |
||
263 | '-Wimplicit-function-declaration' |
||
264 | - fixed assignment of const struct in struct |
||
265 | - line comment fix (reported by Bertram Felgenhauer) |
||
266 | - initial TMS320C67xx target support (TK) |
||
267 | - win32 configure |
||
268 | - regparm() attribute |
||
269 | - many built-in assembler fixes |
||
270 | - added '.org', '.fill' and '.previous' assembler directives |
||
271 | - '-fno-common' option |
||
272 | - '-Ttext' linker option |
||
273 | - section alignment fixes |
||
274 | - bit fields fixes |
||
275 | - do not generate code for unused inline functions |
||
276 | - '-oformat' linker option. |
||
277 | - added 'binary' output format. |
||
278 | |||
279 | version 0.9.20: |
||
280 | |||
281 | - added '-w' option |
||
282 | - added '.gnu.linkonce' ELF sections support |
||
283 | - fixed libc linking when running in memory (avoid 'stat' function |
||
284 | errors). |
||
285 | - extended '-run' option to be able to give several arguments to a C |
||
286 | script. |
||
287 | |||
288 | version 0.9.19: |
||
289 | |||
290 | - "alacarte" linking (Dave Long) |
||
291 | - simpler function call |
||
292 | - more strict type checks |
||
293 | - added 'const' and 'volatile' support and associated warnings |
||
294 | - added -Werror, -Wunsupported, -Wwrite-strings, -Wall. |
||
295 | - added __builtin_types_compatible_p() and __builtin_constant_p() |
||
296 | - chars support in assembler (Dave Long) |
||
297 | - .string, .globl, .section, .text, .data and .bss asm directive |
||
298 | support (Dave Long) |
||
299 | - man page generated from tcc-doc.texi |
||
300 | - fixed macro argument substitution |
||
301 | - fixed zero argument macro parsing |
||
302 | - changed license to LGPL |
||
303 | - added -rdynamic option support |
||
304 | |||
305 | version 0.9.18: |
||
306 | |||
307 | - header fix (time.h) |
||
308 | - fixed inline asm without operand case |
||
309 | - fixed 'default:' or 'case x:' with '}' after (incorrect C construct accepted |
||
310 | by gcc) |
||
311 | - added 'A' inline asm constraint. |
||
312 | |||
313 | version 0.9.17: |
||
314 | |||
315 | - PLT generation fix |
||
316 | - tcc doc fixes (Peter Lund) |
||
317 | - struct parse fix (signaled by Pedro A. Aranda Gutierrez) |
||
318 | - better _Bool lvalue support (signaled by Alex Measday) |
||
319 | - function parameters must be converted to pointers (signaled by Neil Brown) |
||
320 | - sanitized string and character constant parsing |
||
321 | - fixed comment parse (signaled by Damian M Gryski) |
||
322 | - fixed macro function bug (signaled by Philippe Ribet) |
||
323 | - added configure (initial patch by Mitchell N Charity) |
||
324 | - added '-run' and '-v' options (initial patch by vlindos) |
||
325 | - added real date report in __DATE__ and __TIME__ macros |
||
326 | |||
327 | version 0.9.16: |
||
328 | |||
329 | - added assembler language support |
||
330 | - added GCC inline asm() support |
||
331 | - fixed multiple variable definitions : uninitialized variables are |
||
332 | created as COMMON symbols. |
||
333 | - optimized macro processing |
||
334 | - added GCC statement expressions support |
||
335 | - added GCC local labels support |
||
336 | - fixed array declaration in old style function parameters |
||
337 | - support casts in static structure initializations |
||
338 | - added various __xxx[__] keywords for GCC compatibility |
||
339 | - ignore __extension__ GCC in an expression or in a type (still not perfect) |
||
340 | - added '? :' GCC extension support |
||
341 | |||
342 | version 0.9.15: |
||
343 | |||
344 | - compilation fixes for glibc 2.2, gcc 2.95.3 and gcc 3.2. |
||
345 | - FreeBSD compile fixes. Makefile patches still missing (Carl Drougge). |
||
346 | - fixed file type guessing if '.' is in the path. |
||
347 | - fixed tcc_compile_string() |
||
348 | - add a dummy page in ELF files to fix RX/RW accesses (pageexec at |
||
349 | freemail dot hu). |
||
350 | |||
351 | version 0.9.14: |
||
352 | |||
353 | - added #warning. error message if invalid preprocessing directive. |
||
354 | - added CType structure to ease typing (faster parse). |
||
355 | - suppressed secondary hash tables (faster parse). |
||
356 | - rewrote parser by optimizing common cases (faster parse). |
||
357 | - fixed signed long long comparisons. |
||
358 | - fixed 'int a(), b();' declaration case. |
||
359 | - fixed structure init without '{}'. |
||
360 | - correct alignment support in structures. |
||
361 | - empty structures support. |
||
362 | - gcc testsuite now supported. |
||
363 | - output only warning if implicit integer/pointer conversions. |
||
364 | - added static bitfield init. |
||
365 | |||
366 | version 0.9.13: |
||
367 | |||
368 | - correct preprocessing token pasting (## operator) in all cases (added |
||
369 | preprocessing number token). |
||
370 | - fixed long long register spill. |
||
371 | - fixed signed long long '>>'. |
||
372 | - removed memory leaks. |
||
373 | - better error handling : processing can continue on link errors. A |
||
374 | custom callback can be added to display error messages. Most |
||
375 | errors do not call exit() now. |
||
376 | - ignore -O, -W, -m and -f options |
||
377 | - added old style function declarations |
||
378 | - added GCC __alignof__ support. |
||
379 | - added GCC typeof support. |
||
380 | - added GCC computed gotos support. |
||
381 | - added stack backtrace in runtime error message. Improved runtime |
||
382 | error position display. |
||
383 | |||
384 | version 0.9.12: |
||
385 | |||
386 | - more fixes for || and && handling. |
||
387 | - improved '? :' type handling. |
||
388 | - fixed bound checking generation with structures |
||
389 | - force '#endif' to be in same file as matching '#if' |
||
390 | - #include file optimization with '#ifndef #endif' construct detection |
||
391 | - macro handling optimization |
||
392 | - added tcc_relocate() and tcc_get_symbol() in libtcc. |
||
393 | |||
394 | version 0.9.11: |
||
395 | |||
396 | - stdarg.h fix for double type (thanks to Philippe Ribet). |
||
397 | - correct white space characters and added MSDOS newline support. |
||
398 | - fixed invalid implicit function call type declaration. |
||
399 | - special macros such as __LINE__ are defined if tested with defined(). |
||
400 | - fixed '!' operator with relocated address. |
||
401 | - added symbol + offset relocation (fixes some static variable initializers) |
||
402 | - '-l' option can be specified anywhere. '-c' option yields default |
||
403 | output name. added '-r' option for relocatable output. |
||
404 | - fixed '\nnn' octal parsing. |
||
405 | - fixed local extern variables declarations. |
||
406 | |||
407 | version 0.9.10: |
||
408 | |||
409 | - fixed lvalue type when saved in local stack. |
||
410 | - fixed '#include' syntax when using macros. |
||
411 | - fixed '#line' bug. |
||
412 | - removed size limit on strings. Unified string constants handling |
||
413 | with variable declarations. |
||
414 | - added correct support for '\xX' in wchar_t strings. |
||
415 | - added support for bound checking in generated executables |
||
416 | - fixed -I include order. |
||
417 | - fixed incorrect function displayed in runtime error. |
||
418 | |||
419 | version 0.9.9: |
||
420 | |||
421 | - fixed preprocessor expression parsing for #if/#elif. |
||
422 | - relocated debug info (.stab section). |
||
423 | - relocated bounds info (.bounds section). |
||
424 | - fixed cast to char of char constants ('\377' is -1 instead of 255) |
||
425 | - fixed implicit cast for unary plus. |
||
426 | - strings and '__func__' have now 'char[]' type instead of 'char *' |
||
427 | (fixes sizeof() return value). |
||
428 | - added __start_xxx and __stop_xxx symbols in linker. |
||
429 | - better DLL creation support (option -shared begins to work). |
||
430 | - ELF sections and hash tables are resized dynamically. |
||
431 | - executables and DLLs are stripped by default. |
||
432 | |||
433 | version 0.9.8: |
||
434 | |||
435 | - First version of full ELF linking support (generate objects, static |
||
436 | executable, dynamic executable, dynamic libraries). Dynamic library |
||
437 | support is not finished (need PIC support in compiler and some |
||
438 | patches in symbol exporting). |
||
439 | - First version of ELF loader for object (.o) and archive (.a) files. |
||
440 | - Support of simple GNU ld scripts (GROUP and FILE commands) |
||
441 | - Separated runtime library and bound check code from TCC (smaller |
||
442 | compiler core). |
||
443 | - fixed register reload in float compare. |
||
444 | - fixed implicit char/short to int casting. |
||
445 | - allow array type for address of ('&') operator. |
||
446 | - fixed unused || or && result. |
||
447 | - added GCC style variadic macro support. |
||
448 | - optimized bound checking code for array access. |
||
449 | - tcc includes are now in $(prefix)/lib/tcc/include. |
||
450 | - more command line options - more consistent handling of multiple |
||
451 | input files. |
||
452 | - added tcc man page (thanks to Cyril Bouthors). |
||
453 | - uClibc Makefile update |
||
454 | - converted documentation to texinfo format. |
||
455 | - added developper's guide in documentation. |
||
456 | |||
457 | version 0.9.7: |
||
458 | |||
459 | - added library API for easy dynamic compilation (see libtcc.h - first |
||
460 | draft). |
||
461 | - fixed long long register spill bug. |
||
462 | - fixed '? :' register spill bug. |
||
463 | |||
464 | version 0.9.6: |
||
465 | |||
466 | - added floating point constant propagation (fixes negative floating |
||
467 | point constants bug). |
||
468 | |||
469 | version 0.9.5: |
||
470 | |||
471 | - uClibc patches (submitted by Alfonso Martone). |
||
472 | - error reporting fix |
||
473 | - added CONFIG_TCC_BCHECK to get smaller code if needed. |
||
474 | |||
475 | version 0.9.4: |
||
476 | |||
477 | - windows port (currently cannot use -g, -b and dll functions). |
||
478 | - faster and simpler I/O handling. |
||
479 | - '-D' option works in all cases. |
||
480 | - preprocessor fixes (#elif and empty macro args) |
||
481 | - floating point fixes |
||
482 | - first code for CIL generation (does not work yet) |
||
483 | |||
484 | version 0.9.3: |
||
485 | |||
486 | - better and smaller code generator. |
||
487 | - full ISOC99 64 bit 'long long' support. |
||
488 | - full 32 bit 'float', 64 bit 'double' and 96 bit 'long double' support. |
||
489 | - added '-U' option. |
||
490 | - added assembly sections support. |
||
491 | - even faster startup time by mmaping sections instead of mallocing them. |
||
492 | - added GNUC __attribute__ keyword support (currently supports |
||
493 | 'section' and 'aligned' attributes). |
||
494 | - added ELF file output (only usable for debugging now) |
||
495 | - added debug symbol generation (STAB format). |
||
496 | - added integrated runtime error analysis ('-g' option: print clear |
||
497 | run time error messages instead of "Segmentation fault"). |
||
498 | - added first version of tiny memory and bound checker ('-b' option). |
||
499 | |||
500 | version 0.9.2: |
||
501 | |||
502 | - even faster parsing. |
||
503 | - various syntax parsing fixes. |
||
504 | - fixed external relocation handling for variables or functions pointers. |
||
505 | - better function pointers type handling. |
||
506 | - can compile multiple files (-i option). |
||
507 | - ANSI C bit fields are supported. |
||
508 | - beginning of float/double/long double support. |
||
509 | - beginning of long long support. |
||
510 | |||
511 | version 0.9.1: |
||
512 | |||
513 | - full ISOC99 initializers handling. |
||
514 | - compound literals. |
||
515 | - structures handle in assignments and as function param or return value. |
||
516 | - wide chars and strings. |
||
517 | - macro bug fix |
||
518 | |||
519 | version 0.9: |
||
520 | - initial version.> |