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