mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-01-18 22:31:36 +00:00
TODO: fix typos
This commit is contained in:
parent
14889897da
commit
a2504f6455
1 changed files with 20 additions and 20 deletions
40
TODO
40
TODO
|
@ -1,4 +1,4 @@
|
||||||
GMQCC is quite feature compleat. But that doesn't address the fact that
|
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
|
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
|
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
|
from here and open a ticket for it on the issue tracker. But for the
|
||||||
|
@ -10,14 +10,14 @@ Optimizations:
|
||||||
|
|
||||||
Global Value Numbering:
|
Global Value Numbering:
|
||||||
Eliminate redundancy by constructing a value graph of the source
|
Eliminate redundancy by constructing a value graph of the source
|
||||||
then determinging which values are computed by equivalent expressions.
|
then determining which values are computed by equivalent expressions.
|
||||||
Simaler to Common Subexpression Elimination (CSE), however expressions
|
Similar to Common Subexpression Elimination (CSE), however expressions
|
||||||
are determined via underlying equivalnce, opposed to lexically identical
|
are determined via underlying equivalence, opposed to lexically identical
|
||||||
expressions (CSE).
|
expressions (CSE).
|
||||||
|
|
||||||
Spare Conditional Constant Propogation:
|
Spare Conditional Constant Propagation:
|
||||||
Simultaneously remove dead code and propogates constants. This is
|
Simultaneously remove dead code and propagates constants. This is
|
||||||
not the same as indivial dead code elimination and constant propogation
|
not the same as individual dead code elimination and constant propagation
|
||||||
passes. This is multipass.
|
passes. This is multipass.
|
||||||
|
|
||||||
The following are optimizations that can be implemented before the
|
The following are optimizations that can be implemented before the
|
||||||
|
@ -32,8 +32,8 @@ Optimizations:
|
||||||
The following are optimizations that can be implemented anywhere, ideally
|
The following are optimizations that can be implemented anywhere, ideally
|
||||||
these are functional language optimizations.
|
these are functional language optimizations.
|
||||||
|
|
||||||
Removing Recrusion:
|
Removing Recursion:
|
||||||
Tail recrusive algorithms can be converted to iteration, which
|
Tail recursive algorithms can be converted to iteration, which
|
||||||
does not have to have call overhead.
|
does not have to have call overhead.
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,13 +45,13 @@ Language Features:
|
||||||
Like C
|
Like C
|
||||||
|
|
||||||
AST Macros:
|
AST Macros:
|
||||||
Macros with sanity. Not textual subsitution.
|
Macros with sanity. Not textual substiution.
|
||||||
|
|
||||||
Classes:
|
Classes:
|
||||||
Like C++, but minus the stupidity:
|
Like C++, but minus the stupidity:
|
||||||
- No type operator overloads
|
- No type operator overloads
|
||||||
- Keep operator overloading for basic operators though.
|
- Keep operator overloading for basic operators though.
|
||||||
- No inheritence
|
- No inheritance
|
||||||
- No virtuals / pure virtuals
|
- No virtuals / pure virtuals
|
||||||
- Essentially "C structs but with operators" :)
|
- Essentially "C structs but with operators" :)
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ Language Features:
|
||||||
Ability to make individual functions with the same name, but take
|
Ability to make individual functions with the same name, but take
|
||||||
different amount of arguments or type of arguments.
|
different amount of arguments or type of arguments.
|
||||||
|
|
||||||
Default Argument Subsitution:
|
Default Argument Substiution:
|
||||||
Ability to specify default values for arguments in functions.
|
Ability to specify default values for arguments in functions.
|
||||||
void foo(string bar, string baz="default");
|
void foo(string bar, string baz="default");
|
||||||
Supplying just one argument will expand the second argument to
|
Supplying just one argument will expand the second argument to
|
||||||
|
@ -89,7 +89,7 @@ Language Features:
|
||||||
}
|
}
|
||||||
|
|
||||||
Array Accessor With C-Semantics:
|
Array Accessor With C-Semantics:
|
||||||
Also the abilit to use them as array accessors:
|
Also the ability to use them as array accessors:
|
||||||
|
|
||||||
{
|
{
|
||||||
float hugearray['Z'];
|
float hugearray['Z'];
|
||||||
|
@ -123,19 +123,19 @@ Language Features:
|
||||||
Standalone QCVM:
|
Standalone QCVM:
|
||||||
The following are QCVM additions:
|
The following are QCVM additions:
|
||||||
|
|
||||||
Proper ASM dissasembly:
|
Proper ASM disassembly:
|
||||||
Proper dissasembly of compiled .dat files. Annotated if possible
|
Proper disassembly of compiled .dat files. Annotated if possible
|
||||||
when -g (is used during compilation)
|
when -g (is used during compilation)
|
||||||
|
|
||||||
Debugging:
|
Debugging:
|
||||||
A step-through debuger -d (with seperate compilation as well)
|
A step-through debugger -d (with separate compilation as well)
|
||||||
Called -> qcdb Optionally alias to qcvm -d :)
|
Called -> qcdb Optionally alias to qcvm -d :)
|
||||||
|
|
||||||
We should beable to see the assembly and source it matches to
|
We should be able to see the assembly and source it matches to
|
||||||
and the state of OFS_* and calls.
|
and the state of OFS_* and calls.
|
||||||
|
|
||||||
Testsuite:
|
Testsuite:
|
||||||
The followiung are things we'd like to see added to the testsuite
|
The following are things we'd like to see added to the testsuite
|
||||||
in the distant future:
|
in the distant future:
|
||||||
|
|
||||||
Multithreading:
|
Multithreading:
|
||||||
|
@ -145,13 +145,13 @@ Testsuite:
|
||||||
be used and so we can execute many tests in parallel.
|
be used and so we can execute many tests in parallel.
|
||||||
|
|
||||||
Interface:
|
Interface:
|
||||||
Ability to select individual tests, or set paramaters manually
|
Ability to select individual tests, or set parameters manually
|
||||||
opposed to using the static task-template files. (A method to
|
opposed to using the static task-template files. (A method to
|
||||||
override them rather).
|
override them rather).
|
||||||
|
|
||||||
|
|
||||||
Assembler:
|
Assembler:
|
||||||
Possibly support for a future assembler for QCASM. But we're not
|
Possibly support for a future assembler for QCASM. But we're not
|
||||||
entierly sure if it makes sense.
|
entirely sure if it makes sense.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue