From: Dale Weiler Date: Sun, 6 Oct 2013 02:34:55 +0000 (-0400) Subject: Update CHANGES files X-Git-Tag: 0.3.5~47 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=99e3ae977320383f7ea3c4db0f43dc4b8747b045;p=xonotic%2Fgmqcc.git Update CHANGES files --- diff --git a/CHANGES b/CHANGES index eba45dc..8d21334 100644 --- a/CHANGES +++ b/CHANGES @@ -1,18 +1,55 @@ -Release 0.4.0: +Release 0.3.5: + * Preprocessor: + - Added warning for when preprocessor directives are used in + a macro. * Language: - - Vector bitops + - Added vector bit operations. + - Added vector cross product operator `><` for -std=gmqcc. + - Added `[[eraseable]]` attribute. + - Removed &~= operator for -std=gmqcc. + - #pragmas which are ignored are actually ignored to EOL. * Compilation: - - Fixed constant folding - - New LNO format - - Shadowed locals fix - - Added warnings for weird precedence usage + - Fixed constant folding. + - Fixed column printing in diagnostics. + - Added support for columns in LNOF. + - Shadowed locals fix. + - Improved warning diagnostics for precedence usage and other + various diagnostics. + - Added constant folding logic for builtin functions. + - Prevent divide by zero in constant folding. + - Added unary elision optimization, cases where a unary expression + cancels itself out, e.g `-(-a)` now simplifies to `a`. + - Added strength reduce optimization, for divisions e.g `(A / 10)` + now strength reduces to `(A * (1 / 10)` where `(1 / 10)` is + evaluated at compile time. + - Added superfluous expression elision optimization, e.g `(A + 0), + (A - 0), (A * 1), (A / 1)` can be simplified to just `A`. + - Quake world now compiles with -std=qcc + - Constant folding for `if than` now works for ternary expressions + too. + - Fixed `[[alias]]` attribute type checking, now you can't alias + invalid types. + * QCVM: + - Properly exits on error now. + * Lexer: + - Now prints the character the lexer fails on instead of the + token value. * Testsuite: - Important fixes to the testsuite (removal of false positives - and false negitives) + and false negitives). + - Added a new utility `check-proj.sh` which downloads various Quake + mods and attempts to compile them. + * Commandline: + - Made -fshort-logic, -funtyped-nil and -fvariadic-args default + for -std=gmqcc. * Build: - - Generate PDFs of man documents for Windows releases + - Generate PDFs of man documents for Windows releases. + - Archlinux/Archbsd package now generates MTREE. * Documentation: - - Fix some mdoc syntax usage + - Fixed mdoc(s). + * Misc: + - Added some export scripts for xonotic and nexuiz which generate + specially crafted packages that are used by the check-proj script. 2013-08-20 v0.3.0 * Language: @@ -45,7 +82,7 @@ Release 0.4.0: - Added compile statistic dumps, gives information about the compiled binary, and LNO, such as the size, CRC, the number of times a specific optimization was applied, etc. - - Make -std=qcc default + - Make -std=qcc default. * Testsuite: - Fixed a floating point exception rasied by modulo operation in -memchk. @@ -71,10 +108,10 @@ Release 0.4.0: - __VA_ARGS__ support _ __VA_ARGS__ indexing - Predefined macros like __DATE__, __TIME__, ... - (check the manpage for a full list) - - Signed numbers as single token in the + (check the manpage for a full list). + - Signed numbers as single token in the. - Fixes some issues with #if operations on macros. - - Speed improvements + - Speed improvements. * Language: - Untyped `nil` keyword. - Removed the `noreturn` keyword. @@ -83,16 +120,16 @@ Release 0.4.0: - Added [[deprecated]] and [[deprecated("message")]]. - Support for `static` variables in functions. - Support for labeled loops. - - UTF-8 Support + - UTF-8 Support. - enum support: without enum-types - (ie no `typedef enum { } foo;`) + (ie no `typedef enum { } foo;`). - Accessing vector components via the dot operator on all - expressions. Eg: (3 * v).y + expressions. Eg: `(3 * v).y`. - Type restricted variadict parameters: - ie: void print(string...); - - Accessing varargs from QC via: ...(index, type) - - New operators: ** (exponentiation), % (modulo), etc - - Enumeration attributes: flag, reverse + ie: `void print(string...);`. + - Accessing varargs from QC via: `...(index, type)` + - New operators: ** (exponentiation), % (modulo), etc. + - Enumeration attributes: `flag`, `reverse`. * Compilation: - Various optimizations and progs-size reductions. - A new spell-checking algorithm tries to hint you at existing @@ -100,30 +137,30 @@ Release 0.4.0: - Some problems with VM related vector-instructions issues have been solved in both DP and our own executor. A new compatbility option (enabled by default) has been added for - now: -flegacy-vector-maths + now: -flegacy-vector-maths. - Compiler intrinsics: __builtin_floor, __builtin_mod, - __builtin_exp, __builtin_isnan - - Improved memory tracing - - Speed improvements + __builtin_exp, __builtin_isnan. + - Improved memory tracing. + - Speed improvements. * QCVM: - Improved commandline argument handling. - - More builtins: sqrt(), normalize(), floor() + - More builtins: sqrt(), normalize(), floor(). * Commandline: - - Nicer memory dumps + - Nicer memory dumps. - Support for making individual warnings an error - - via -Werror- - - added --add-info + - via -Werror-. + - added --add-info. * Testsuite: - Support for QCFLAGS to run tests with several additional flags. - - Added support for preprocessor tests - - Added preprocessor tests - - Added defs.qh (auto included) for qcvm definitions + - Added support for preprocessor tests. + - Added preprocessor tests. + - Added defs.qh (auto included) for qcvm definitions. * Syntax Highlighting: - Added various syntax highlighting description files for various text editors / integrated development envirorments, including support for: geany, kate, kwrite, kdevelop, QtCreator, - gtksourceview, gedit, sany, nano, jedit + gtksourceview, gedit, sany, nano, jedit. * Build: - Build scripts for building debian, archlinux and archbsd packages for x86, and x86_64. @@ -142,8 +179,8 @@ Release 0.4.0: * Preprocessor: - Added xonotic compatible preprocessor. * Language - - Basic xonotic compatibility - - Array support + - Basic xonotic compatibility. + - Array support. - Added fteqcc's string escape sequences. - Support for `noref`. - Support for `goto` with labels like in fteqcc. @@ -152,7 +189,7 @@ Release 0.4.0: - Support for translatable strings via _("str") like in fteqcc. * Compilation - - Warnings about uninitialized values + - Warnings about uninitialized values. 2012-11-17 Release 0.1 - * Compiles id1 code + * Compiles id1 code.