2005-04-30  Ankit Jain  <ankit@corewars.org>

	* PEAPI.cs (InterfaceImpl.SortKey): New.
	(MetaData.BuildMetaData): Sort InterfaceImpl table.
	(MethodSemantics.SortKey): Compute key correctly.

2005-04-18  Ankit Jain  <ankit@corewars.org>

	* PEAPI.cs (ManifestResource.InitResource): New. Used by constructors
	to initialize the resource. 
	(ManifestResource.ctor): New. Constructor to accept resource as a 
	byte array.
	(ManifestResource.ctor): New. Constructor to accept an object of self. 
	(ManifestResource.BuildTables): Update.
	(MetaData.AddResource): New. Add the resource to the list, adjust 
	resourcesSize.
	(MetaData.WriteResource): New. Write resources to the FileImage.
	(PEFile.AddExternalManagedResource): New. Add a new resource.
	(PEFile.GetResource): New. Get resource by name.
	(PEFile.GetResources): New. Get array of resources.

2005-04-12  Ankit Jain  <ankit@corewars.org>

	* PEAPI.cs (CustomAttribute.ctor): Dont throw 
	NotYetImplementedException.
	(MethodSemantics.SortKey): Should be sorted by 
	'Association' column.
	
2005-04-08  Ankit Jain  <radical@corewars.org>

	* PEAPI.cs (MSCorLib.GetSpecialClass): Don't encode
	System.ValueType and System.Enum as value types.
	(ValueClass): New enum.
	(Class.MakeValueClass): Add a 'ValueClass' parameter.
	(ClassDef.MakeValueClass): Set supertype to ValueType or Enum
	according to ValueClass parameter.
	(IsValueType,IsEnum): New.  Test if type is System.ValueType or
	System.Enum.
	(ClassDef.AddNestedClass): Don't encode	System.ValueType and
	System.Enum as value types.

2005-03-17  Ankit Jain  <radical@corewars.org>

	* PEAPI.cs: Metadata tables that must be sorted are sorted now.
	Fixes the code for ParamAttr.Opt. Fix bug #73517.
		
2004-12-08  Sebastien Pouliot  <sebastien@ximian.com>

	* PEAPI.cs: Added support for allocating and storing strongname 
	signatures when a .publickey directive is present in source. Fix bug
	#69721.

2004-12-01  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Allow underlying types of ByteArrConsts to be set when
	they are used as field init data.

2004-07-29  Martin Baulig  <martin@ximian.com>

	* PEAPI.cs (Module.Guid): New public property.

2004-07-27  Martin Baulig  <martin@ximian.com>

	* PEAPI.cs (CILInstructions.Offset): New public property.

2004-07-23  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Make the type index modifiable so ClassRefInsts will
	be emitted properly. This is in desperate need of some API love.
	
2004-07-21  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Do all the index size checks. I always wondered why
	the code was like that and finally realized today that it was like
	that because it was wrong. Wait until the opportune momement to
	calculate the index sizes (after everything has been added to the
	streams, and before writing anything).
	
2004-07-21  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Create ClassRefInsts with types not just
	ClassRefs. This way modified types can be used. I am having alot
	of trouble remembering why I actually even need this class though.
	
2004-07-16  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: make sure small index sizes get set properly. Use a
	continue to reduce nesting a little and make code almost mildly
	readable. Add MDTable.Field to the list of tables that can
	increase the CustomAttributeType shift. TODO: What else should be
	here?
	
2004-07-13  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Use a byte array hash code provider and comprarer, so
	checking the byte hashtable for duplicate entries actually
	works. Old method was valid but created larger then needed binaries.
	
2004-07-09  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Don't build custom attributes twice.
	
2004-07-08  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Add custom attributes through the pefile so that we
	can ensure they are emitted no matter what table they are
	in. Previously not all custom attributes were getting emitted.
	
2004-06-26  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Add a method to set the fields list. This is needed so
	that sequentially laid out fields are laid out in the right
	order. When building custom attribute tables actually emit the
	custom attribute data. When writing the .sdata section make sure
	to pad to its size. The constants itself will not make up the
	entire section because it is aligned on 512 byte blocks.
	
2004-06-19  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Make sure the sentinel is placed properly for vararg
	method pointers.
	
2004-06-19  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Allow MethPtrTypes to be created from a signature
	instead of from a method reference because it really doesn't make
	sense to do it that way ;-).
	
2004-06-14  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Add IExternRef interface and modify sigs so it can be
	used. So we can easily add stuff to modules and assemblies. Fix
	the nometadata flag, it should be set when there is NO metadata
	not when there is metadata.
	
2004-06-14  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Add new constructor so we can explicitly set the
	module name.
	
2004-06-03  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Do not null terminate byte arrays when writing to the
	blob stream.
	
2004-05-25  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: When writing to the blob heap we always set a size.
	
2004-05-25  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Set the has default flag on fields when a default data
	constant is assigned to them.
	
2004-05-25  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Encode string constants as unicode before putting them
	in the blob.
	
2004-05-25  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: zero RVAs for abstract, runtime, and internal call
	methods.
	
2004-04-30  Duncan Mak  <duncan@ximian.com>

	* PEAPI.dll.sources: Added Assembly/AssemblyInfo.cs and 
        Locale.cs to build.

2004-04-02  Jackson Harper  <jackson@ximian.com>

	* PEAPI.cs: Allow hash algorithms to be any integer.
	
