Remove these too

This commit is contained in:
Dale Weiler 2015-01-13 21:29:09 -05:00
parent 6caaedd269
commit 42b3640bc5
3 changed files with 0 additions and 321 deletions

195
CHANGES
View file

@ -1,195 +0,0 @@
Release 0.3.5:
* Preprocessor:
- Added warning for when preprocessor directives are used in
a macro.
* Language:
- Added vector bit operations.
- Added vector cross product operator `><` for -std=gmqcc.
- Added `[[eraseable]]` and `[[accumulation]]` attributes.
- Removed &~= operator for -std=gmqcc.
- #pragmas which are ignored are actually ignored to EOL.
* Compilation:
- 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).
- 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.
- Archlinux/Archbsd package now generates MTREE.
* Documentation:
- 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:
- 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.
- Added generic attribute syntax and reintroduced `noreturn`
as [[noreturn]].
- Added [[deprecated]] and [[deprecated("message")]].
- 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.
- 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(), 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
* Crashes
2012-12-23 Hotfix v0.2.1
* General bugfixes
2012-12-23 Release 0.2
* Preprocessor:
- Added xonotic compatible preprocessor.
* Language
- Basic xonotic compatibility.
- Array support.
- Added fteqcc's string escape sequences.
- Support for `noref`.
- Support for `goto` with labels like in fteqcc.
- `break` and `continue`.
- Short circuit logic.
- Support for translatable strings via _("str") like in
fteqcc.
* Compilation
- Warnings about uninitialized values.
2012-11-17 Release 0.1
* Compiles id1 code.

62
INSTALL
View file

@ -1,62 +0,0 @@
Installing gmqcc
1. Prerequisites
- A C-Compiler such as gcc or clang
- GNU Make or BSD Make
2. Compilation
If using GNU make program
make
If using BSD make program, the BSDmakefile should be
used instead when you invoke make, if however it ignores BSDmakefile
you can supply it with -f.
make -f BSDmakefile
If no error appears, the following binary files will have been
created:
- gmqcc
- qcvm
- gmqpak
3. Installation
The `install' target will install the 2 binaries to /usr/local/bin
by default.
The Makefile honors the following variables:
- DESTDIR: The installation directory root.
- PREFIX: The installation prefix, default: /usr/local
- BINDIR: Directory for binary executables,
deafult: $PREFIX/bin
To install to /usr/local run:
make install
To install to /usr run:
make PREFIX=/usr install
To install to a package-staging directory such as $pkgdir when
writing a build script file:
make DESTDIR=$pkgdir install
ArchLinux PKGBUILDs (release and git build) can be found in the
respective folders in ./distro/archlinux
ArchBSD PKGBUILDs (release and git build) can be found in the
respective folders in ./distro/archbsd
Slackware SlackBuilds (git build) can be found in ./distro/slackware
Gentoo ebuilds (release) can be found in ./distro/gentoo, as well
as a README explaining how to build them
Debian archives (git build) can be created invoking make in
./distro/deb
Fedora spec files (release) can be found in ./distro/fedora, as well
as a README explaining how to build them.

64
TODO
View file

@ -1,64 +0,0 @@
GMQCC is quite feature complete. But that doesn't address the fact that
it can be improved. This is a list of things that we'd like to support
in the distant future. When the time comes, we can just select a topic
from here and open a ticket for it on the issue tracker. But for the
meantime, this is sort of a cultivating flat file database.
Optimizations:
The following are optimizations that can be implemented after the
transformation into static-single assignment (SSA).
Global Value Numbering:
Eliminate redundancy by constructing a value graph of the source
then determining which values are computed by equivalent expressions.
Similar to Common Subexpression Elimination (CSE), however expressions
are determined via underlying equivalence, opposed to lexically identical
expressions (CSE).
The following are optimizations that can be implemented before the
transformation into a binary (code generator).
Code factoring:
The process of finding sequences of code that are identical,
or can be parameterized or reordered to be identical.
Which can be replaced with calls to a shared subroutine. To
reduce duplicated code. (Size optimization)
Language Features:
The following are language features that we'd like to see implemented in the
future.
AST Macros:
Macros with sanity. Not textual substiution.
Classes:
Like C++, but minus the stupidity:
- No type operator overloads
- Keep operator overloading for basic operators though.
- No inheritance
- No virtuals / pure virtuals
- Essentially "C structs but with operators" :)
Overloaded Functions:
Ability to make individual functions with the same name, but take
different amount of arguments or type of arguments.
Default Argument Substiution:
Ability to specify default values for arguments in functions.
void foo(string bar, string baz="default");
Supplying just one argument will expand the second argument to
become "default", otherwise if two arguments are specified then
the "default" string is overrode with what ever the user passes.
Namespaces:
There is already a ticket open on this. They'd work just like C++
identically even.
Testsuite:
The following are things we'd like to see added to the testsuite
in the distant future:
Interface:
Ability to select individual tests, or set parameters manually
opposed to using the static task-template files. (A method to
override them rather).