2004-01-27  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (SetCustomAttribute): Move the reading of the
	keyfile to the Save () method.

2004-01-26  Sebastien Pouliot  <spouliot@videotron.ca>

	* AssemblyBuilder.cs: Save will now strongname the assembly is (a) a
	StrongName is present and (b) the signature isn't delayed.

2004-01-24 David Sheldon <dave-mono@earth.li>

	* AssemblyBuilder.cs: Added override for GetFiles() that throws
	  NotSupportedException. 

2004-01-15  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (Save): Handle entry points with an int return
	type as well.
	
	* AssemblyBuilder.cs (Save): If the entry point is in a module, create
	a new entry point which calls the real one, since the entry point must
	be in the module which contains the manifest.

	* ModuleBuilder.cs (Save): Create the global type automatically if not
	already done.

2004-01-13  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (DefineVersionInfoResource): Set more 
	version info properties.

2004-01-08  Zoltan Varga  <vargaz@freemail.hu>

	* CustomAttributeBuilder.cs (string_arg): New helper method.

	* AssemblyBuilder.cs (DefineVersionInfoResource): Implement.

	* AssemblyBuilder.cs (SetCustomAttribute): Use the new helper method.

	* AssemblyBuilder.cs (DefineUnmanagedResource): Implement.

	* AssemblyBuilder.cs (DefineIconResource): New internal method to
	support mcs.

	* TypeBuilder.cs (IsDefined): Implement this, since some corlib classes
	make calls to IsDefined.

2004-01-06  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs: Fix warning.

2004-01-05  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (DefineVersionInfoResource): Implement.

2003-12-29 Ben Maurer  <bmaurer@users.sourceforge.net>

	* MethodBuilder.cs, ConstructorBuilder.cs: Override GetParameterCount.
	* ILGenerator.cs: Use GetParameterCount.

2003-12-20  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (AddModule): New internal method to support 
	/addmodule in mcs.

2003-12-19  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs: New internal property to support /target:module in
	mcs.

2003-12-18  Zoltan Varga  <vargaz@freemail.hu>

	* ILGenerator.cs: Applied patch from Ben Maurer 
	(bmaurer@users.sourceforge.net). Allocate arrays holding label data
	lazily and reduce their size.

2003-12-17  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (MonoResource): New 'offset' field used by the
	runtime.

	* ModuleBuilder: Implement DefineResource.

2003-12-15  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (RefEmitPermissionSet): New helper structure.
	
	* MethodBuilder.cs (AddDeclarativeSecurity): Implement.

	* ConstructorBuilder.cs (AddDeclarativeSecurity): Ditto.

2003-12-10  Zoltan Varga  <vargaz@freemail.hu>

	* MethodBuilder.cs: Add stubs for missing methods.

	* TypeBuilder.cs (GetEvents): Add new override.

	* ModuleBuilder.cs: Implement some missing methods, add stubs for others.

	* AssemblyBuilder.cs (GetFiles): Get rid of unneccessary override.

	* AssemblyBuilder.cs (ImageRuntimeVersion): Add override to keep
	signature compatibility with MS.NET.

	* TypeBuilder.cs (MemberType): Get rid of unneccessary override.

2003-12-08  Martin Baulig  <martin@ximian.com>

	* TypeBuilder.cs (TypeBuilder.MonoGenericParam): Removed; use the
	new `MonoGenericParam' class instead (in S.R/MonoGenericInst.cs).

2003-12-08  Zoltan Varga  <vargaz@freemail.hu>

	* ModuleBuilder.cs: Double the size of the types array during insertion
	do avoid excessive memory allocation and copying. Track the number of
	types in a separate variable.

	* TypeBuilder.cs: Same for the 'fields' and 'methods' arrays.

2003-12-03  Zoltan Varga  <vargaz@freemail.hu>

	* ModuleBuilder.cs (DefinePInvokeMethod): Implement.

	* ModuleBuilder.cs (DefineGlobalMethod): Implement the Net 1.2 variants.

2003-11-28  Dick Porter  <dick@ximian.com>

	* ModuleBuilder.cs: Do string compares with the Invariant culture.

2003-11-28  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (SetCustomAttribute): Implement automatic 
	generation of build and revision numbers. Fixes #46492.

2003-11-25  Zoltan Varga  <vargaz@freemail.hu>

	* TypeBuilder.cs: Implement GetField.

2003-11-24  Zoltan Varga  <vargaz@freemail.hu>

	* DynamicMethod.cs: New class.

	* ILGenerator.cs MethodBuilder.cs ConstructorBuilder.cs: Retrieve 
	tokens from a token generator object instead of from the ModuleBuilder,
	to support the implementation of DynamicMethod. Also get rid of the 
	unused 'mbuilder' field.

	* ModuleBuilder.cs: Create a token generator object which can be
	passed to ILGenerator.

	* LocalBuilder.cs ILGenerator.cs: Get rid of 'module' field, obtain 
	needed objects from the ilgen object instead.

2003-11-21  Zoltan Varga  <vargaz@freemail.hu>

	* TypeBuilder.cs FieldBuilder.cs MethodBuilder.cs ConstructorBuilder.cs:  Add support for custom modifiers from NET 1.2.

	* ILGenerator.cs: Remove unused abuilder member.

2003-11-19  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* OpCodes.cs: Remove Boxval for v1.1+

2003-11-19  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* OpCodes.cs: Small rearrange to fix csc compiler warning about obsolete member used

2003-11-12  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilderAccess.cs PackingSize: Add [Flags].

	* AssemblyBuilder.cs (DefineDynamicModule): Make internal method
	private.

	* AssemblyBuilder.cs (Save): Write out the main module at the end.
	
2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
	
	* ConstructorBuilder.cs (.ctor): Automatically add RTSpecialName flag
	as MS does.

2003-11-06  Martin Baulig  <martin@ximian.com>

	* ModuleBuilder.cs (ModuleBuilder.Save): Call `build_metadata'
	before writing the symbol file.

