2004-06-13 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / mcs / TODO
index 6e292d673b958fa4fecc7a98d7e8654876adc78d..f71c29fa02b64634e34cf746c0ab161255eff2af 100644 (file)
@@ -1,3 +1,28 @@
+Error Reporting:
+----------------
+
+       * Make yyerror show a nice syntax error, instead of the current mess.
+
+Iterators
+---------
+       * `yield' is no longer a keyword, it only has special
+         meaning before a return or break keywords.
+
+       * Study side effects with assign
+       * Study TemporaryStorage/LocalStorage -> Merge/rename
+
+       * Reset should throw not implemented now.
+
+Instance idea
+-------------
+
+       It would be nice to have things that can be "instances" to have an
+       EmitInstance method (this would default to nothing).
+
+       The idea is to be able to use efficiently the instance data on stack
+       manipulations, as opposed to the current scheme, where we basically have
+       a few special cases.
+
 Optimization ideas
 ------------------
 
@@ -35,12 +60,7 @@ Anonymous Methods
                * Before Emit, create proxy classes with proper depth.
                * Emit.
 
-       Return Type:
-               During Resolve, track all the return types.
-               Allow for ec.ReturnType to be null, indicating `Pending Return Evaluation' 
-
-
-       Open question:
+Open question:
                Create a toplevel block for anonymous methods?  
 
 EmitContext.ResolveTypeTree
@@ -84,6 +104,8 @@ Large project:
 Notes on memory allocation
 --------------------------
 
+       Outdated:
+
        A run of the AllocationProfile shows that the compiler allocates roughly
        30 megabytes of strings.  From those, 20 megabytes come from
        LookupType.  
@@ -171,6 +193,8 @@ The use of DottedName
        The problem is that we would still need to construct the name to pass to
        GetType.
 
+       This has been now implemented, its called "QualifiedIdentifier"
+
 current_container/current_namespace and the DeclSpace
 -----------------------------------------------------
 
@@ -372,12 +396,6 @@ OPTIMIZATIONS
 
 * Add a cache for the various GetArrayMethod operations.
 
-* TypeManager.FindMembers:
-
-       Instead of having hundreds of builder_to_blah hash table, have
-       a single one that maps a TypeBuilder `t' to a set of classes
-       that implement an interface that supports FindMembers.
-
 * MakeUnionSet Callers
 
        If the types are the same, there is no need to compute the unionset,