-Release v0.2.4
+Release 0.4.0:
+ * Language:
+ - Vector bitops
+ * Compilation:
+ - Fixed constant folding
+ - New LNO format
+ - Shadowed locals fix
+ - Added warnings for weird precedence usage
+ * Testsuite:
+ - Important fixes to the testsuite (removal of false positives
+ and false negitives)
+ * Build:
+ - Generate PDFs of man documents for Windows releases
+ * Documentation:
+ - Fix some mdoc syntax usage
+
+2013-08-20 v0.3.0
+ * Language:
+ - Return assignments, the ability to assign to the return keyword
+ as if it were a local variable.
+ - Added bitwise XOR operator (^)
+ - Array initializers: e.g float a[] = {1, 2, 3};
+ - Fix bug that dissalowed language operators to be used in strings.
+ * Compilation:
+ - Optimized memory usage (now uses on average %3 less memory for
+ compilation).
+ - Fixed dotranslate (translatable strings)
+ - Rewrote constant folding optimization pass for the parser.
+ - New additional dead-code-elimination-consatant-fold pass for
+ if statements whos expression can be evaluated at compile-time
+ (allowing the if/else branch to be entierly elided at compile-time).
+ - Added support for columns in error diagnostics.
+ - Limit corrector to <= 16 byte strings.
+ - Improved hash function for hashtable (old hash function had 15% error,
+ this speeds up compilation)
+ - Improved performance of in-house allocator with branch-hinting, speeds
+ up compilation of Xonotic by 3 seconds!
+ * QCVM:
+ - Escape strings for -printdefs
+ * Commandline:
+ - Added statistic dumps, gives information about the number of used
+ hashtables, vectors, and number of unique sizes of vectors and
+ hashtables. The amount of memory used for vectors. As well as the
+ number of strdups used in total for compilation.
+ - 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
+ * Testsuite:
+ - Fixed a floating point exception rasied by modulo operation in
+ -memchk.
+ - Added support for the test-suite to source tests and task-template
+ files from subdirectories in the test/ directory.
+ - Now prints the number of failed tests (if any) after all tests
+ are attempted.
+ - Fixed some bugs with error handling resulting in false-positives.
+ * Build:
+ - Can now be compiled with TCC (Tiny C compiler) and function as
+ intended (previously couldn't due to bug in TCC codegen).
+ - Added Gentoo ebuilds.
+ - Added Win32 Makefile for building Win32 packages.
+ - Added Slackware pkg build files.
+ - Added Fedora spec files.
+ - Added Makefile for the BSD make variant.
+ * Misc:
+ - Added valgrind memcheck hook to in-house allocator to help aid
+ in finding invalid reads/writes, and more accurate leaks.
+
+2012-04-27 v0.2.9
* Preprocessor:
- __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
- Fixes some issues with #if operations on macros.
+ - Speed improvements
* Language:
- Untyped `nil` keyword.
- Removed the `noreturn` keyword.
- Support for `static` variables in functions.
- Support for labeled loops.
- UTF-8 Support
+ - enum support: without enum-types
+ (ie no `typedef enum { } foo;`)
+ - Accessing vector components via the dot operator on all
+ 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
* Compilation:
- Various optimizations and progs-size reductions.
- A new spell-checking algorithm tries to hint you at existing
variables on error.
- * qcvm:
+ - 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
+ - Compiler intrinsics: __builtin_floor, __builtin_mod,
+ __builtin_exp, __builtin_isnan
+ - Improved memory tracing
+ - Speed improvements
+ * QCVM:
- Improved commandline argument handling.
- - More builtins: sqrt(), normalize()
+ - More builtins: sqrt(), normalize(), floor()
* Commandline:
+ - Nicer memory dumps
- Support for making individual warnings an error
- 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
+ * 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
+ * Build:
+ - Build scripts for building debian, archlinux and archbsd
+ packages for x86, and x86_64.
+ - Makefile targets for gource visualization, and render of
+ gource visualization.
+
2012-12-27 Hotfix v0.2.2
* Liferanges
- Support for `goto` with labels like in fteqcc.
- `break` and `continue`.
- Short circuit logic.
- - `noreturn` keyword.
- Support for translatable strings via _("str") like in
fteqcc.
* Compilation