2003-11-06  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (.ctor): Initialize the 'dir' field to something
	sensible.
	
	* AssemblyBuilder.cs (Save): Set 'created' flag.

	* AssemblyBuilder.cs (get_next_table_index): Moved to ModuleBuilder,
	since table indexes are per-module.

2003-11-03  Zoltan Varga  <vargaz@freemail.hu>

	* TypeBuilder.cs (DefineDefaultConstructor): Pass an array instead of 
	null to DefineConstructor, to avoid NullReferenceExceptions in the 
	binder code.

	* AssemblyBuilder.cs ModuleBuilder.cs ILGenerator.cs: Move getUSIndex 
	and getToken methods, and the associated icalls to ModuleBuilder, 
	since tokens are per-module.

	* AssemblyBuilder.cs ModuleBuilder.cs: Partially revert the previous
	patch, since having the 'is_main' field is useful in the unmanaged 
	code.

	* AssemblyBuilder.cs ModuleBuilder.cs: Move the metadata creation and
	file creation logic to ModuleBuilder:Save (), since this needs to be
	done for every module. Also move the corresponding icalls to 
	ModuleBuilder.

2003-11-03  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs ModuleBuilder.cs: First steps toward a fix for
	#48700 (proper module support in Ref.Emit). Remove is_main field from
	ModuleBuilder and add a mainModule field to AssemblyBuilder instead.
	This is neccesary, since the main module is determined during the 
	Save () call: the module with the same file name as the assembly is
	the main module. Also create a default main module, if one is not
	existing.

2003-11-03  Martin Baulig  <martin@ximian.com>

	* OpCodes.cs: Added Ldelem_Any, Stelem_Any and Unbox_Any from .NET 1.2.

