]> git.xonotic.org Git - xonotic/gmqcc.git/blob - CHANGES
Merge branch 'cooking' of github.com:graphitemaster/gmqcc into cooking
[xonotic/gmqcc.git] / CHANGES
1 Release 0.4.0:
2     * Language:
3         - Vector bitops
4     * Compilation:
5         - Fixed constant folding
6         - New LNO format
7         - Shadowed locals fix
8         - Added warnings for weird precedence usage
9     * Testsuite:
10         - Important fixes to the testsuite (removal of false positives
11           and false negitives)
12     * Build:
13         - Generate PDFs of man documents for Windows releases
14     * Documentation:
15         - Fix some mdoc syntax usage
16
17 2013-08-20 v0.3.0
18     * Language:
19         - Return assignments, the ability to assign to the return keyword
20           as if it were a local variable.
21         - Added bitwise XOR operator (^)
22         - Array initializers: e.g float a[] = {1, 2, 3};
23         - Fix bug that dissalowed language operators to be used in strings.
24     * Compilation:
25         - Optimized memory usage (now uses on average %3 less memory for
26           compilation).
27         - Fixed dotranslate (translatable strings)
28         - Rewrote constant folding optimization pass for the parser.
29         - New additional dead-code-elimination-consatant-fold pass for
30           if statements whos expression can be evaluated at compile-time
31           (allowing the if/else branch to be entierly elided at compile-time).
32         - Added support for columns in error diagnostics.
33         - Limit corrector to <= 16 byte strings.
34         - Improved hash function for hashtable (old hash function had 15% error,
35           this speeds up compilation)
36         - Improved performance of in-house allocator with branch-hinting, speeds
37           up compilation of Xonotic by 3 seconds!
38     * QCVM:
39         - Escape strings for -printdefs
40     * Commandline:
41         - Added statistic dumps, gives information about the number of used
42           hashtables, vectors, and number of unique sizes of vectors and
43           hashtables. The amount of memory used for vectors. As well as the
44           number of strdups used in total for compilation.
45         - Added compile statistic dumps, gives information about the compiled
46           binary, and LNO, such as the size, CRC, the number of times a
47           specific optimization was applied, etc.
48         - Make -std=qcc default
49     * Testsuite:
50         - Fixed a floating point exception rasied by modulo operation in
51           -memchk.
52         - Added support for the test-suite to source tests and task-template
53           files from subdirectories in the test/ directory.
54         - Now prints the number of failed tests (if any) after all tests
55           are attempted.
56         - Fixed some bugs with error handling resulting in false-positives.
57     * Build:
58         - Can now be compiled with TCC (Tiny C compiler) and function as
59           intended (previously couldn't due to bug in TCC codegen).
60         - Added Gentoo ebuilds.
61         - Added Win32 Makefile for building Win32 packages.
62         - Added Slackware pkg build files.
63         - Added Fedora spec files.
64         - Added Makefile for the BSD make variant.
65     * Misc:
66         - Added valgrind memcheck hook to in-house allocator to help aid
67           in finding invalid reads/writes, and more accurate leaks.
68
69 2012-04-27 v0.2.9
70     * Preprocessor:
71         - __VA_ARGS__ support
72         _ __VA_ARGS__ indexing
73         - Predefined macros like __DATE__, __TIME__, ...
74           (check the manpage for a full list)
75         - Signed numbers as single token in the
76         - Fixes some issues with #if operations on macros.
77         - Speed improvements
78     * Language:
79         - Untyped `nil` keyword.
80         - Removed the `noreturn` keyword.
81         - Added generic attribute syntax and reintroduced `noreturn`
82           as [[noreturn]].
83         - Added [[deprecated]] and [[deprecated("message")]].
84         - Support for `static` variables in functions.
85         - Support for labeled loops.
86         - UTF-8 Support
87         - enum support: without enum-types
88           (ie no `typedef enum { } foo;`)
89         - Accessing vector components via the dot operator on all
90           expressions. Eg: (3 * v).y
91         - Type restricted variadict parameters:
92           ie: void print(string...);
93         - Accessing varargs from QC via: ...(index, type)
94         - New operators: ** (exponentiation), % (modulo), etc
95         - Enumeration attributes: flag, reverse
96     * Compilation:
97         - Various optimizations and progs-size reductions.
98         - A new spell-checking algorithm tries to hint you at existing
99           variables on error.
100         - Some problems with VM related vector-instructions issues
101           have been solved in both DP and our own executor. A new
102           compatbility option (enabled by default) has been added for
103           now: -flegacy-vector-maths
104         - Compiler intrinsics: __builtin_floor, __builtin_mod,
105           __builtin_exp, __builtin_isnan
106         - Improved memory tracing
107         - Speed improvements
108     * QCVM:
109         - Improved commandline argument handling.
110         - More builtins: sqrt(), normalize(), floor()
111     * Commandline:
112         - Nicer memory dumps
113         - Support for making individual warnings an error
114         - via -Werror-<warning>
115         - added --add-info
116     * Testsuite:
117         - Support for QCFLAGS to run tests with several additional
118           flags.
119         - Added support for preprocessor tests
120         - Added preprocessor tests
121         - Added defs.qh (auto included) for qcvm definitions
122     * Syntax Highlighting:
123         - Added various syntax highlighting description files for
124           various text editors / integrated development envirorments,
125           including support for: geany, kate, kwrite, kdevelop, QtCreator,
126           gtksourceview, gedit, sany, nano, jedit
127     * Build:
128         - Build scripts for building debian, archlinux and archbsd
129           packages for x86, and x86_64.
130         - Makefile targets for gource visualization, and render of
131           gource visualization.
132
133
134 2012-12-27 Hotfix v0.2.2
135     * Liferanges
136     * Crashes
137
138 2012-12-23 Hotfix v0.2.1
139     * General bugfixes
140
141 2012-12-23 Release 0.2
142     * Preprocessor:
143         - Added xonotic compatible preprocessor.
144     * Language
145         - Basic xonotic compatibility
146         - Array support
147         - Added fteqcc's string escape sequences.
148         - Support for `noref`.
149         - Support for `goto` with labels like in fteqcc.
150         - `break` and `continue`.
151         - Short circuit logic.
152         - Support for translatable strings via _("str") like in
153           fteqcc.
154     * Compilation
155         - Warnings about uninitialized values
156
157 2012-11-17 Release 0.1
158     * Compiles id1 code