2004-02-18  Jackson Harper <jackson@ximian.com>

	* PEAPI.cs: Add a class for creating instances of class refs, this
	is used for setting the class or valuetype of a types instance so the class
	reference isn't modified. Allows things like 'valuetype [mscorlib]System.Object'.
	
2003-11-18 Jackson Harper <jackson@ximian.com>

	* PEAPI.cs: If the data length for a methods seh section is
	greater then 255 use fat format headers.
	
2003-11-17 Jackson Harper <jackson@ximian.com>

	* PEAPI.cs: Allow strings to be loaded as bytearrays.
	
2003-10-19 Jackson Harper <jackson@ximian.com>

	* PEAPI.cs: Use bytes not bits for constant sizes.
	
2003-10-18 Jackson Harper <jackson@ximian.com>

	* PEAPI.cs: Add proper support for short instructions, removing
	PEAPI's auto selection of short/long branch operations feature.
	
2003-10-10 Jackson Harper <jackson@ximian.com>

	* PEAPI.cs: New GenericMethodSig class for creating generic method
	signatures. Use this class instead of GenericTypeInst for creating
	generic methods. Fix Generic call conv. according to two of my
	docs it is 0x10 and only one says 0x50 so I will go with 0x10.
	
2003-10-09 Jackson Harper <jackson@ximian.com>

	* PEAPI.cs: Add generic method Mvar type. Add MethodSpec table,
	and an Api method for adding methods to the methodspec table.
	
2003-10-08 Jackson Harper <jackson@ximian.com>

	* PEAPI.cs: Remove some old hacks for adding methods to arrays,
	typespecs are used for this now. Add Generic call conv.
	
2003-10-08 Jackson Harper <jackson@ximian.com>

	* PEAPI.cs: Remove methods for creating generic parameters without
	a name, names are mandatory. Add method to add type parameters to
	methods. Allow GenericParameters to have either a type or a
	method as its owner. Also fix visibility of GenericParameters, a
	GenericParameter should not be created outside of PEAPI.
	
2003-10-07 Jackson Harper <jackson@ximian.com>

	* PEAPI.cs: Add unbox.any instruction.
	
2003-09-27 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Fix pinvoke attributes, zero a methods RVA if it has
	pinvoke info. This isn't entirely correct because native unmanaged
	methods can have pinvoke info and not have 0 RVAs PEAPI can't
	handle native unmanged code though. Expose the ModuleClass so
	'global' items can be referenced like this '<Module>'::foo.
	
2003-09-21 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: sigh, sometimes it is best to calculate variables
	before using them. This fixes PEAPI creating broken images when
	the sdata section is used.
	
2003-09-20 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Rework to allow multiple constraints to be added to a
	single generic parameter.
	
2003-08-19 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Make no super method public so we can have types
	with no super type.
	
2003-08-03 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: New Sentinel type.
	
2003-08-03 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Only give method definitions 0 RVAs if they are
	marked abstract.
	
2003-08-03 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Offsets are not explicit offsets, they are just
	byte offsets from the current position.

2003-07-29 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Allow labels to be created with an explicit offset
	
Fri Jul 25 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* PEAPI.cs: added coded index for the owner field in the GenericParam
	table.

2003-07-20 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Add methods to PEFile to allow fields and methods to
	be added to type specs. This fixing bah-zillions of little
	problems in ilasm. We can now add fields and methods to arrays,
	reference types, and most importantly generics.

	Add the GenericTypeInst class. This is an instance of a generic
	type. ie Hash<int32, string>. GenericTypeSpecs now write their id
	number as a compressed number, this matches the way the runtime
	loads them and will allow generic types to have more then 255 type
	parameters.
	
2003-07-17 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Add GenericTypeSpec so generic members can be
	referenced. Add the ldelem and stelem opcodes (these are part of
	the new spec).
	
2003-07-15 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Allow generic constraints to be added, emit generic
	constraints.
		
2003-07-14 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Cleanup methods for generics, now that constraints and
	params are seperated.
		
2003-05-31 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Initial work on implementing custom
	attributes. Attributes can now be added to ClassDefs and
	MethodDefs. Still need to implement for other metadata elements.
	Added the stele.r4 and stelem.r8 instructions, this should also
	shift the stelem.ref instruction to the proper value (0xA2)
		
2003-05-25 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Create a list of vararg signatures and add them all to
	tables. this allows more then one vararg signature to be created
	per method.
		
2003-05-18 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Add methods to allow methods to be added to arrays.
		
2003-05-11 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: The class size in class layout metadata table is a
	uint not a short.
		
2003-04-05 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Add indexes to GenericParameters, make string index
	always a full 4 bytes.
		
2003-04-05 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Add GenericParameter table, and method to add generic
	parameters.
		
2003-03-15 Daniel Morgan <danmorg@sc.rr.com>

	* PEAPI.build: added file for windows build

2003-03-06 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: (ImplAttr) Add Optil implementation flag (not supported 
	in first release of CLR)
	(Class) And Name property

2003-03-06 Jackson Harper <jackson@latitudegeo.com>

	* makefile.gnu: Add file
	* list.unix: Add file

2003-03-02 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Do not add file extensions to output names
	
2003-03-02 Jackson Harper <jackson@latitudegeo.com>

	* PEAPI.cs: Add file
	* README.txt: Add file
