]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - CHANGES
Update CHANGES files
[xonotic/gmqcc.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index eba45dc755bf5cc94fa831c3f44049f556ce19b0..8d213340c2602ae74b1cca808a8c5223e3d7d7f3 100644 (file)
--- 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-<warning>
-        - added --add-info
+        - via -Werror-<warning>.
+        - 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.