]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - TODO
gitignore: add gmqcc, gmqpak, qmcvm, testsuite, pak.
[xonotic/gmqcc.git] / TODO
diff --git a/TODO b/TODO
index 76f627a21b109ad9ccbafbd06d022989b0b59aae..94163afefcf65b50881f672f3e5735a7e42b128f 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,5 +1,5 @@
-GMQCC is quite feature compleat.  But that doesn't address the fact that
-it can be improved.  This is a list of things that we're like to support
+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.
 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.
@@ -10,14 +10,14 @@ Optimizations:
 
         Global Value Numbering:
             Eliminate redundancy by constructing a value graph of the source
 
         Global Value Numbering:
             Eliminate redundancy by constructing a value graph of the source
-            then determinging which values are computed by equivalent expressions.
-            Simaler to Common Subexpression Elimination (CSE), however expressions
-            are determined via underlying equivalnce, opposed to lexically identical
+            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).
 
             expressions (CSE).
 
-        Spare Conditional Constant Propogation:
-            Simultaneously remove dead code and propogates constants. This is
-            not the same as indivial dead code elimination and constant propogation
+        Spare Conditional Constant Propagation:
+            Simultaneously remove dead code and propagates constants. This is
+            not the same as individual dead code elimination and constant propagation
             passes.  This is multipass.
 
     The following are optimizations that can be implemented before the
             passes.  This is multipass.
 
     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
     these are functional language optimizations.
 
     The following are optimizations that can be implemented anywhere, ideally
     these are functional language optimizations.
 
-        Removing Recrusion:
-            Tail recrusive algorithms can be converted to iteration, which
+        Removing Recursion:
+            Tail recursive algorithms can be converted to iteration, which
             does not have to have call overhead.
 
 
             does not have to have call overhead.
 
 
@@ -45,17 +45,20 @@ Language Features:
         Like C
 
     AST Macros:
         Like C
 
     AST Macros:
-        Macros with sanity.  Not textual subsitution.
+        Macros with sanity.  Not textual substiution.
 
     Classes:
         Like C++, but minus the stupidity:
             - No type operator overloads
             - Keep operator overloading for basic operators though.
 
     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" :)
 
     Arrays:
         They're currently implemented, but support in the engine
         plus implicit bounds checks (and ability to turn the bounds
 
     Arrays:
         They're currently implemented, but support in the engine
         plus implicit bounds checks (and ability to turn the bounds
-        checking off) See 
+        checking off)
 
     Exceptions:
         I feel like all languages suck at implementing this.  This would
 
     Exceptions:
         I feel like all languages suck at implementing this.  This would
@@ -63,10 +66,10 @@ Language Features:
         could make it fast using a neat method of "frame pointers".
 
     Overloaded Functions:
         could make it fast using a neat method of "frame pointers".
 
     Overloaded Functions:
-        Ability to make individual functions with the same nume, 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.
         void foo(string bar, string baz="default");
         Supplying just one argument will expand the second argument to
         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
@@ -86,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'];
@@ -120,19 +123,19 @@ Language Features:
 Standalone QCVM:
     The following are QCVM additions:
 
 Standalone QCVM:
     The following are QCVM additions:
 
-        Proper ASM dissasembly:
-            Proper dissasembly of compiled .dat files. Annotated if possible
+        Proper ASM disassembly:
+            Proper disassembly of compiled .dat files. Annotated if possible
             when -g (is used during compilation)
 
         Debugging:
             when -g (is used during compilation)
 
         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.
 
 Testsuite:
             and the state of OFS_* and calls.
 
 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:
 
     Multithreading:
     in the distant future:
 
     Multithreading:
@@ -142,13 +145,13 @@ Testsuite:
         be used and so we can execute many tests in parallel.
 
     Interface:
         be used and so we can execute many tests in parallel.
 
     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
         override them rather).
 
 
 Assembler:
     Possibly support for a future assembler for QCASM.  But we're not
         opposed to using the static task-template files. (A method to
         override them rather).
 
 
 Assembler:
     Possibly support for a future assembler for QCASM.  But we're not
-    entierly sure if it makes sense.
+    entirely sure if it makes sense.