2003-10-18  Sebastien Pouliot  <spouliot@videotron.ca>

	* AssemblyBuilder.cs (SetCustomAttribute): Changed PK extraction to
	use Mono.Security.StrongName (#49785).

2003-10-18  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (SetCustomAttribute): Extract the public key from
	the keyfile.

2003-10-17  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs (SetCustomAttribute): Ignore empty keyfile name.
	
	* AssemblyBuilder.cs: Moved loading of the public key file into
	managed code from reflection.c.	

	* AssemblyBuilder.cs: Set cultureInfo and version from the AssemblyName
	passed to the constructor.

2003-10-13  Martin Baulig  <martin@ximian.com>

	* MethodBuilder.cs (MethodBuilder): Added
	`TypeBuilder.MonoGenericParam[] generic_params' field.
	(DefineGenericParameter, SetGenericMethodSignature): New public methods.

	* TypeBuilder.cs (DefineGenericMethod): New public method.

2003-10-13  Zoltan Varga  <vargaz@freemail.hu>

	* OpCode.cs: Fix Value property. Fixes #49328.

2003-10-03  Zoltan Varga  <vargaz@freemail.hu>

	* TypeBuilder.cs (CreateType): Fire TypeResolve events for unfinished 
	nested value types. Fixes #47022.

2003-09-29  Zoltan Varga  <vargaz@freemail.hu>

	* TypeBuilder.cs: Really fix #48695.

Sat Sep 27 16:17:08 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: instance fields are loaded from this.

2003-09-26  Zoltan Varga  <vargaz@freemail.hu>

	* TypeBuilder.cs (DefineDefaultConstructor): Make this work on types
	without a parent. Fixes #48695.

2003-09-17  Martin Baulig  <martin@ximian.com>

	* TypeBuilder.cs (TypeBuilder.CreateType): Don't append the type
	parameters to the type name; ie. use `Stack' instead of `Stack<T>'.

2003-09-06  Martin Baulig  <martin@ximian.com>

	* TypeBuilder.cs (TypeBuilder.IsUnboundGenericParameter): Implemented.

2003-09-04  Martin Baulig  <martin@ximian.com>

	* TypeBuilder.cs (TypeBuilder.MonoGenericParam): Make this nested
	class internal, not protected.

2003-08-29  Martin Baulig  <martin@ximian.com>

	* TypeBuilder.cs (TypeBuilder.DefineGenericParameter): New public
	method.  We can now create generic types.
	(TypeBuilder.GetGenericTypeDefinition): Override this; call the
	`setup_internal_class' interncall before calling our base impl.

Sat Aug  2 13:04:55 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>

	* ILGenerator.cs: Emission of doubles now utilise the Double.AssertEndianity
	icall to assert double word endianity on ARM.

2003-07-25  Duncan Mak  <duncan@ximian.com>

	* OpCodes.cs (Boxval): Marked with ObsoleteAttribute.

2003-07-24  Miguel de Icaza  <miguel@ximian.com>

	* TypeBuilder.cs: Added generics stubs.

	* EnumBuilder.cs: Added generics  stubs, changed bracing style for
	routines.

2003-07-23  Duncan Mak  <duncan@ximian.com>

	* SignatureHelper.cs: This class does not have the
	SerializableAttribute.

2003-07-11  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs: Added argument checking to all methods according
	to the MSDN docs. Also marked DefineUnmanagedResource and its friends
	as not implemented.
	* ModuleBuilder.cs: Added new property FileName used by AssemblyBuilder.
	* ModuleBuilder.cs AssemblyBuilder.cs: Implemented IsTransient ().

2003-06-15  Zoltan Varga  <vargaz@freemail.hu>

	* EventBuilder.cs: Add argument checking to methods.

Thu Jun 5 20:18:55 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: implemented DefineResource ().

Thu Jun 5 12:36:34 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* OpCode.cs: implemented Equals/GetHashCode.

Tue Jun 3 11:14:51 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs, OpCode.cs: optimize opcode space usage.

Tue Jun 3 11:13:22 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* UnmanagedMarshal.cs: add ability to define custom attributes (the MS
	runtime doesn't support this).

2003-05-30  Zoltan Varga  <vargaz@freemail.hu>

	* TypeBuilder.cs: Implement DefineTypeInitializer.

2003-05-21  Zoltan Varga  <vargaz@freemail.hu>

	* ModuleBuilder.cs: 
	- Implement DefineInitializedData in terms of DefineUninitializedData
	- Name the types of global fields $ArrayType$<len> to cut back on the
	number of types created
	- Add argument checking

2003-05-19  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs: Implement GetDynamicModule. "Implement" various
	methods not supported under MS.NET.

2003-05-18  Martin Baulig  <martin@ximian.com>

	* AssemblyBuilder.cs (corlib_void_type): New internal field.
	(SetCorlibTypeBuilders): Added overloaded version which takes 4
	arguments to set the `corlib_void_type'.

	* TypeBuilder.cs: Use `pmodule.assemblyb.corlib_void_type' instead
	of `typeof (void)' to make this work when compiling corlib.

Thu May 15 19:16:54 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* MethodBuilder.cs: off by one in CreateMethodBody().
	* TypeBuilder.cs: if the return type for a method is null, use void.

2003-04-28  Miguel de Icaza  <miguel@ximian.com>

	* MethodBuilder.cs: Mono allows the parameter position to be zero
	to indicate the "returns:" attribute.

2003-04-20  Miguel de Icaza  <miguel@ximian.com>

	* ILGenerator.cs (EmitCall): Implement.

	Flag a few unimplemented methods with MonoTODO, make coding style
	for method definitions Mono consistent.

2003-04-17  Zoltan Varga  <vargaz@freemail.hu>

	* ILGenerator.cs: Implement EmitWriteLine methods.

	* TypeBuilder.cs (CreateType): Avoid creating a default constructor
	for the global type.

2003-04-15  Miguel de Icaza  <miguel@ximian.com>

	* TypeBuilder.cs (DefineDefaultConstructor): Make it generate code
	by default for a default constructor.  This is what the MS runtime
	does.  The PythonNet code expected this.

	(TypeBuilder.GetConstructorImpl): Implement this.

	(TypeBuilder.CreateType): If there are no constructors defined, we
	create one.

Tue Apr 15 13:50:41 CEST 2003 Paolo Molaro <lupus@ximian.com>

	* ModuleBuilder.cs, TypeBuilder.cs: set nesting_type before
	calling setup_internal_class ().

2003-03-27  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs: Added 'access' member, which is needed by the
	runtime.

2003-03-26  Zoltan Varga  <vargaz@freemail.hu>

	* ILGenerator.cs: Implemented ThrowException.

2003-03-10  Zoltan Varga  <vargaz@freemail.hu>

	* ILGenerator.cs: Propagate maxstack info along branches.

2003-03-06  Zoltan Varga  <vargaz@freemail.hu>

	* ILGenerator.cs (Emit): Do not pop the arguments off the stack for
	ldftn etc. Fixes bug #39196.

2003-02-28  Zoltan Varga  <vargaz@freemail.hu>

	* ILGenerator.cs (Emit): Add fixup for already created methods and
	fields. Do not add fixup for types since their table index do not 
	change any more.

2003-02-26  Zoltan Varga  <vargaz@freemail.hu>

	* TypeBuilder.cs (DefineInitializedData): Removed unnecessary assignments.

	* ModuleBuilder.cs (DefineInitializedData): Do not call 
	TypeBuilder::DefineInitializedData since that would mean defining a
	nested type of the global type, which is wrong. Instead define a
	new public type as MS does.

	* ModuleBuilder.cs (DefineUninitializedData): Ditto.

Thu Feb 13 18:40:52 CET 2003 Paolo Molaro <lupus@ximian.com>

	* ModuleBuilder.cs: add the basic initialization call.

2003-02-13  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs: Added basic error checking to some methods
	according to the MSDN docs.

2003-02-10  Zoltan Varga  <vargaz@freemail.hu>

	* ConstructorBuilder.cs: 
	- Added basic error checking to all methods according to the MSDN docs.
	- modified a lot of methods to throw NotSupportedException, to comply
	  with MS.NET.

2003-02-09  Zoltan Varga  <vargaz@freemail.hu>

	* TypeBuilder.cs:
	- Added basic error checking to all methods according to the MSDN docs.
	- fixed AssemblyQualifiedName.
	- implemented 'Size'.
	- modified a lot of methods to throw NotSupportedException, to comply
	  with MS.NET.
	- changes tested by running a full bootstrap.

2003-02-09  Martin Baulig  <martin@ximian.com>

	* AssemblyBuilder.cs (AssemblyBuilder.methods): Removed.  This was
	a hack for the symbol writer which is no longer needed.

2003-02-09  Martin Baulig  <martin@ximian.com>

	* IMonoSymbolWriter.cs (DefineNamespace, OpenMethod): New methods.

2003-02-09  Martin Baulig  <martin@ximian.com>

	* IMonoSymbolWriter.cs (MarkSequencePoint): New method which takes
	just the required arguments as scalars, not arrays.

	* ILGenerator.cs (ILGenerator.MarkSequencePoint): Use that new
	interface method; unnecessarily creating such a large number of
	arrays is both slow and too memory consuming.	

2003-02-08  Zoltan Varga  <vargaz@freemail.hu>

	* MethodBuilder.cs: Added error checking to methods so they conform to
	MSDN docs. Implemented 'GetModule' and 'CallingConvention' members. 
	Some other tweaks to improve compatibility with MS .NET.

	* TypeBuilder.cs: Added 'is_created' property which will be used for
	checking 'type is already created' errors.

2003-02-07  Martin Baulig  <martin@ximian.com>

	* ModuleBuilder.cs (.ctor): Added `bool IsMainModule' argument.
	(Save): New internal method; creates the module's symbol file if
	we're compiling with debugging information.

	* AssemblyBuilder.cs (EmbedResource): Added internal overloaded
	version of this method which takes a `byte[] blob' instead of a file.
	(DefineDynamicMethod): If this is the first module, tell the
	ModuleBuilder that this is the main module.
	(Save): Call a new interncall `build_metadata' to create the final
	metadata and save all the symbol files before creating the actual
	output.

	* IMonoSymbolWriter.cs: New public class; it is in the namespace
	Mono.CSharp.Debugger.  The Mono symbol writer implements this interface.

2003-02-04  Zoltan Varga  <vargaz@freemail.hu>

	* AssemblyBuilder.cs: added GetToken (SignatureHelper).

	* ILGenerator.cs: implemented EmitCalli() methods

	* SignatureHelper.cs: implemented GetMethoSigHelper() methods.

2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* MethodBuilder.cs: GetBaseDefinition () returns this.

Mon Jan 27 17:07:38 CET 2003 Paolo Molaro <lupus@ximian.com>

	* CustomAttributeBuilder.cs, FieldBuilder.cs: applied
	(reformatted) patch from "Jerome Laban" <jlaban@wanadoo.fr>
	to fix ByValStr and ByValArray encodings.

2003-01-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* AssemblyBuilder.cs: fixed compilation with csc.

2003-01-26  Miguel de Icaza  <miguel@ximian.com>

	* AssemblyBuilder.cs (Save): Set the executable bit at the end.
	This uses a non-official enumeration value to call SetFileAttributes.

2003-01-17  Zoltan Varga  <vargaz@freemail.hu>

	* MethodBuilder.cs ConstructorBuilder.cs: modify GetParameters() so it
	returns information even when the app did not use DefineParameter() to
	define the parameters.

	* ConstructorBuilder.cs (ctor): allways define SpecialName attribute
	for constructors as done by MS.

Mon Jan 13 11:37:14 CET 2003 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs, ModuleBuilder.cs: better type name cache.

2003-01-10  Zoltan Varga  <vargaz@freemail.hu>

	* ILGenerator.cs: Implemented EmitWriteLine(string).

	* TypeBuilder.cs (DefineInitializedData): Call DefineNestedType() 
	instead of DefineType() so the auxiliary types do not pollute the 
	global namespace. This is consistent with the behaviour of MS .NET.

Fri Jan 10 16:03:30 CET 2003 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs, MethodBuilder.cs, TypeBuilder.cs,
	ConstructorBuilder.cs: some tweaks to reduce memory usage.

Thu Jan 2 18:46:09 CET 2003 Paolo Molaro <lupus@ximian.com>

	* ModuleBuilder.cs, TypeBuilder.cs: support global fields and methods.

Thu Dec 19 00:06:57 CET 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: remove duplicated user string entries.

2002-12-11  Zoltan Varga  <vargaz@freemail.hu>

	* FieldBuilder.cs: added 'handle' field which is needed by some new
	code in reflection.c.

2002-12-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* TypeBuilder.cs: implemented GetInterfaceMap () when the Type has been
	created.

Fri Nov 8 14:53:03 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: account for the exception object being passed to the
	catch handler to calc max_stack.

2002-09-21  Martin Baulig  <martin@gnome.org>

	* ModuleBuilder.cs (ModuleBuilder.symbol_writer): Make this
	field internal, not private.
	(ModuleBuilder.SymWriter_DefineLocalVariable): Removed.

	* LocalBuilder.cs (LocalBuilder.SetLocalSymInfo): Use the
	ISymbolWriter's DefineLocalVariable() method instead of the
	IMonoSymbolWriter hack.

Mon Sep 16 19:02:58 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.c: special case some custom attributes.

2002-09-12  Dick Porter  <dick@ximian.com>

	* TypeBuilder.cs: Say _which_ Type has already been created

2002-09-11  Miguel de Icaza  <miguel@ximian.com>

	* ModuleBuilder.cs (GetTypes): Implement.

Tue Sep 10 12:12:51 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* ConstructorBuilder.cs: added a field to hold the handle.

Mon Sep 9 17:31:12 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs: prepare for the real CreateType implementation.

Tue Aug 27 16:57:18 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs: remove duplicate code and fix
	named field reading in custom attr.

2002-08-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* TypeBuilder.cs: UnspecifiedTypeSize is 0.

Wed Aug 14 17:38:41 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs: ReflectedType and CreateType fixes.

Thu Aug 8 10:25:51 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: added API to embed managed resources.

2002-08-03  Martin Baulig  <martin@gnome.org>

	* TypeBuilder.cs (TypeBuilder.DeclaringType): Implemented.

Thu Jul 25 13:57:46 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: support linking external resources.

2002-07-19  Martin Baulig  <martin@gnome.org>

	* ILGenerator.cs (Emit (OpCode, LocalBuilder)): Throw an exception
	when trying to emit a local that was defined in a different ILGenerator.

	* LocalBuilder.cs (LocalBuilder): Added `ILGenetator' argument to
	the constructor.

Tue Jul 16 19:32:08 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: stack size check fix.

Sat Jul 13 17:30:51 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: add also the enum_type for compiling corlib.
	* TypeBuilder.cs: complete IsValueType.

Sat Jul 13 15:08:12 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs: better IsValueType.

2002-07-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* CustomAttributeBuilder.cs: removed compile warning.

Fri Jul 12 11:34:58 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: fixup typebuilder tokens as well.

Tue Jul 9 19:03:03 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs: special case SerializarionAttribute.
	Tweaks to get correct code in corlib.

2002-07-06  Miguel de Icaza  <miguel@ximian.com>

	* ILGenerator.cs (ILGenerator.Emit): For doubles and floats, swap
	the bytes on big endian systems. 

2002-07-03  Martin Baulig  <martin@gnome.org>

	* AssemblyBuilder.cs (corlib_object_type, corlib_value_type): Moved
	these fields up after the last entry in MonoReflectionAssemblyBuilder
	in reflection.h.

	* TypeBuilder.cs (IsValueTypeImpl): Use the AssemblyBuilder's
	`corlib_value_type' instead of `typeof (System.ValueType)'.
	(DefineNestedType): Use the AssemblyBuilder's `corlib_object_type'
	instead of `typeof (object)'.

2002-07-02  Martin Baulig  <martin@gnome.org>

	* AssemblyBuilder.cs (corlib_object_type, corlib_value_type): New
	internal fields.  When compiling corlib, they point to the newly
	created System.Object and System.ValueType types.
	(SetCorlibTypeBuilders): New public function.  This will be
	dynamically called from MCS when compiling corlib.

	* TypeBuilder.cs (DefineInitializedData): Use the AssemblyBuilder's
	`corlib_value_type' as parent type instead of `typeof (System.ValueType)'
	to make it work when compiling corlib.

	* ModuleBuilder.cs (assemblyb): Made this field internal, not private.

Tue Jul 2 18:34:49 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs: implemented AssemblyQualifiedName.
	* MethodBuilder.cs, ConstructorBuilder.cs: special case custom attr.

Mon Jul 1 16:17:29 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs: implemented AddInterfaceImplementation().

2002-06-28  Martin Baulig  <martin@gnome.org>

	* MethodBuilder.cs (GetParameters): Return all parameters, not all
	but the last one.

2002-06-27  Martin Baulig  <martin@gnome.org>

	* ConstructorBuilder.cs (GetParameters): Implemented.

Mon Jun 17 14:55:43 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* ModuleBuilder.cs, TypeBuilder.cs: fixes for nested types handling.

Fri Jun 14 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* CustomAttributeBuilder.cs: added custom attribute related internal
	helper methods.
	* FieldBuilder.cs, ParameterBuilder.cs: handle MarshalAs attribute.
	* UnmanagedMarshal.cs: implemented.

Mon Jun 10 18:58:18 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* PropertyBuilder.cs: implemented ReflectedType and DeclaringType
	properties.

2002-06-07  Martin Baulig  <martin@gnome.org>

	* TypeBuilder.cs (TypeBuilder): Added `PackingSize packing_size' and
	`int type_size' fields to the constructor.
	(DefineNestedType): Pass packing_size and type_size to the constructor.

	* ModuleBuilder.cs (DefineType): Pass the packing_size and type_size
	fields to the TypeBuilder's constructor.

2002-06-07  Martin Baulig  <martin@gnome.org>

	* TypeBuilder.cs (DefineNestedType): There is no overload for this
	method which takes 5 args in the specs, removed it.

Fri Jun 7 17:04:06 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: updates for PE/COFF rewrite.

2002-05-30  Martin Baulig  <martin@gnome.org>

	* AssemblyBuilder.cs (methods): Made this internal and don't
	initialize it.  It will be initialized by the ModuleBuilder's
	GetSymbolWriter() method.
	(get_next_table_index): Only store the method in the `methods'
	array if it's not null.

	* ModuleBuilder.cs (GetSymbolWriter): Initialize the AssemblyBuilder's
	`methods' field if necessary and pass it as third argument to the
	symbol writer's constructor.

2002-05-25  Martin Baulig  <martin@gnome.org>

	* TypeBuilder.cs (TypeToken): Implemented.

2002-05-24  Martin Baulig  <martin@gnome.org>

	* ModuleBuilder.cs (symwriter_define_local): New private variable.
	(GetSymbolWriter): Look for a custom version of "DefineLocalVariable"
	and store it in `symwriter_define_local'.
	(SymWriter_DefineLocalVariable): New internal method to call the
	symbol writer's custom DefineLocalVariable() method.  It is safe to
	call this method if there's no symbol writer.

	* LocalBuilder.cs (SetLocalSymInfo): Use the MethodBuilder'snew
	SymWriter_DefineLocalVariable().

	* MethodBuilder.cs (GetParameters): Implemented.

2002-05-22  Martin Baulig  <martin@gnome.org>

	* ModuleBuilder.cs (GetSymbolWriter): Pass the this pointer to the
	symbol writer's constructor.

2002-05-22  Martin Baulig  <martin@gnome.org>

	* AssemblyBuilder.cs (methods): New field.
	(get_next_table_index): Record all methods and constructors
	(table 0x06) in the `methods' array.  This is read by the
	Mono.CSharp.Debugger.MonoSymbolWriter::get_method interncall to
	get the MethodBuilder / ConstructorBuilder back from the token.

	* *Builder.cs (get_next_table_index): Added `object obj' argument.
	(<constructors>): pass the this pointer to get_next_table_index ().

2002-05-20  Martin Baulig  <martin@gnome.org>

	* TypeBuilder.cs (DefineField): Call the new `create_internal_class'
	interncall after adding the first field.  This is used when creating
	enum types to set `klass->enum_basetype'.

Thu May 16 16:09:51 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs: complete special acse support for CharSet, Size and
	Pack named args in StructLayout attribute.

Tue May 14 17:13:48 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* MethodBuilder.cs: revert change in accessibility of
	GetILGenerator(int).

Tue May 14 13:31:17 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* FieldBuilder.cs, ParameterBuilder.cs: more special-casing of
	attributes.

Fri May 10 20:57:27 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* CustomAttributeBuilder.cs: expose internal data for use in
	reflection.
	* FieldBuilder.cs, TypeBuilder.cs: special case FieldOffset and
	StructLayout attributes.

Fri May 10 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* MethodBuilder.cs, ConstructorBuilder.cs: implemented InitLocals
	property.

2002-04-26  Martin Baulig  <martin@gnome.org>

	* ModuleBuilder.cs (DefineDocument): Implemented.

Tue Apr 16 13:02:28 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: pad output file to file alignment.
	* FieldBuilder.cs: ReflectedType.
	* ModuleBuilder.cs: added guid generation and array method creation.
	* MonoArrayMethod.cs: array method support code.
	
Wed Apr 10 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: use a stack to keep track of exception blocks.

Mon Apr  8 06:19:01  2002 Piers Haken <piersh@friskit.com>

	* ILGenerator.cs: added LabelField.label_base to allow for
	arbitrary offsets (for switch statement)

Fri Apr 5 15:41:19 CEST 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: simpler protocol wih the runtime to
	get the assembly data.

Tue Mar 26 20:10:24 CET 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: use FileMode.Create.
	* ILGenerator.cs: optimize localbuilder related opcodes.
	Track parameters to adjust maxstack.
	* LocalBuilder.cS: use unsigned for position.

2002-03-23  Miguel de Icaza  <miguel@ximian.com>

	* LocalBuilder.cs: Drop the symbol_writer as LocalBuilder fields.
	Do this lazily in SetLocalSymInfo.
	
2002-03-24  Martin Baulig  <martin@gnome.org>

	* ModuleBuilder.cs (GetSymbolWriter): The MonoSymbolWriter's constructor
	now takes a `string assembly_filename' argument, pass it our fully
	qualified assembly name.

2002-03-24  Nick Drochak  <ndrochak@gol.com>

	* ILGenerator.cs: Use #if-#endif instead of if(false){} to disable
	code.  This way there is no compiler warning.

	* TypeBuilder.cs: Removed the returns that came after the throws.
	This removes a few more compiler warnings. Also marked with MonoTODO
	all places where we throw NotImplemented exceptions.

2002-03-23  Martin Baulig  <martin@gnome.org>

	* SignatureHelper.cs (GetFieldSignatureHelper, GetLocalSignatureHelper):
	Implemented.

	* LocalBuilder.cs (LocalBuilder): This internal constructor now takes
	a ModuleBuilder argument instead of a ISymbolWriter one.
	(SetLocalSymInfo): Create and pass type signature to DefineLocalVariable.

2002-03-23  Martin Baulig  <martin@gnome.org>

	* ILGenerator.cs (BeginScope, EndScope): Implemented.

2002-03-20  Martin Baulig  <martin@gnome.org>

	* ModuleBuilder.cs (GetSymbolWriter): New internal function. Dynamically
	loads the default symbol writer, catch all possible exceptions and return
	null on failure.
	(ModuleBuilder): Added `bool emitSymbolInfo' argument to this internal
	constructor; if set, call GetSymbolWriter ().
	(GetSymWriter): Implemented.

	* LocalBuilder.cs (LocalBuilder): Added ISymbolWriter argument to this
	internal method.
	(SetLocalSymInfo): Implemented, call ISymbolWriter.DefineLocalVariable ()
	if the symbol writer is not null.

	* ILGenerator.cs (ILGenerator): Call ModuleBuilder.GetSymWriter () to get
	and store the symbol writer.
	(DeclareLocal): Pass the symbol writer to LocalBuilder's constructor.
	(MarkSequencePoint): Implemented, call ISymbolWriter.DefineSequencePoints ()
	if the symbol writer is not null.

	* AssemblyBuilder.cs (DefineDynamicModule): Pass the `bool emitSymbolInfo'
	to ModuleBuilder's constructor.

Sat Mar 16 19:11:47 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ModuleBuilder.cs: handle modified types correctly.

Thu Mar 7 17:10:42 CET 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: allow saving bigger assemblies.
	* ILGenerator.cs: add fixup table for fields and methods, since
	at the end of the compile they may end up with a different table
	index.
	* ModuleBuilder.cs: add cache for type names to speed up the type
	lookups from the compiler.
	* TypeBuilder.cs: GetInterfaces () returns only interfaces in the
	current type, not in parents (the docs are wrong).

Tue Mar 5 18:09:34 CET 2002 Paolo Molaro <lupus@ximian.com>

	* EventBuilder.cs: implemented.
	* TypeBuilder.cs: implemented DefineEvent() method and UnderlyingSystemType
	property.

Mon Mar 4 20:34:52 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: make enough room in the byte array for string
	tokens.
	* TypeBuilder.cs: fixed GetInterfaces().

Mon Mar 4 11:30:40 CET 2002 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs: implemented GetConstructors(), GetFields(),
	GetMethods(), GetProperties().

Thu Feb 28 19:15:10 CET 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: call into the runtime to init some basic
	assembly stuff. Reserve slot 1 of typedef table for .<Module>.
	* ModuleBuilder.cs: call into the runtime if we need to create a
	modief type, such as arrays, byref etc.
	* TypeBuilder.cs: call into the runtime to create the MonoClass
	representation for the type. Throw exceptions with not implemented
	stuff.

Wed Feb 27 18:48:47 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: fix nested exception blocks.

Wed Feb 20 22:30:49 CET 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: upped compiled assembly size limit.
	Implemented SetCustomAttribute () methods.
	* CustomAttributeBuilder.cs: implemented the needed constructor
	stuff.
	* Cosntructorbuilder.cs, EnumBuilder.cs, FieldBuilder.cs,
	MethodBuilder.cs, ModuleBuilder.cs, ParameterBuilder.cs,
	PropertyBuilder.cs, TypeBuilder.cs: Implemented SetCustomAttribute () methods.

Wed Feb 20 14:54:01 CET 2002 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: add SetCustomAttribute () to keep the compiler
	going.

Fri Feb 15 18:15:04 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: finally block support and fixes.

Thu Feb 14 18:55:52 CET 2002 Paolo Molaro <lupus@ximian.com>

	* FieldBuilder.cs: Add SetRVAData().
	* ILGenerator.cs: speed up code array growth.
	* TypeBuilder.cs: fix IsValueTypeImpl(). Add class_size member.
	Implement DefineInitializedData().

Tue Jan 22 23:01:11 CET 2002 Paolo Molaro <lupus@ximian.com>

	* EnumBuilder.cs, TypeBuilder.cs: updates for changes in Type.cs.
	* ModuleBuilder.cs: fix lookup of nested types.

Tue Jan 15 22:46:21 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: implement some of the exception support methods.

Mon Jan 14 17:07:32 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ModulerBuilder.cs: search also for subtypes in GetTypes().
	* TypeBuilder.cs: bugfix in FullName. Implemented DefineNestedType().

Fri Jan 11 19:00:29 CET 2002 Paolo Molaro <lupus@ximian.com>

	* MethodBuilder.cs, ConstructorBuilder.cs: save parameter info.

Thu Jan 10 21:07:54 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: handle type tokens (used for box opcode).

Wed Jan 9 19:37:55 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: emit float and doubles.
	* ModuleBuilder.cs: off-by-one error fix and GetType()
	implementations.
	* TypeBuilder.cs: AttributesImpl added.
	* UnmanagedMarshal.cs: stubbed out class.

Sat Jan 5 15:59:05 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: fix emission of two-bytes opcodes.
	Missing slot for locals array. Throw exceptions on unimplemented
	methods.
	* OpCode.cs: add a comment: the Value property is useless.
	* OpCodes.cs: fix name of tail opcode (Tail -> Tailcall).

2002-01-05  Ravi Pratap  <ravi@ximian.com>

	* ConstructorBuilder.cs : Use the MonoTODO attribute.

	* ILGenerator.cs, Label.cs, MethodBuilder.cs, ModuleBuilder.cs,
	ParameterBuilder.cs, TypeBuilder.cs : Ditto.
	
Thu Jan 3 23:26:15 CET 2002 Paolo Molaro <lupus@ximian.com>

	* ILGenerator.cs: typo fix.

Mon Dec 24 17:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs: added DefineMethodOverride().
	* MethodBuilder.cs: add override_method member and setter.

Mon Nov 19 13:58:01 CET 2001 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: add method to register a string in the "#US"
	stream.
	* EnumBuilder.cs, SignatureHelper.cs: added stubs.
	* ILGenerator.cs: more stuff implemented.
	* LocalBuilder.cs: keep track of local var index.

Thu Nov 15 18:11:23 CET 2001 Paolo Molaro <lupus@ximian.com>

	* ConstructorBuilder.cs: implement the interesting methods.
	* ILGenerator.cs: adapt for use with both a MethodBuilder and a
	ConstructorBuilder.
	* MethodBuilder.cs: add ImplAttributes.
	* ParameterBuilder.cs: adapt for ConstructorBuilder.
	* TypeBuilder.cs: add constructors handling.

Wed Nov 14 17:01:45 CET 2001 Paolo Molaro <lupus@ximian.com>

	* ConstructorBuilder.cs: added missing stubs and some implementation.
	* CustomAttributeBuilder.cs: added.
	* EventBuilder.cs: added.
	* FieldBuilder.cs: updates.
	* MethodBuilder.cs: stuff to implement P/Invoke methods.
	* ModuleBuilder.cs: added GetArrayMethod() stub.
	* ParameterBuilder.cs, PropertyBuilder.cs: updates.
	* TypeBuilder.cs: updates and stubs.

2001-11-10  Sean MacIsaac  <macisaac@ximian.com>

	* TypeBuilder.cs: Added implementation for TypeHandle.

Tue Nov 6 09:13:45 CET 2001 Paolo Molaro <lupus@ximian.com>

	* AssemblyBuilder.cs: define an internal constructor.

2001-10-07  Miguel de Icaza  <miguel@ximian.com>

	* AssemblyBuilder.cs: Reformatted.

	Added override keywords to those that needed them.

	Removed methods that we do not override, but just inherit

Tue Sep 25 16:53:08 CEST 2001 Paolo Molaro <lupus@ximian.com>

	* TypeBuilder.cs, ConstructorBuilder.cs, ModuleBuilder.cs: added.
