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