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
