Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/ilasm/codegen/ChangeLog')
-rw-r--r--mcs/ilasm/codegen/ChangeLog1687
1 files changed, 1687 insertions, 0 deletions
diff --git a/mcs/ilasm/codegen/ChangeLog b/mcs/ilasm/codegen/ChangeLog
new file mode 100644
index 00000000000..c93e93ee92a
--- /dev/null
+++ b/mcs/ilasm/codegen/ChangeLog
@@ -0,0 +1,1687 @@
+2006-02-22 Ankit Jain <jankit@novell.com>
+
+ * ExternTable.cs (ExternTable.GetTypeRef): Emit a warning if mscorlib is
+ referenced without a corresponding '.assembly extern' directive.
+ * TypeDef.cs (TypeDef.Define): Valuetype class should be sealed. Emit
+ warning if its not, and make it so.
+
+2006-02-20 Ankit Jain <jankit@novell.com>
+
+ * *.cs: Update all .cs files to use Report.Error instead of directly
+ throwing an exception.
+ * CodeGen.cs (CodeGen.ctor): Remove 'report' param, and the related
+ field & property.
+
+2006-02-19 Ankit Jain <jankit@novell.com>
+
+ * ExternTable.cs (ExternTable.GetModuleTypeRef): 'module_table' can be
+ null.
+
+2006-02-19 Ankit Jain <jankit@novell.com>
+
+ * CodeGen.cs (CodeGen.Write): Use only filename as the name of the
+ module.
+ * TypeDef.cs (TypeDef.ResolveAsMethodRef): New.
+ (TypeDef.ResolveMethod): Change signature to take ret_type, params
+ etc instead of a signature string. Also, if the method does not exist,
+ then use ResolveAsMethodRef to return a MethodRef for it.
+ (TypeDef.ResolveVarargMethod): Likewise.
+ (TypeDef.ResolveField): Likewise.
+ * MethodRef.cs (MethodRef.Resolve): Update use of TypeDef.Resolve*
+ methods.
+ * FieldRef.cs (FieldRef.Resolve): Update use of TypeDef.ResolveField.
+ * PropertyDef.cs (PropertyDef.AsMethodDef): Throws an exception is the
+ method is not a MethodDef.
+ (PropertyDef.Define): Use AsMethodDef to ensure that get/set/other are
+ MethodDefs.
+ * EventDef.cs (EventDef.AsMethodDef): Same as PropertyDef.
+ (EventDef.Define): Likewise.
+
+2006-02-19 Ankit Jain <jankit@novell.com>
+
+ * CodeGen.cs (CodeGen.ThisModule): New.
+ (CodeGen.Write): Set module name if not set by '.module' directive.
+ * Module.cs: Inherit from ExternRef.
+
+2006-02-10 Ankit Jain <jankit@novell.com>
+
+ * CodeGen.cs (CodeGen.ResolveMethod): Throw exception if global method
+ not found.
+ (CodeGen.ResolveField): Likewise for global field.
+
+2006-02-08 Ankit Jain <jankit@novell.com>
+
+ * PeapiTypeRef.cs (PeapiTypeRef.MakeBoundArray): Simplify and fix
+ behavior.
+
+2006-01-31 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (TypeDef.AddMethodDef): Throw exception with proper message
+ if adding a duplicate method.
+
+2006-01-31 Ankit Jain <jankit@novell.com>
+
+ * InstrTable.cs (inst_table): Add 'readonly.' .
+
+2006-01-31 Ankit Jain <jankit@novell.com>
+
+ * ExternTable.cs (ExternTable.GetTypeRef): If type is from an
+ undeclared assembly, then add reference to the assembly.
+
+2006-01-28 Ankit Jain <jankit@novell.com>
+
+ * MethodDef.cs:
+ * TypeManager.cs:
+ * MethodPointerTypeRef.cs:
+ * ExternMethodRef.cs: Remove unused variables to fix warnings.
+
+2006-01-28 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (GenericInfo):
+ * MethodDef.cs (GenericInfo): Remove (unused).
+
+2006-01-23 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (TypeDef.AddFieldDef): Throw exception if duplicate field being
+ added.
+
+2006-01-19 Ankit Jain <jankit@novell.com>
+
+ * Module.cs (Module): New. Class for representing this module.
+ * CodeGen.cs (CodeGen): Update to use the new Module class.
+ (CodeGen.Write): Resolve this_module.
+
+2006-01-19 Ankit Jain <jankit@novell.com>
+
+ * GenericParameters.cs (GenericParameter): Implement ICustomAttrTarget.
+ (GenericParameter.Resolve): New overload, reduce code duplication.
+ (GenericParameters.GetGenericParam): New. Returns a GenericParameter.
+ (GenericParameters.GetGenericParamNum): Update to use new GetGenericParam.
+
+ * TypeDef.cs (TypeDef.GetGenericParam): New. Two overloads for id and index.
+ * MethodDef.cs (MethodDef.GetGenericParam): Likewise.
+
+2006-01-19 Ankit Jain <jankit@novell.com>
+
+ * MethodRef.cs (MethodRef.Resolve): Resolve owner.
+
+2006-01-16 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (TypeDef.IComparable): Implement IComparable interface.
+ * TypeManager.cs (TypeManager.DefineAll): Sort type_table before Define()'ing.
+
+2006-01-16 Ankit Jain <jankit@novell.com>
+
+ * TypeRef.cs (TypeRef.CreateMethodRef): Return a TypeSpecMethodRef if
+ this is a modified (eg. []) type.
+
+2006-01-16 Ankit Jain <jankit@novell.com>
+
+ * BaseTypeRef.cs (BaseTypeRef.Resolve): Make this abstract.
+ (BaseTypeRef.CreateMethodRef):
+ (BaseTypeRef.CreateFieldRef): Make protected and abstract.
+ * BaseClassRef.cs (BaseClassRef.Clone): Make this abstract.
+ Update all derived classes.
+ * PrimitiveTypeRef.cs (PrimitiveTypeRef.CreateMethodRef):
+ * GenericTypeInst.cs (GenericTypeInst.CreateMethodRef): Implement, but throw
+ exception as this method is not used.
+
+2006-01-14 Ankit Jain <jankit@novell.com>
+
+ * GenericParamRef.cs (GenericParamRef.Resolve): Apply modifications to the
+ cached type.
+
+2006-01-14 Ankit Jain <jankit@novell.com>
+
+ * GenericParamRef.cs (GenericParamRef.Resolve): Set PeapiType of the instance
+ to the cached one.
+
+2006-01-13 Ankit Jain <jankit@novell.com>
+
+ * GenericParamRef.cs (GenericParamRef.Resolve): Ensure no duplicate
+ GenParams get added to the TypeSpec table.
+ * GenericMethodSig.cs (GenericMethodSig.GetInstance): Cache sigs in a
+ static hashtable.
+ * BaseMethodRef.cs (BaseMethodRef.GetGenericMethodRef): Cache GenericMethodRefs.
+
+2006-01-13 Ankit Jain <jankit@novell.com>
+
+ Create BaseMethodRef from IMethodRef. Replace usage of IMethodRef
+ with BaseMethodRef in *all* files.
+ Remove implementations of IMethodRef's methods from derived classes.
+ * BaseMethodRef.cs: New.
+
+2006-01-13 Ankit Jain <jankit@novell.com>
+
+ Move caching of method-refs and field-refs to BaseTypeRef, and use
+ CreateMethodRef & CreateFieldRef for creating the actual object.
+ Override these in derived classes to return the right objects.
+
+ * BaseTypeRef.cs (BaseTypeRef.CreateMethodRef): New.
+ (BaseTypeRef.CreateFieldRef): New.
+ (BaseTypeRef.GetMethodRef): Implement caching.
+ (BaseTypeRef.GetFieldRef): Likewise.
+
+ GenericTypeInst and PrimitiveTypeRef are not cached, so static hashtables
+ are used here for caching their MethodRefs n FieldRefs.
+
+ * GenericTypeInst.cs (GenericTypeInst.GetMethodRef): Override and use
+ static hashtable to do caching.
+ (GenericTypeInst.GetFieldRef): Likewise.
+ * PrimitiveTypeRef.cs (PrimitiveTypeRef.GetMethodRef): Likewise.
+ (PrimitiveTypeRef.GetFieldRef): Likewise.
+
+ * CodeGen.cs (CodeGen.GetGlobalMethodRef): New. Cache global method refs.
+ (CodeGen.GetGlobalFieldRef): New. Cache global field refs.
+
+2006-01-13 Ankit Jain <jankit@novell.com>
+
+ Create BaseClassRef, BaseGenericTypeRef from IClassRef & IGenTypeRef.
+ Replace usage of interfaces ITypeRef, IClassRef & IGenTypeRef with their
+ corresponding Base* types.
+ * BaseTypeRef.cs: New. Combine ITypeRef and ModifiableType into this.
+ * BaseClassRef.cs: New.
+ * BaseGenericTypeRef.cs: New.
+ * TypeSpecMethodRef.cs (TypeSpecMethodRef.ctor): Slight change in order
+ of params.
+
+2006-01-12 Ankit Jain <jankit@novell.com>
+
+ * MethodDef.cs (MethodDef.CreateSignature): Use "`n" only for generic
+ methods.
+
+2006-01-11 Ankit Jain <jankit@novell.com>
+
+ * InstrTable.cs (inst_table): Uncomment stelem and ldelem .
+
+2006-01-11 Ankit Jain <jankit@novell.com>
+
+ Support new syntax of specifying namespace, ie., as
+ part of the type name. (gen-nested2.il)
+ * TypeDef.cs (TypeDef.ctor): Add outer as a param.
+ Don't split name on '.' for inner classes.
+ * CodeGen.cs (CodeGen.BeginTypeDef): Update to use only 'name'
+ for inner classes and FullName for outermost class.
+
+2006-01-10 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (TypeDef.GetGenericParamNum): Return -1 if type has no
+ generic parameters.
+ * MethodDef.cs (MethodDef.GetGenericParamNum): Likewise.
+
+2006-01-10 Ankit Jain <jankit@novell.com>
+
+ * MethodDef.cs (MethodDef.WriteCode): Resolve generic params for abstract
+ methods also.
+
+2006-01-10 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (TypeDef.TypeParameters): New.
+ (TypeDef.ResolveGenParams): New. Resolve any gen param refs in
+ constraints, base class ref or implemented interfaces.
+ * MethodDef.cs (MethodDef.ResolveGenParams): Update to use new Resolve
+ overloads and ResolveConstraints for GenericParameters.
+
+ * GenericTypeInst.cs (GenericTypeInst.Resolve): Resolve generic args.
+ * GenericParamRef.cs (GenericParamRef.Resolve): Implement.
+ * GenericParameters.cs (GenericParameter.ResolveConstraints): New.
+ (GenericParameters.ResolveConstraints): New.
+ * GenericArguments.cs (GenericArguments.Resolve): New.
+
+ * TypeRef.cs (TypeRef.GetGenericTypeInst): Don't cache.
+ * ExternTypeRef.cs (ExternTypeRef.GetGenericTypeInst): Likewise.
+
+2006-01-09 Ankit Jain <jankit@novell.com>
+
+ * GenericArguments.cs (GenericArguments.is_resolved): New.
+ (GenericArguments.p_type_list): New. Resolve only once and return this.
+
+2006-01-09 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (TypeDef.Define): Set is_defined to true as soon as the
+ Peapi type gets created.
+
+2006-01-09 Ankit Jain <jankit@novell.com>
+
+ * GenericTypeRef.cs: Rename to ..
+ * GenericParamRef.cs: .. this.
+ (IGenericTypeRef): New.
+ (GenericParamRef): Implement IGenericTypeRef.
+ * GenericTypeInst.cs (GenericTypeInst): Implement IGenericTypeRef instead
+ of IClassRef.
+ (GenericTypeInst.ResolveOnly): Rename to ResolveNoTypeSpec to implement
+ IGenericTypeRef.ResolveNoTypeSpec .
+ * MethodDef.cs (MethodDef.ResolveGenParams): Update to use GenericParamRef.
+ * Local.cs (Local.GetPeapiLocal): Use IGenericTypeRef.
+
+2006-01-08 Ankit Jain <jankit@novell.com>
+
+ * InstrTable.cs (inst_table): Add stelem.any, ldelem.any and
+ constrained. instructions.
+
+2006-01-07 Ankit Jain <jankit@novell.com>
+
+ * GenericParameters.cs (GenericParameter): New.
+ (GenericParameters): Collection of Generic parameters.
+ * TypeDef.cs:
+ * CodeGen.cs:
+ * MethodDef.cs: Update to use the new GenericParameters class.
+
+2006-01-06 Ankit Jain <jankit@novell.com>
+
+ GenericTypeInst.Resolve should do the expected thing ie., resolve and add
+ the Generic Inst to the typespec table. Use ResolveOnly to Resolve w/o
+ adding to the table.
+ * GenericTypeInst.cs (GenericTypeInst.Resolve): Rename to ..
+ (GenericTypeInst.ResolveOnly): .. this.
+ (GenericTypeInst.ResolveAsClass): Rename to Resolve.
+
+ * TypeDef.cs (TypeDef.Define): Revert the ResolveAsClass calls added here.
+ * Local.cs (Local.GetPeapiLocal): Use new GenericTypeInst.ResolveOnly if type is
+ GenericTypeInst.
+
+2006-01-06 Ankit Jain <jankit@novell.com>
+
+ * IClassRef.cs (IClassRef.Clone): New.
+ (IClassRef.GetGenericTypeInst): Get the Generic Instance of the IClassRef.
+ (IClassRef.ResolveInstance): Resolves the generic instance and returns the
+ resolved PEAPI type.
+
+ * TypeRef.cs:
+ * ExternTypeRef.cs: Implement new methods of IClassRef.
+ Classes implementing IClassRef cache their generic instances (GenericTypeInst)
+ and their corresponding resolved PEAPI types.
+
+ * CodeGen.cs (CodeGen.GetTypeRef): Gets a TypeRef given a type name and caches them.
+
+ GenericTypeInst is now used for any Generic Type Instance, including any
+ extern types. ExternTypeRefInst is not used now.
+ * GenericTypeInst.cs (GenericTypeInst): Implement IClassRef instead of ITypeRef.
+ (GenericTypeInst.ResolveAsClass): Adds the instance to the TypeSpec table after Resolve()'ing it.
+ Clone () returns a cloned instance which shares its class_ref and generic arguments.
+
+ * TypeDef.cs (TypeDef.Define): Use ResolveAsClass for base class and interfaces
+ being implemented if they are GenericTypeInsts.
+
+2005-12-24 Jb Evain <jbevain@gmail.com>
+
+ * FeatureAttr.cs: tag as Flags, add an Instance value.
+ * PropertyDef.cs (PropertyDef.Resolve): Tag the property as instance or class.
+
+2005-12-22 Ankit Jain <jankit@novell.com>
+
+ * MethodDef.cs (MethodDef.ctor): Add type_def param. Use this for all uses of
+ the owner type_def. ResolveGenParams () before creating signature.
+ (MethodDef.ResolveGenParams):
+ (MethodDef.ResolveGenParam): Remove type_def param, instead use type_def field.
+ (MethodDef.Define): Remove overload with typedef param.
+ (MethodDef.CreateSignature): Put "`0" right after the name instead of at the end.
+ * TypeDef.cs (TypeDef.DefineContents): Update usage of MethodDef.Define .
+
+2005-12-21 Ankit Jain <jankit@novell.com>
+
+ * GenericArguments.cs (GenericArguments): New.
+ * ExternTypeRefInst.cs (ExternTypeRefInst):
+ * GenericTypeInst.cs (GenericTypeInst):
+ * GenericMethodSig.cs (GenericMethodSig): Update to use new GenericArguments class.
+
+2005-12-16 Ankit Jain <jankit@novell.com>
+
+ Use tuple of (field name, type_name) for fielddef hashtable in TypeDef.cs and
+ CodeGen.cs
+ * FieldDef.cs (FieldDef.Type): New.
+ * TypeDef.cs (TypeDef.ResolveField): Add 'type_name' param.
+ * CodeGen.cs (CodeGen.ResolveField): Add 'type_name' param.
+ * FieldRef.cs (FieldRef.Resolve): Update usage of .ResolveField .
+ * GlobalFieldRef (GlobalFieldRef.Resolve): Likewise.
+ * ExternTable.cs (IScope.FullName): New. Returns full name including and enclosing class
+ or assembly/module name.
+ (ExternRef.FullName):
+ (ExternModule.FullName):
+ (ExternAssembly.FullName): Implement new IScope.FullName .
+ * ExternTypeRef.cs (ExternTypeRef.Clone): Clone SigMod also.
+ (ExternTypeRef.FullName): Update to return full name including enclosing type or assembly
+ or module name.
+ (ExternTypeRef.Name): Update to return only full_name with modifiers (array/pointers etc).
+ (ExternTypeRef.GetReflectedType): Use Name instead of FullName as only type name is required here.
+ * GenericTypeRef.cs (GenericTypeRef.FullName): Return proper fullname of the form (!0 or !!0).
+ * GenericTypeInst.cs (GenericTypeInst.ctor): Change param 'full_name' to 'name'. 'full_name' is
+ constructed here using the type parameter list.
+ Update code to use name instead of full_name.
+
+2005-12-15 Ankit Jain <jankit@novell.com>
+
+ * CodeGen.cs (CodeGen.SetAssemblyName): Multiple .assembly declarations with different
+ names are not allowed.
+
+2005-12-14 Ankit Jain <jankit@novell.com>
+
+ * PeapiTypeRef.cs (PeapiTypeRef.MakeBoundArray): Handle the case when only
+ lower bound (no size info) is available.
+
+2005-12-14 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (TypeDef.ctor): name_space can be null.
+
+2005-12-13 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (TypeDef.ctor): Ensure that 'name' contains only the last part
+ of the full (namespace + name) dotted name.
+
+2005-12-12 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (TypeDef.Define): Ensure nested visibility for a nested class.
+ (TypeDef.NestedFullName): New.
+
+2005-12-09 Ankit Jain <jankit@novell.com>
+
+ * MethodDef.cs (MethodDef.GenParamCount): typar_list can be null.
+
+2005-12-09 Ankit Jain <jankit@novell.com>
+
+ * ITypeRef.cs (ITypeRef.GetMethodRef): Add 'gen_param_count' param.
+ * Sentinel.cs (Sentinel.GetMethodRef): Update.
+ * GlobalMethodRef.cs (GlobalMethodRef.ctor): Add 'gen_param_count' param.
+ (GlobalMethodRef.Resolve): Update usage of MethodDef.CreateSignature .
+ * TypeDef.cs (TypeDef.GetGenericParamNum): New.
+ (TypeDef.DefineContents): Update usage of ITypeRef.GetMethodRef .
+ * ExternTypeRefInst.cs (ExternTypeRefInst.ctor): Add parameter for list of type
+ parameters (type_list).
+ (ExternTypeRefInst.Clone): Clone type_list also.
+ (ExternTypeRefInst.Resolve): Resolve the list of type parameters, and create
+ instance of PEAPI.GenericTypeInst instead of PEAPI.ClassRefInst .
+ (ExternTypeRefInst.GetMethodRef): Update.
+ * GenericTypeInst.cs (GenericTypeInst.GetMethodRef): Update signature. Update
+ usage of TypeSpecMethodRef.ctor .
+ * MethodRef.cs (MethodRef.ctor): Add 'gen_param_count' param.
+ (MethodRef.Resolve): Throw exception for non-existant owner. Update usage of
+ MethodDef.CreateSignature .
+ * ExternMethodRef.cs (ExternMethodRef.ctor): Add 'gen_param_count' param.
+ (ExternMethodRef.Resolve): Update usage of PEFile.AddMethodToTypeSpec and .AddMethod
+ * GenericMethodRef.cs (GenericMethodRef.PeapiMethod): Return PEAPI.Method obtained in
+ .Resolve .
+ * GenericTypeRef.cs (GenericTypeRef.GetMethodRef): Update.
+ * MethodPointerTypeRef.cs (MethodPointerTypeRef.GetMethodRef): Likewise.
+ * TypeSpecMethodRef.cs (TypeSpecMethodRef.ctor): Add 'gen_param_count' param.
+ (TypeSpecMethodRef.Resolve): Update usage of PEFile.AddMethodToTypeSpec .
+ * MethodDef.cs (MethodDef.ctor): Add 'typars_list' param.
+ (MethodDef.AddGenericParam): Replace ..
+ (MethodDef.AddGenericParams): .. with this.
+ (MethodDef.GenParamCount): New.
+ (MethodDef.GetGenericParamNum): New. Returns index for a given method type parameter name.
+ (MethodDef.ResolveGenParams): Resolves type parameter names in the parameter
+ list to their corresponding indices.
+ (MethodDef.ResolveGenParam): Resolves a give type parameter to its corresponding
+ index.
+ (MethodDef.CreateSignature): Add 'gen_param_count' param.
+ * TypeRef.cs (TypeRef.GetMethodRef): Update.
+ * ExternTypeRef.cs (ExternTypeRef.GetMethodRef): Likewise.
+ * PrimitiveTypeRef.cs (PrimitiveTypeRef.GetMethodRef): Likewise.
+
+2005-12-05 Ankit Jain <jankit@novell.com>
+
+ * TypeDef.cs (TypeDef.GenericInfo.num): New.
+ (TypeDef.AddGenericParam): Set num for GenericInfo.
+ * MethodDef.cs (MethodDef.GenericInfo.num): New.
+ (MethodDef.AddGenericParam): Set num for GenericInfo.
+ * GenericTypeRef.cs (GenericTypeRef.ctor): Update to use PEAPI.GenParam
+ instead of PEAPI.MVar and PEAPI.GenericTypeSpec.
+
+2005-11-28 Ankit Jain <jankit@novell.com>
+
+ * ExternTypeRef.cs (extern_table): Remove unused field.
+ (.ctor): Remove parameter for extern_table. Update usage accordingly.
+ * ExternTable.cs (IScope): Remove unused 'table' parameter.
+ (ExternRef): Change IScope interface implementation accordingly. Update
+ call to ExternTypeRef.ctor for the previous change.
+
+2005-09-15 Ankit Jain <jankit@novell.com>
+
+ * DeclSecurity.cs (IDeclSecurityTarget.AddDeclSecurity): Remove.
+ (IDeclSecurityTarget.AddPermission),
+ (IDeclSecurityTarget.AddPermissionSet): New.
+ (DeclSecurity.IDeclSecurityTarget): Implement new interface methods.
+ (DeclSecurity.sec_action),
+ (DeclSecurity.data): Remove.
+ (DeclSecurity.permissionset_table): New.
+ (DeclSecurity.ctor): Replace parameterized constructor with a default one.
+ (DeclSecurity.AddTo): AddDeclSecurity for all Security Actions in the permissionset_table.
+ * TypeDef.cs (TypeDef.declsecurity_list): Remove.
+ (TypeDef.decl_sec): New.
+ (TypeDef.IDeclSecurityTarget): Implement new interface methods.
+ (TypeDef.DefineContents): Use new decl_sec instead of declsecurity_list.
+ * CodeGen.cs (CodeGen.assembly_declsec): Change type from ArrayList to DeclSecurity.
+ (CodeGen.EndAssemblyRef): Set current_customattrtarget and current_declsectarget to null.
+ (CodeGen.IDeclSecurityTarget): Implement new interface methods.
+ (CodeGen.Write): Add assembly_declsec to the assembly (using DeclSecurity.AddTo).
+ * ExternTable.cs (ExternAssembly.declsec_list): Remove.
+ (ExternAssembly.decl_sec): New.
+ (ExternAssembly.Resolve): Use new decl_sec instead of declsec_list.
+ (ExternAssembly.IDeclSecurityTarget): Implement new interface methods.
+ * MethodDef.cs (MethodDef.declsecurity_list): Remove.
+ (MethodDef.decl_sec): New.
+ (MethodDef.IDeclSecurityTarget): Implement new interface methods.
+ (MethodDef.WriteCode): Use new decl_sec instead of declsecurity_list.
+ * ExternTypeRef.cs (ExternTypeRef.GetReflectedType): New.
+
+2005-09-08 Ankit Jain <jankit@novell.com>
+
+ * CodeGen.cs (CodeGen.stack_reserve): New.
+ (CodeGen.SetStackReserve): New.
+ (CodeGen.Write): SetStackReserve on the pefile.
+
+2005-09-06 Ankit Jain <jankit@novell.com>
+
+ * ExternTable.cs (ExternRef.is_resolved): New.
+ (ExternModule.Resolve, ExternAssembly.Resolve,
+ ExternTable.Resolve): Return if is_resolved. Set to true at the end.
+
+2005-08-29 Ankit Jain <jankit@novell.com>
+
+ * InstrTable.cs (inst_table): Comment out stelem and ldelem opcodes.
+
+2005-08-26 Ankit Jain <jankit@novell.com>
+
+ * ExternTable.cs (IScope): New. Interface for ResolutionScope.
+ (ExternRef): Implement IScope.
+ (ExternRef.GetTypeRef): Handle references to nested classes.
+ (ExternRef.GetValueType): Remove. Logic combined with GetType.
+ (ExternRef.GetType): Add param 'is_valuetype' and handle accordingly.
+ * ExternTypeRef.cs (ExternTypeRef): Implement IScope.
+ (ExternTypeRef.extern_ref),
+ (ExternTypeRef.ctor),
+ (ExternTypeRef.ExternRef): Change extern_ref type from ExternRef to IScope.
+ (ExternTypeRef.nestedtypes_table),
+ (ExternTypeRef.nestedclass_table): New. Hashtables for nested classes.
+ (ExternTypeRef.Resolve): Resolve parent if it is ExternTypeRef type.
+ (ExternTypeRef.GetTypeRef): New.
+ (ExternTypeRef.GetExternTypeRef): New. Returns the resolve PEAPI type.
+ (ExternTypeRef.GetType): New.
+
+2005-08-23 Ankit Jain <jankit@novell.com>
+
+ * ExternTable.cs (ExternTable.ctor): Remove. Move the initialization code
+ to the new method AddCorlib.
+ (ExternTable.AddCorlib): New.
+ (ExternTable.Resolve): Assembly_table can be null so check before using it.
+ (ExternTable.GetTypeRef): AddCorlib if mscorlib is being referenced but
+ assembly_table is still null.
+ * CodeGen.cs (CodeGen.SetAssemblyName): Call AddCorlib if name is not mscorlib.
+ (CodeGen.Write): Pass null for new outputDir param for PEFile ctor.
+ * (PrimitiveTypeRef.Name): New. Returns the full_name.
+
+2005-08-18 Ankit Jain <jankit@novell.com>
+
+ * IMethodRef.cs (IMethodRef.Owner): New. Returns owner of the method.
+ * GlobalMethodRef.cs (GlobalMethodRef),
+ MethodRef.cs (MethodRef),
+ ExternMethodRef.cs (ExternMethodRef),
+ GenericMethodRef.cs (GenericMethodRef),
+ TypeSpecMethodRef.cs (TypeSpecMethodRef): Implement IMethodRef.Owner.
+ * CustomAttr.cs (CustomAttr.IsSuppressUnmanaged): New. Checks if the
+ it is a "System.Security.SuppressUnmanagedCodeSecurityAttribute" and
+ is from "mscorlib" or the current assembly is mscorlib itself.
+ * TypeDef.cs (TypeDef.DefineContents),
+ MethodDef.cs (MethodDef.WriteCode): Set HasSecurity attribute if
+ SuppressUnmanagedCodeSecurity custom attribute is present.
+ * ExternTable.cs (ExternRef.Name): New.
+ * ExternTypeRef.cs (ExternTypeRef.ExternRef): New. Returns the corresponding
+ extern ref.
+
+2005-08-18 Ankit Jain <jankit@novell.com>
+
+ * MethodDef.cs (MethodDef.WriteCode): Process custom attributes and decl security
+ lists even for abstract methods.
+
+2005-08-16 Ankit Jain <jankit@novell.com>
+
+ * CodeGen.cs (CodeGen.current_field_native_type): New.
+ (CodeGen.AddFieldMarshalInfo): New. Add marshal info for the current field.
+ (CodeGen.AddFieldDef): Add marshal info for the field.
+ * FieldDef.cs (FieldDef.native_type): New. Native type for marshalling.
+ (FieldDef.AddMarshalInfo): New. Set native_type.
+ (FieldDef.Resolve): Set MarshalInfo for field_def.
+ * MethodDef.cs (MethodDef.ret_native_type): New. Native type for return type.
+ (MethodDef.AddRetTypeMarshalInfo): New.
+ (MethodDef.EntryPoint): Throw exception is the method is not static.
+ (MethodDef.Resolve): Call overload with class_def=null.
+ (MethodDef.Resolve): Add global methods to code_gen.PEFile.
+ Add marshal info for return type.
+ * ParamDef.cs (ParamDef.native_type): New. Native type for marshalling.
+ (ParamDef.AddMarshalInfo): New.
+ (ParamDef.Define): Add marshal info to peapi_param.
+
+2005-08-08 Ankit Jain <jankit@novell.com>
+
+ * ExternTypeRef.cs (ExternTypeRef.Clone): Use full_name instead of FullName
+ to avoid cloning modifiers (like []).
+
+2005-08-08 Ankit Jain <jankit@novell.com>
+
+ * CodeGen.cs (CodeGen.entry_point): New bool field.
+ (CodeGen.HasEntryPoint): New. Property to mark that the assembly
+ has an entrypoint.
+ (CodeGen.Write): Throw Exception if an EXE has been requested but the
+ source file has no entrypoint defined.
+
+2005-08-05 Ankit Jain <jankit@novell.com>
+
+ * DeclSecurity.cs: New File.
+ (DeclSecurity): New class.
+ (IDeclSecurityTarget): New interface.
+ * TypeDef.cs (TypeDef): Implement IDeclSecurityTarget.
+ (TypeDef.DefineContents): Add DeclSecurity info.
+ * CodeGen.cs (CurrentDeclSecurityTarget): New. Property for current
+ DeclSecurity target.
+ (BeginTypeDef, BeginMethodDef, BeginAssemblyRef): Set current DeclSecurity
+ target accordingly.
+ (AddAssemblyDeclSecurity): New. Add DeclSecurity info to assembly.
+ * ExternTable.cs (ExternAssembly): Implement IDeclSecurityTarget.
+ (Resolve): Add DeclSecurity info to AssemblyRef.
+ * MethodDef.cs (MethodDef): Implement IDeclSecurityTarget.
+ (WriteCode): Add DeclSecurity info to MethodDef.
+
+2005-08-03 Ankit Jain <jankit@novell.com>
+
+ * GlobalMethodRef.cs (GlobalMethodRef.Resolve): Use CreateVarargSignature
+ to create method's signature for a vararg method.
+
+2005-08-02 Ankit Jain <ankit@corewars.org>
+
+ Fix #61512.
+ * TypeDef.cs (TypeDef.Define): Use default values for pack and size if only
+ one of them is unspecified.
+
+2005-05-10 Ankit Jain <ankit@corewars.org>
+
+ Fix #74768.
+ * ExternTable.cs (ExternRef.GetTypeRef): Make ValueClass if requested.
+ Hack alongwith Hari.
+
+2005-05-06 Ankit Jain <ankit@corewars.org>
+
+ * MethodDef.cs (MethodDef.GetNamedParamPos): Param num starts from 1 for instance
+ methods.
+ * CodeGen.cs (CodeGen.BeginTypeDef): Set current_customattrtarget when reopening a
+ class.
+
+2005-04-27 Ankit Jain <ankit@corewars.org>
+
+ * ExternTypeRefInst.cs (ExternTypeRefInst.GetMethodRef): Use method_table to avoid
+ creating duplicates.
+ * PrimitiveTypeRef.cs (PrimitiveTypeRef.GetMethodRef): Use method_table to avoid
+ creating duplicates
+ * PeapiTypeRef.cs (Pair): New class. Tuple of PEAPI.Type and string.
+ (PeapiTypeRef.type_table): New.
+ (PeapiTypeRef.MakeArray, MakeBoundArray, MakeManagedPointer, MakeUnmanagedPointer,
+ MakeCustomModified): Use type_table to avoid creating duplicates.
+
+2005-04-22 Atsushi Enomoto <atsushi@ximian.com>
+
+ * InstrTable.cs :
+ ble.un.s and blt.un.s were incorrectly added to the table.
+
+2005-04-22 Ankit Jain <ankit@corewars.org>
+
+ * TypeSpecMethodRef.cs (TypeSpecMethodRef.Resolve): Set is_resolved
+ to true.
+
+2005-04-18 Ankit Jain <ankit@corewars.org>
+
+ * CodeGen.cs (CodeGen.AddManifestResource): Add a
+ ManifestResource to manifestResources ArrayList.
+ (CodeGen.Write): Add all resources to the pefile.
+
+2005-04-12 Ankit Jain <ankit@corewars.org>
+
+ * CustomAttr.cs (ICustomAttrTarget): New interface.
+ * TypeDef.cs: Implement ICustomAttrTarget.
+ * FieldDef.cs, PropertyDef.cs, ParamDef.cs, EventDef.cs
+ (AddCustomAttribute): Implement ICustomAttrTarget
+ (.Resolve): Add custom attributes.
+ * CodeGen.cs (CurrentCustomAttrTarget): New. Property for
+ current CustomAttr target.
+ (BeginTypeDef, BeginMethodDef, BeginAssemblyRef): Set
+ current_customattrtarget accordingly.
+ * ExternTable.cs (ExternRef): Implement ICustomAttrTarget.
+ (ExternModule.Resolve): Add custom attributes to ModuleRef.
+ (ExternAssembly.Resolve): Add custom attributes to AssemblyRef.
+ * MethodDef.cs: Implement ICustomAttrTarget and add custom
+ attributes.
+ (GetParam): New. Get ParamDef by index.
+
+2005-04-08 Ankit Jain <radical@corewars.org>
+
+ * MethodDef.cs (named_param_table, CreateNamedParamTable): Remove.
+ (GetNamedParamPos): Implement using a linear scan.
+
+ * TypeDef.cs (TypeDef): Initialize 'is_enum_class'.
+ (Define): Set 'is_value_class' or 'is_enum_class' depending on
+ whether the parent is System.ValueType or System.Enum. Update to
+ changes in PEAPI.cs.
+
+2005-03-17 Ankit Jain <radical@corewars.org>
+
+ * MethodDef.cs: Added method AddParamDefaultValue for adding DefaultValue
+ to a method parameter.
+ * ParamDef.cs: Added method AddDefaultValue and handling of default value.
+
+2005-02-07 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: Don't die on duplicate local symbols. Fixes bug
+ 72149. Patch by Sohail Somani.
+
+2004-12-14 Raja R Harinath <rharinath@novell.com>
+
+ * MethodDef.cs (CreateSignature): Add a space in generated signature.
+
+2004-12-02 Jackson Harper <jackson@ximian.com>
+
+ * ExternTypeRefInst.cs: When converting to arrays we loose our valuetypedness.
+
+2004-12-02 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: Abstract methods don't get bodies. Even if there
+ are bodies there.
+
+2004-12-02 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: If the type is an interface auto set fields to
+ static (and give a warning if they are not static), and set
+ methods to abstract virtual (and give warning if they were not already).
+ * FieldDef.cs:
+ * TypeDef.cs: Accessors and convience properties for getting and
+ setting the method/field attributes.
+
+
+2004-12-02 Jackson Harper <jackson@ximian.com>
+
+ * FieldDef.cs: Set the underlying type for bytearray data constants. This
+ fixes bug #70153 and #70154 which my previous fix caused.
+
+2004-08-01 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DebuggingInfo.cs : csc build fix (see bug #62230).
+
+2004-07-27 Martin Baulig <martin@ximian.com>
+
+ * IInstr.cs (IInstr): Made this an abstract class and not an
+ interface, added a .ctor which takes a Location.
+ (IInstr.Location): New public readonly field.
+
+ * CodeGen.cs (CodeGen.SymbolWriter): New public property.
+ (CodeGen.BeginSourceFile, EndSourceFile): New public methods.
+ (CodeGen.EndMethodDef): Take a `Location' argument.
+ (CodeGen.Write): Create debugging info if the user requested it.
+
+ * MethodDef.cs (MethodDef.ctor): Added `CodeGen codegen' and
+ `Location start' arguments. If the user requested debugging
+ information, register ourselves with the symbol writer.
+ (MethodDef.WriteCode): Emit debugging information.
+
+ * DebuggingInfo.cs: New file.
+
+2004-07-23 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: Params are 1 based if the method is instance
+ because of the 'this' arg.
+
+2004-07-21 Jackson Harper <jackson@ximian.com>
+
+ * ExternTypeRefInst.cs: Use the PeapiType so that modified types
+ will actually work. Add a Clone method so that type ref insts
+ aren't duplicated making them modified multiple times.
+
+2004-07-12 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: Local lists are not lazyily allocated so they were
+ getting added to every method. This is legal but wastes space.
+
+2004-07-08 Jackson Harper <jackson@ximian.com>
+
+ * CodeGen.cs: Add assembly custom attributes to the pe file.
+ * CustomAttr.cs: Custom attributes are now added through the
+ pefile, this ensures that they get emitted properly.
+ * ExternTable.cs: Allow adding custom attributes to assembly
+ refs.
+
+2004-06-26 Jackson Harper <jackson@ximian.com>
+
+ * TypeDef.cs: Preserve the order of fields in a class. Then after
+ all the fields have been defined reset the order in PEAPI to the
+ correct order. This is done so sequential layouts actually
+ work. The order needs to be reset because it can be lost during
+ the recursive definition phase.
+ * MethodDef.cs: Use and ExternModule for pinvoke data's module
+ refs. This way we don't get duplicate module refs.
+
+2004-06-24 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: Report when defining methods just like MS.
+ * TypeDef.cs: Error message when we can't find a locla method.
+
+2004-06-23 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: sigh, another varargs fix that probably breaks
+ other varargs tets. Someday I will get this right, I don't think
+ today is that day though. This fix basically just makes sure to
+ trim the sentinel off of signatures. Also eliminated some code
+ duplication.
+ * ParamDef.cs: Make IsSentinel work for both cases of generating a
+ sentinel param def.
+
+2004-06-20 Jackson Harper <jackson@ximian.com>
+
+ * SwitchInstr.cs: Allow switches with no labels.
+
+2004-06-20 Jackson Harper <jackson@ximian.com>
+
+ * InstrTable.cs: Add .u8 opcodes for ldind and ldelem these are
+ just aliases to their .i8 equivelents.
+
+2004-06-19 Jackson Harper <jackson@ximian.com>
+
+ * MethodPointerTypeRef.cs: New File - represents a method pointer
+ that is being treated as a typeref. For example method void*() in
+ the statement castclass method void*().
+
+2004-06-19 Jackson Harper <jackson@ximian.com>
+
+ * InstrTable.cs: Add undocumented brnull opcode. This is really
+ just an alias for brfalse.
+
+2004-06-19 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: Add a method to create vararg signatures from a
+ list of typerefs that matches the algorithm for creating vararg
+ signatures from paramdefs. This is used when creating methodref
+ signatures.
+ * MethodRef.cs: Use the new CreateVarargSignature method to create
+ the methods signature if it is a vararg method.
+
+2004-06-14 Jackson Harper <jackson@ximian.com>
+
+ * CodeGen.cs: Allow file refs to be added.
+ * FileRef.cs: New file - represents a file ref.
+
+2004-06-14 Jackson Harper <jackson@ximian.com>
+
+ * CodeGen.cs: Allow adding module refs.
+ * ExternTable.cs: Add ExternModule refs.
+ * ExternTypeRef.cs: Take an ExternRef which can be either an
+ assmebly ref or a module ref.
+
+2004-06-14 Jackson Harper <jackson@ximian.com>
+
+ * CodeGen.cs: Implement setting module names.
+
+2004-05-23 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: Cache vararg signatures so a new memberref is not
+ created for each vararg pattern.
+
+2004-05-22 Jackson Harper <jackson@ximian.com>
+
+ * InstrTable.cs: ldc.i4.M1 is aliased to ldc.i4.m1. Fixes bug #58524.
+
+2004-05-22 Jackson Harper <jackson@ximian.com>
+
+ * GlobalMethodRef.cs: Check for sentinel properly.
+
+2004-04-03 Jackson Harper <jackson@ximian.com>
+
+ * CodeGen.cs: cast
+
+2004-04-02 Jackson Harper <jackson@ximian.com>
+
+ * CodeGen.cs: Allow setting assembly info.
+
+2004-04-01 Jackson Harper <jackson@ximian.com>
+
+ * CodeGen.cs: Add a current assembly ref and methods to create/end
+ it so we can set assembly ref attributes.
+ * ExternTable.cs: Make the ExternAssembly public so that its
+ attributes can be set.
+
+2004-03-28 Jackson Harper <jackson@ximian.com>
+
+ * PeapiTypeRef.cs: Check for null bounds in bound arrays. Patch by
+ Vladimir Vukicevic.
+ * ModifiablyType.cs: Set names properly for bound arrays.
+
+2004-02-18 Jackson Harper <jackson@ximian.com>
+
+ * ExternTypeRefInst.cs: New file - represents an instance of an
+ extern type ref, used for making value type tokens.
+ * TypeDef.cs: Add implementing classes.
+
+2003-12-10 Jackson Harper <jackson@ximian.com>
+
+ * ModifiableType.cs: Allow the conversion list to be got/set.
+ * ExternTypeRef.cs: Add a Clone method. Remove table modification.
+
+2003-12-10 Jackson Harper <jackson@ximian.com>
+
+ * ExternTable.cs: Add methods to update a types name.
+ * ExternTypeRef.cs: When a types name is modified update it in the
+ table.
+
+2003-12-08 Jackson Harper <jackson@ximian.com>
+
+ * ModifiableType.cs: Put modifier and class in the list in the
+ correct order.
+
+2003-11-18 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: Add support for .zeroinit. This is just another
+ way of initializing locals.
+
+2003-11-17 Jackson Harper <jackson@ximian.com>
+
+ * LdstrInstr.cs: Allow strings to be created as bytearrays.
+
+2003-10-28 Jackson Harper <jackson@ximian.com>
+
+ * ExternTable.cs: Revert back to resolving value and class types
+ into the same table. This avoids types being resolved multiple
+ times when classrefs are used with valuetypes.
+
+2003-10-28 Jackson Harper <jackson@ximian.com>
+
+ * ExternTable.cs: This is now used to store ExternTypeRefs so we
+ only create 1 for each external type.
+ * ExternTypeRef.cs: Only create one method and field per a
+ signature/name.
+
+2003-10-18 Jackson Harper <jackson@ximian.com>
+
+ * ExternTable.cs: Separate class and value types into diff tables.
+
+2003-10-18 Jackson Harper <jackson@ximian.com>
+
+ * InstrTable.cs: Use short branch instructions instead of aliasing them
+ to the long branch instructions.
+
+2003-10-13 Jackson Harper <jackson@ximian.com>
+
+ * MethodDef.cs: Check for null param lists in vararg
+ methods. Fixes bug #49614.
+
+2003-10-11 Jackson Harper <jackson@ximian.com>
+
+ * GenericTypeRef.cs: Allow Mvars to be a base type.
+ * GenericMethodRef.cs: Basically just a wrapper around an existing
+ method making it into a generic method.
+ * GenericMethodSig.cs: Signature for a generic method.
+
+2003-10-08 Jackson Harper <jackson@ximian.com>
+
+ * PeapiTypeRef.cs: Remove old hackery for adding methods to
+ arrays, use typespecs now.
+
+2003-10-08 Jackson Harper <jackson@ximian.com>
+
+ * InstrTable.cs: Add unbox.any instruction.
+ * MethodDef.cs: Allow generic parameters to be added to methods.
+
+2003-10-06 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodInfo.cs: Use report to display no label error message.
+
+2003-10-01 Jackson Harper <jackson@latitudegeo.com>
+
+ * LabelInfo.cs: Fix tabbing, add ToString so labels are printed
+ properly in error messages.
+
+2003-09-27 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodDef.cs: Allow PInvoke info to be added.
+
+2003-09-21 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Add methods for adding data. CodeGen now takes a
+ report object for giving users errors/warnings/info.
+ * FieldDef.cs: When a data constant is assigned to a field the
+ constant might not exist yet. So just take the constants name and
+ look it up when writting code.
+ * Local.cs: Starting to add some error handling. Still playing
+ with diff ways to do this.
+ * MethodDef.cs: Add some error handling for local var lookups
+ * TypeDef.cs: Data is allways global so it should never be added
+ to a class
+ * TypeRef.cs: Error message for lookups.
+
+2003-09-20 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeDef.cs: Rework so multiple constraints can be added to a
+ generic parameter.
+
+2003-09-16 Jackson Harper <jackson@latitudegeo.com>
+
+ * InstrTable.cs: endfault instruction (which is just endfinally
+ with a costume on).
+
+2003-09-15 Jackson Harper <jackson@latitudegeo.com>
+
+ * FinallyBlock.cs: The sad thing is how long it took me to realize
+ what was going on here...
+
+2003-09-13 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodInstr.cs: callvirt operation is implicitly instance.
+
+2003-09-12 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeRef.cs: Remove unused enum, this has been moved to the
+ ModifiableType base class.
+
+2003-09-08 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeDef.cs: By default types will have System.Object as their
+ parent type if no parent type is specified (this is what PEAPI
+ does) however if we are assembling corlib the System.Object type
+ will not have System.Object as its parent type.
+
+2003-08-19 Jackson Harper <jackson@latitudegeo.com>
+
+ * DataDef.cs: Make name public so data names can be looked up
+ * FieldDef.cs: Stub method for adding data values
+ * TypeDef.cs: Implement long form overrides, fix some backwords
+ variable naming, add a method to lookup data definitions.
+
+2003-08-19 Jackson Harper <jackson@latitudegeo.com>
+
+ * IClassRef.cs: Removed methods that have been moved into ITypeRef
+ * MethodDef.cs: Make some properties public, Add method to get a
+ list of parameter types. This is used to build signatures. Alow
+ sentinels in signatures and in param lists. Fix some tabbing.
+ * ParamDef.cs: Expose the parameters type so they can be used when
+ building signatures.
+ * TypeDef.cs: Add and emit overrides.
+
+2003-08-10 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Fix tabbing
+ * ModifiableType.cs: Modify a types signature when the type is
+ modified instead of waiting untill the end. Signatures need to be
+ modified immediatly because they are used in method signatures and
+ would fail for overloaded operations if sigs weren't modified
+ right away.
+ * ExternTypeRef.cs: Add signature modifications, fix some tabbing
+ * GenericTypeInst.cs: Use ModifiableType as a base
+ * GenericTypeRef.cs: Use ModifiableType as a base
+ * PeapiTypeRef.cs: No longer take or modify type names.
+ * PrimitiveTypeRef.cs: Add signature modifications, fix some tabbing.
+ * Sentinel.cs: Add signature modifications, fix some tabbing.
+ * TypeRef.cs: Add signature modifications, fix some tabbing.
+
+2003-08-05 Nick Drochak <ndrochak@gol.com>
+
+ * IClassRef.cs: Fix build on .NET
+
+2003-08-03 Jackson Harper <jackson@latitudegeo.com>
+
+ * IClassRef.cs: Add method for making types into value types
+ * ExternTypeRef.cs: Add functionality for valuetypes
+ * MethodDef.cs: Handle Vararg signatures individually. Fixes for
+ new Sentinel type in vararg signatures
+ * MethodRef.cs: Use new SentinelTypeRef instead of Sentinel type
+ ref constant.
+ * ParamDef.cs: New method to check if this parameter is the sentinel
+ * TypeRef.cs: Add some functionality for creating valuetypes
+ * Sentinel.cs: New type represents the sentinel
+
+2003-08-03 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeDef.cs: Make types into value types if specified. Also
+ add the functionality to make types into Enums.
+ TODO: Value types of nested classes.
+
+2003-08-03 Jackson Harper <jackson@latitudegeo.com>
+
+ * LabelInfo.cs: Move this type outside of MethodDef, because other
+ types use LabelInfos for label references now.
+ * BranchInstr.cs: Take a LabelInfo instead of information on a label.
+ * HandlerBlock.cs: Take a LabelInfo instead of information on a label.
+ * MethodDef.cs: Return LabelInfo from AddLabel methods. New method for
+ adding a reference to a label.
+
+2003-08-02 Jackson Harper <jackson@latitudegeo.com>
+
+ * ExternMethodRef.cs: Remove top secret debugging code.
+ * MethodDef.cs: Less elegant but more bugfree method of doing explicit
+ offsets for labels. Just put the offset labels in another list and
+ define them in another loop.
+
+2003-08-02 Jackson Harper <jackson@latitudegeo.com>
+
+ * IMethodRef.cs: Method refs should expose their call conv. This is
+ needed so the call conv can be modified for the newobj operation which
+ is implicitly instance.
+ * ExternMethodRef.cs: Expose call conv. Don't resolve vararg methods
+ more then once.
+ * GlobalMethodRef.cs: Expose call conv
+ * TypeSpecMethodRef.cs: Expose call conv
+ * MethodInstr.cs: For newobj operations set the call conv to instance
+
+2003-07-31 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodDef.cs: Allow 0 offsets for labels, and make sure to only
+ use offsets when we are supposed to.
+
+2003-07-30 Jackson Harper <jackson@latitudegeo.com>
+
+ * BranchInstr.cs: Allow explicit offsets for labels
+
+2003-07-29 Jackson Harper <jackson@latitudegeo.com>
+
+ * FilterBlock.cs: Use a handler block for the this block. This
+ makes it easier to create filters using braces, labels, or offsets
+ * HandlerBlock.cs: Allow handler blocks to be created using positions,
+ offsets, and labels.
+ * MethodDef.cs: Add methods to create labels all 3 ways, and emit
+ labels created by each of the methods.
+ * TryBlock.cs: Use a handler block instead of label strings. This
+ allows all three methods of label creation to be used.
+
+2003-07-29 Jackson Harper <jackson@latitudegeo.com>
+
+ * IInstr.cs: Instructions now get their parent method when being
+ emitted.
+ * *Instr.cs: Adjust emit method to accept a methoddef
+
+2003-07-27 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Set the assembly name when creating the PEFile.
+
+2003-07-27 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Do not create the PEFile untill the resolve phase. This
+ fixes the problem with ilasm creating blank files if their is a
+ failure in the parsing phase and not being able to set the assembly
+ name.
+ * ExternTable.cs: Do not reference the assemblies untill after the
+ PEFile untill the Resolve phase.
+
+2003-07-27 Jackson Harper <jackson@latitudegeo.com>
+
+ * ExternFieldRef.cs: Resolve as a typespec field if neccasary, make
+ sure to not resolve more then once.
+ * ExternMethodRef.cs: Resolve as a typespec method if neccasary
+ * ExternTypeRef.cs: Use modifiable type as base class
+ * FieldRef.cs: Make sure to not resolve more then once.
+ * GlobalFieldRef.cs: Make sure to not resolve more then once.
+ * GlobalMethodRef.cs: Make sure to not resolve more then once.
+ * ITypeRef.cs: Types no longer need the AsClassRef method
+ * MethodDef.cs: Only decriment param count for vararg methods if there
+ is an ellipsis on the end of the param list.
+ Fix little bug so return types allways get resolved.
+ * PeapiTypeRef.cs: Use TypeRef.Ellipsis for a place holder in bound
+ arrays instead of null
+ * PrimitiveTypeRef.cs: Use modifiable type as a base
+ * TypeRef.cs: Use modifable type as base, and let it do all the
+ modifications
+ * TypeSpecFieldRef.cs: Make sure to not resolve more then once.
+ * ModifiableType.cs: New base class for all types. This class will
+ handle all of the typemodification and determine whether methods
+ should be added to the type or the types typespec.
+
+2003-07-25 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodDef.cs: If methods do not have the static attribute give
+ them the instance calling convention.
+
+2003-07-21 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodDef.cs: Do not decremint param count for vararg methods,
+ the ellipsis is needed later
+
+2003-07-20 Jackson Harper <jackson@latitudegeo.com>
+
+ * GenericTypeInst.cs: New File - A type reference to an instance
+ of a generic type. ie Set<int32>
+ * TypeSpecFieldRef.cs: New File - A field ref that is attached to
+ a typespec. This can be used with modified types, and generic types.
+ * TypeSpecMethodRef.cs: New File - A method ref that is attached
+ to a typespec. This can be used with modified types, and generic types.
+ * GenericTypeRef.cs: Create method refs and field refs using the
+ new typespec classes.
+ * ITypeRef.cs: Types should now be able to have methods and fields
+ attached to them
+ * PeapiTypeRef.cs: Set UseTypeSpec to true if the type is modified
+ * PrimitiveTypeRef.cs: Add methods to attach fields and
+ methods. This just uses the TypeSpec* classes so I don't need to
+ create classrefs.
+ * TypeRef.cs: Set UseTypeSpec to true if a type is modified.
+
+2003-07-17 Jackson Harper <jackson@latitudegeo.com>
+
+ * GenericTypeRef.cs: New File - A reference to a generic type
+ spec. ie !0 or !1
+ * InstrTable.cs: Add the stelem and ldelem opcodes.
+
+2003-07-15 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeDef.cs: Allow adding and emitting generic type constraints.
+
+2003-07-14 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeDef.cs: Emit generic parameters.
+
+2003-06-15 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Fix buglet in cache name creating (I will claim this
+ was a typo).
+
+2003-06-14 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: When creating nested types cache their names using
+ the parent/type method but emit their short name.
+
+2003-06-14 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Add methods for setting corflags, subsystem, and corflags.
+
+2003-06-14 Jackson Harper <jackson@latitudegeo.com>
+
+ * ITypeRef.cs, PeapiTypeRef.cs, TypeRef.cs: Quick hack for custom
+ modified types.
+
+2003-06-08 Jackson Harper <jackson@latitudegeo.com>
+
+ * EventDef.cs: Only add one method for addon, fire, other, and
+ removeon
+
+2003-06-08 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeDef.cs: Add properties to types.
+ * PropertyDef.cs: New file - Implementation of a type property feature
+
+2003-06-08 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeDef.cs: Fix silly null reference bug.
+
+2003-06-08 Jackson Harper <jackson@latitudegeo.com>
+
+ * EventDef.cs: New file - An event definition.
+ * FeatureAttr.cs: New file - Attributes for features (events and
+ properties)
+ * MethodRef.cs: Only resolve methods once.
+ * TypeDef.cs: Allow Events to be added to types. Also add
+ functionality to add generic type parameters to types. The
+ actually emission of these type parameters is commented out untill
+ I commit my patches to PEAPI and work out the syntax of constraints.
+
+2003-05-31 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Allow this assembly name to be set.
+ * HandlerBlock.cs: Make label fields public so they can be
+ accessed in a TryBlocks constructor.
+ * MethodDef.cs: Allow random labels to be inserted at the current
+ position. These are use for scope blocks.
+ * TryBlock.cs: New constructor takes from and to labels as a HandlerBlock
+
+2003-05-31 Jackson Harper <jackson@latitudegeo.com>
+
+ * CustomAttr.cs: New file - Custom attributes
+ * InstrTable.cs: Add stelem.r4 and stelem.r8 instructions. Add
+ . tail to unaligned modifier.
+ * LdtokenInstr.cs: Add type tokens.
+ * MethodDef.cs: Fix IsVararg, add method to add custom attributes,
+ emitting custom attributes when writing code, allow for Ellipsises
+ in param lists, add coma between args in signatures.
+ * ParamDef.cs: Add the Ellipsis pseudo param
+ * PrimitiveTypeRef.cs: System.String and System.Object can be
+ referenced without an [mscorlib] assembly prefix.
+ * TypeDef.cs: Add Custom attributes.
+
+2003-05-25 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Add method to resolve global vararg methods.
+ * ExternMethodRef.cs: Resolve vararg methods
+ * GlobalMethodRef.cs: Set calling conventions, add vararg methods
+ * MethodDef.cs: Set calling conventions, add vararg methods
+ * MethodRef.cs: Set calling conventions, add vararg methods
+ * TypeDef.cs: Resolve vararg methods
+ * TypeRef.cs: Add Ellipsis pseudo type, this should never really
+ be used as a type, but is stored in arrays with other types. Pass
+ call convs to methodref constructor.
+
+2003-05-24 Jackson Harper <jackson@latitudegeo.com>
+
+ * CatchBlock.cs: Remove typo causing to labels to be the same as
+ from labels.
+ * FaultBlock.cs: Remove typo causing to labels to be the same as
+ from labels.
+ * FilterBlock.cs: Remove typo causing to labels to be the same as
+ from labels.
+ * MethodDef.cs: Allow for multiple labels to point to the same
+ line. ie:
+ END_BLOCK:
+ PASS:
+ do stuff
+
+2003-05-23 Jackson Harper <jackson@latitudegeo.com>
+
+ * CatchBlock.cs: New file - Initial implementation of a catch
+ block
+ * FaultBlock.cs: New file - Initial implementation of a fault
+ block
+ * FilterBlock.cs: New file - Initial implementation of a filter
+ block
+ * FinallyBlock.cs: New file - Initial implementation of a finally
+ block
+ * HandlerBlock.cs: New file - A handler block is the block
+ assosciated with a SEH clause
+ * ISehClause: New file - Interface that structured exception
+ handling clauses must implement.
+ * TryBlock.cs: New file - Initial implementation only supports
+ label form SEH. This TryBlock is added to a method as an
+ instruction out of convenience, tryblock is not an instruction.
+
+2003-05-22 Jackson Harper <jackson@latitudegeo.com>
+
+ * InstrTable.cs: Add unsigned conversion instructions.
+
+2003-05-21 Jackson Harper <jackson@latitudegeo.com>
+
+ * CalliInstr.cs: New file - The calli instruction
+ * Ldtoken.cs: New file - The ldtoken instruction
+ * InstrTable.cs: ldc.i8 is a TOKEN_I8 and should be given the
+ MiscToken.ldc_i8 value.
+
+2003-05-18 Jackson Harper <jackson@latitudegeo.com>
+
+ * ExternMethodRef.cs: Accept and add calling conventions. Add
+ methods using array methods if owners are arrays, resolve methods
+ named <init> as .ctor.
+ * ExternTable.cs: Add method to get value classes.
+ * ExternTypeRef.cs: Add AsClassRef method, GetMethodRef now takes
+ calling conventions.
+ * IClassRef.cs: GetMethodRef now takes calling conventions
+ * ITypeRef.cs: Add IsArray IsRef and AsClassRef methods
+ * MethodRef.cs: Change <init> to .ctor
+ * PeapiTypeRef.cs: This class is no longer an ITypeRef because it
+ cannot be converted to a IClassRef. Add IsArray and IsRef, use new
+ Class::GetArray* methods to convert to arrays.
+ * PrimitiveTypeRef.cs: Add method to convert to an IClassRef
+ * TypeRef.cs: Add IsArray and IsRef, add method to convert to
+ IClassRef. GetMethodRef now takes calling conventions
+
+2003-05-11 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodDef.cs: Add named param table and methods to get named param
+ positions. Add method to get named local variables slot
+ number. Make sure param_lists aren't null when defining them. Add
+ specialname and rtspecialname attributes if the method being
+ defined is named '.ctor' or '.cctor'. Add new method for creating
+ signatures using a list of typerefs.
+ * GlobalMethodRef.cs: Use new CreateSignature method that takes an
+ array of typerefs.
+ * MethodRef.cs: Use new CreateSignature method
+ * InstrTable.cs: Use INSTR_LOCAL and INSTR_PARAM tokens for
+ instructions that take local and param operands.
+
+2003-05-11 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeDef.cs: Add size and packing information
+
+2003-05-10 Jackson Harper <jackson@latitudegeo.com>
+
+ * IFieldRef.cs: New file - interface field references must implement
+ * ExternFieldRef.cs: New file - Reference to a field in another
+ assembly
+ * FieldRef.cs: New file - Reference to a field in this assembly
+ * GlobalFieldRef.cs: New file - Reference to a global field
+ * FieldInstr.cs: New file - Instruction that takes a field
+ instruction
+ * CodeGen.cs: Add method to resolve global methods
+ * ExternTypeRef.cs: Add method to get method references
+ * FieldDef.cs: Allow methods to be resolved before being defined
+ * IClassRef.cs: Add method to get field references.
+ * TypeDef.cs: Add method to resolve member fields.
+ * TypeRef.cs: Add method to get field references
+
+2003-05-10 Jackson Harper <jackson@latitudegeo.com>
+
+ * GlobalMethodRef.cs: New file - A reference to a global method
+ * CodeGen.cs: Store global methods and fields in hashtables to
+ make lookup easier. Add method to resolve global methods.
+
+2003-05-10 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodDef.cs: Allways set max stack
+
+2003-05-10 Jackson Harper <jackson@latitudegeo.com>
+
+ * ExternTable.cs: Alias corlib to mscorlib since these seem to get
+ used interchangably
+
+2003-05-10 Jackson Harper <jackson@latitudegeo.com>
+
+ * IMethodRef.cs: New file - Interface that method references must
+ implement
+ * ExternMethodRef.cs: New file - Reference to a method in another
+ assembly
+ * Local.cs: New file - A Local variable
+ * MethodInstr.cs: New file - an instruction that takes a method
+ reference operand
+ * IClassRef.cs: Add method to get a method reference from a class
+ reference
+ * MethodDef.cs: Add ability to resolve methods before defining
+ them, add max stack, locals, and entry point. Make CreateSignature
+ method public and static so other classes can use it.
+ * TypeDef.cs: Store methods and fields in hashtables so they can
+ be easily retrieved, add method to resolve member methods.
+ * TypeRef.cs: Add method for resolving member methods.
+ * ExternTypeRef.cs: Add methods to get classref and methodrefs
+ * MethodRef.cs: New file - Reference to a method in this assembly.
+
+
+2003-05-07 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeInstr.cs: New file - implementation of instructions that
+ take a single type instruction.
+
+2003-05-06 Jackson Harper <jackson@latitudegeo.com>
+
+ * SwitchInstr.cs: New file - implementation of switch instructions
+
+2003-05-05 Jackson Harper <jackson@lattidegeo.com>
+
+ * MethodDef.cs: Add ability to add and emit labels
+ * BranchInstr.cs: New file - Branch instructions
+
+2003-05-04 Jackson Harper <jackson@latitudegeo.com>
+
+ * LdcInstr.cs: New file - lcd* instructions
+ * MiscInstr.cs: New file - Just an enum that gives me constant
+ values for instructions PEAPI does not define in an enum
+ * InstrTable.cs: Use new MiscInstr constants instead of string values.
+
+2003-05-01 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Define the contents of types after all types have
+ been resolved, this avoids the infinite loop that would occur if a
+ type was a member of its base type.
+ * TypeDef.cs: Method to define contents after being defined.
+
+2003-05-01 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeManager.cs: Check if type is defined before defining it.
+
+2003-05-01 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Add outer classes to typedefs if necesary
+ * InstrTable.cs: ldtoken instruction is a INSTR_TOK token
+ * TypeDef.cs: Add outer class property
+
+2003-04-30 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodDef.cs: Accept and emit instructions.
+ * CodeGen.cs: Fix typo
+ * IInstr.cs: New file - Interface for instructions that are added to methods
+ * IntInstr.cs: New file - Instruction that takes a single int
+ param
+ * LdstrInstr.cs: New file - ldstr instruction (the only
+ instruction that takes a string parameter)
+
+2003-04-28 Jackson Harper <jackson@latitudegeo.com>
+
+ * InstrTable.cs: Much simpler system. All tokens go into one
+ hashtable now. There is no reason to have them seperated out.
+
+2003-04-20 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Add method to add data
+ * FieldDef.cs: Add method to set a fields value
+ * TypeDef.cs: Add method to add data
+ * DataDef.cs: New file - Definition of a data constant
+
+2003-04-18 Jackson Harper <jackson@latitudegeo.com>
+
+ * FieldDef.cs: Change peapi fielddef name.
+ * MethodDef.cs: Change peapi methoddef name.
+
+2003-04-17 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodDef.cs: New file - definition of a method.
+ * ParamDef.cs: New file - definition of a parameter to a method
+ * TypeDef.cs: Add method definitions, set intransit flag to false
+ before defining members, so a false circular reference is not
+ created.
+ * CodeGen.cs: Add methods to add method definitions
+
+2003-04-17 Jackson Harper <jackson@latitudegeo.com>
+
+ * ExternTypeRef.cs: external types are classrefs
+
+2003-04-17 Jackson Harper <jackson@latitudegeo.com>
+
+ * PeapiTypeRef.cs: New file - base wrapper for type refs that are
+ just peapi types.
+ * PrimitiveTypeRef.cs: New file - A primitive type (char, int, string)
+
+2003-04-17 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeRef.cs: Rewrite - Typerefs are now resolved after parsing.
+ * TypeManager.cs: Rewrite - Just a simple table for looking up
+ typedefs
+ * ExternTable.cs: Create ClassRef's instead of Classes
+ * Location.cs: Make compile
+ * CodeGen.cs: Use new tree system
+
+2003-04-17 Jackson Harper <jackson@latitudegeo.com>
+
+ * ExternTypeRef.cs: New file - Represents a reference to a type in
+ an external assembly
+ * FieldDef.cs: New file - Represents a field definition
+ * IClassRef.cs: New file - Interface that classrefs must
+ implement. This needs some more thought though because once a
+ classref has been modified it is no longer a classref.
+ * ITypeRef.cs: New file - Interface that references to types must
+ implement
+ * TypeDef.cs: New file - Represents the a class definition, and
+ will hold all of the classes members.
+
+2003-04-07 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeRef.cs: Return FieldDef when adding a field def to a class
+
+2003-04-01 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeRef.cs: Add flag for making types pinned
+
+2003-04-01 Jackson Harper <jackson@latitudegeo.com>
+
+ * ClassTable.cs: Do not append a . to names that are not in a
+ namespace
+ * CodeGen.cs: Handle nested classes
+
+2003-03-30 Jackson Harper <jackson@latitudegeo.com>
+
+ * ExternTable.cs: Remove some unsed fields.
+
+2003-03-30 Jackson Harper <jackson@latitudegeo.com>
+
+ * ExternTable.cs: Add method to lookup classes with a full name,
+ instead of having to have namespace and name seperate.
+ * ClassTable.cs: Make method that seprates full names into
+ name/namespaces public.
+
+2003-03-30 Jackson Harper <jackson@latitudegeo.com>
+
+ * InstrTable.cs: Add Calli, detabify
+
+2003-03-29 Jackson Harper <jackson@latitudegeo.com>
+
+ * InstrTable.cs: Add branch ops switch, and lc.r*, also fix some
+ typos for other ops.
+
+2003-03-17 Jackson Harper <jackson@latitudegeo.com>
+
+ * ClassTable.cs: Set defined flag and type attributes for referenced
+ classes when they are defined.
+
+2003-03-17 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodTable.cs: Add method to Check if all methods have been defined, set referenced methods properties
+ when defining them
+ * FieldTable.cs: Add method to check if all fields have been defined, set referenced fields properties
+ when defining them
+ * ClassTable.cs: Make sure all methods and fields are defined.
+
+2003-03-16 Jackson Harper <jackson@latitudegeo.com>
+
+ * MethodTable.cs: Fire events when methods are defined and referenced
+
+2003-03-15 Jackson Harper <jackson@latitudegeo.com>
+
+ * ClassTable.cs: Classes now store field tables
+ * CodeGen.cs: Add methods to add fields and get field references
+
+2003-03-15 Jackson Harper <jackson@latitudegeo.com>
+
+ * FieldTable.cs: New file, holds a classes fields
+
+2003-03-15 Jackson Harper <jackson@latitudegeo.com>
+
+ * InstrTable.cs: Add FieldOp instructions
+
+2003-03-15 Jackson Harper <jackson@latitudegeo.com>
+
+ * InstrTable.cs: Add ldstr instruction
+
+2003-03-15 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Add method to get method references.
+ * MethodTable.cs: Complete GetReference method
+ * InstrTable.cs: Add MethodOps (instructions that take a method ref param)
+
+2003-03-14 Jackson Harper <jackson@latitudegeo.com>
+
+ * InstrTable.cs: Add TypeOps (instructions that take a type param)
+
+2003-03-14 Jackson Harper <jackson@latitudegeo.com>
+
+ * InstrTable.cs: Add IntOps (instructions that take an integer param)
+
+2003-03-13 Jackson Harper <jackson@latitudegeo.com>
+
+ * InstrTable.cs: Fix instructions that have dots in their name
+
+2003-03-13 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Add code buffer for il instructions when a new method is added.
+ * InstrTable.cs: New file, this is a table of all the instructions (just simple
+ instructions right now)
+
+2003-03-13 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Set current method when a new method is added.
+
+2003-03-12 Jackson Harper <jackson@latitudegeo.com>
+
+ * ClassTable.cs: Add Method tables to Class tables, add method to get a
+ class's method table.
+ * CodeGen.cs: Add Method to add methods :p
+ * MethodTable.cs: Add file, this class is used to add methods to a class.
+
+2003-03-11 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeRef.cs: New file, used for pairing types and their names.
+
+2003-03-09 Jackson Harper <jackson@latitudegeo.com>
+
+ * ExternTable.cs: Do not verify the existence of external types
+
+2003-03-08: Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Add ExternTable property
+ * ExternTable.cs: New file, this will is used for pulling
+ types and methods from external assemblies.
+
+2003-03-06 Jackson Harper <jackson@latitudegeo.com>
+
+ * ClassTable.cs, CodeGen.cs: Add methods to allow types to inherit from another type.
+
+2003-03-06 Jackson Harper <jackson@latitudegeo.com>
+
+ * ClassTable.cs: Add method to check for undefined types
+
+2003-03-06 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Use class table for adding type definitions
+ * ClassTable.cs: Return ClassDef when defining types
+
+2003-03-06 Jackson Harper <jackson@latitudegeo.com>
+
+ * ClassTable.cs: Add method for adding class definitions to the
+ the table.
+
+2003-03-6 Jackson Harper <jackson@latitudegeo.com>
+
+ * CodeGen.cs: Reconfigure to work with new PEAPI emission system
+
+2003-03-6 Jackson Harper <jackson@latitudegeo.com>
+
+ * ClassTable.cs: Add file, this is a 'table' for storing classes
+ * Location.cs: Add file, this will eventually be used for marking
+ locations in IL files
+
+2003-02-10 Jackson Harper <jackson@latitudegeo.com>
+
+ * Method.cs: Add method to set parameters,
+ set parameters when defining type
+ * Class.cs: Fix very silly bug in GetMethod method
+
+
+2003-02-09 Jackson Harper <jackson@latitudegeo.com>
+
+ * Class.cs: Resolve Methods before emiting
+ * InstrBase.cs: Take a Class instead of CodeGen when emiting
+ * Method.cs: Replace MethodInfo property with MethodBuilder property,
+ Add resolve method
+ * Instructions.cs: Take Class instead of CodeGen when emitting,
+ get member methods from Class.
+ * TypeManager.cs: Add set indexer
+
+2003-02-09 Jackson Harper <jackson@latitudegeo.com>
+
+ * Instructions.cs: Use TypeManager to lookup types
+
+2003-02-08 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeManager.cs: Fix error parsing type names
+ * Method.cs: Display the name of types that can't be found
+
+2003-02-08 Jackson Harper <jackson@latitudegeo.com>
+
+ * TypeManager.cs: Add file
+ * CodeGen.cs: Add TypeManager attribute
+ * InstrBase.cs: Take a CodeGen in Emit method
+ * Instructions.cs: Take a CodeGen in Emit method, handle arg lists better
+ * Method.cs: Handle local variables better
+
+
+2003-02-08 Jackson Harper <jackson@latitudegeo.com>
+
+ * Method.cs: Add functionality to define local variables
+ * Instructions.cs: Add newobj instruction, cleanup call instruction
+
+2003-02-03 Jackson Harper <jackson@latitudegeo.com>
+
+ * AssemblyNameStore.cs: Added file
+
+2003-02-02 Jackson Harper <jackson@latitudegeo.com>
+
+ * Instructions.cs: Resolve parameters types in a more proper manner.
+
+2003-02-02 Jackson Harper <jackson@latitudegeo.com>
+
+ * Class.cs: Don't try to emit methods if we don't have any
+ * Class.cs: Test for entry point of methods, and set Assembly entrypoint
+ * CodeGen.cs: Add method to set an Assemblys entry point
+ * Method.cs: Add IsEntryPoint property
+ * Method.cs Add MethodInfo property, and set this while Emiting
+ * Instructions.cs: Add new InstrCall instruction