2010-05-31  Jb Evain  <jbevain@novell.com>

	Merge the MonoTouch Linker branch.

	* Mono.Linker/TypeParser.cs: add a type parser.

	* Mono.Linker.Steps/MarkStep.cs: properly mark types used
	with typeof in custom attributes

	* Mono.Linker/LinkContext.cs: remove dead code.

	* monolinker.exe.sources: add TypeParser.cs

2010-03-02  Jb Evain  <jbevain@novell.com>

	Merge the MonoTouch Linker branch.

	* Mono.Linker/LinkContext.cs:
		Allow creation with a custom resolver.

	* Mono.Linker/AssemblyResolver.cs:
		Allow creation with a custom assembly cache.

	* Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
		- Mark fields for copied assemblied.
		- Now can take an assembly directly.

	* Mono.Linker.Steps/SweepStep.cs
	* Mono.Linker.Steps/CleanStep.cs:
		Optimizations.

2010-02-01  Jb Evain  <jbevain@novell.com>

	* MarkStep.cs: SoapHeader can either take a field or a property.

2010-01-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* Makefile: Fetch Mono.Cecil.dll from whatever profile we happen to be
	building in.

2010-01-14  Jb Evain  <jbevain@novell.com>

	* MarkStep.cs: preserve fields specified by the
	SoapHeader attribute.

2010-01-13  Jb Evain  <jbevain@novell.com>

	* MarkStep.cs: preserve methods specified by the
	XmlSchemaProvider attribute.

2010-01-06  Jb Evain  <jbevain@novell.com>

	* Descriptors/mscorlib.xml: optimize descriptor.

2009-11-23  Jb Evain  <jbevain@novell.com>

	* Descriptors/mscorlib.xml: protect the InternalThread class.
	Fixes #555871.

2009-11-02  Jb Evain  <jbevain@novell.com>

	Merge the MonoTouch Linker branch.

	* monolinker.exe.sources: update

	* Mono.Linker/Annotations.cs:
		- add an preserved methods annotation on a type.
		- add an annotation to get the base methods of a method.
		- add an annotation to get the overriden method of a method.

	* Mono.Linker/AssemblyAction.cs:
		add a Delete action to remove an assembly from the output set.

	* Mono.Linker.Steps/TypeMapStep.cs:
		new step that create a map of virtual methods implementation.

	* Mono.Linker.Steps/MarkStep.cs:
		- removal of virtual methods.
		- fix for custom attributes assigning properties and field
			defined in a base type.
		- mark scopes.
		- mark default constructors of types used as a generic instance
			of a generic parameter constrained with new().
		- apply preserved methods.

	* Mono.Linker.Steps/SweepStep.cs: remove unused assemblies.

	* Mono.Linker.Steps/LoadI18nAssemblies.cs:
		fix linking of i18n assemblies.

	* Mono.Linker.Steps/OutputStep.cs:
		fix the copied assemblies when the output directory
		is the same as the origin of the assemblies.

	* Mono.Linker.Steps/ResolveFromXmlStep.cs
	* Mono.Linker.Steps/ResolveFromAssemblyStep.cs
	* Mono.Linker.Steps/BaseStep.cs
	* Mono.Linker/Driver.cs
	* Mono.Linker/Pipeline.cs:
		Cosmetics.

2009-09-10  Andrés G. Aragoneses  <aaragoneses@novell.com>

	* Mono.Linker.Steps/MarkStep.cs: Make IgnoreScope() virtual to
	  prevent marking custom attributes of foreign assemblies in a
	  derived step in the tuner. ( r: jb )

2009-09-09  Andrés G. Aragoneses  <aaragoneses@novell.com>

	* Mono.Linker.Steps/MarkStep.cs: Visibility changes needed by
	  the need of some new tuner step to redefine or call some
	  methods.

2009-07-02  Jb Evain  <jbevain@novell.com>

	* Makefile: fix cecil's location.

2009-06-09  Andrés G. Aragoneses  <aaragoneses@novell.com>

	* Mono.Linker.Steps/BaseStep.cs: New virtual API needed.

	* Mono.Linker/Pipeline.cs: API love.

2009-06-09  Andrés G. Aragoneses  <aaragoneses@novell.com>

	* Mono.Linker.csproj: Update.

	* Mono.Linker/Driver.cs: Prevent InvalidCastException.

2009-06-05  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/MarkStep.cs: fix a nre.
	Based on patch by Andres G. Aragoneses  <aaragoneses@novell.com>.

2009-06-05  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.

2009-06-05  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
	possibilities to detail the xml descriptors.

2009-06-04  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
	of wildcards constructors.

2009-04-23  Andrés G. Aragoneses  <aaragoneses@novell.com>

	* Mono.Linker/Driver.cs: Report error and exit if it cannot
	  resolve some type (useful to avoid an ugly TypeLoadException
	  when specifying an erroneus custom step).

2009-04-21  Andrés G. Aragoneses  <aaragoneses@novell.com>

	* Driver.cs: Postprocess custom steps in order to make them
	able to find steps determined by the resolve method. Fixes
	#493702.

2009-04-08  Andrés G. Aragoneses  <aaragoneses@novell.com>

	* Mono.Linker.csproj: Update.

2009-02-18  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/XApiService.cs: delete, unused.
	* Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.

2009-01-28  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/AssemblyResolver.cs
	  Mono.Linker.Steps/MarkStep.cs:
		Directly use the Resolve methods from Cecil.

2008-12-16  Jb Evain  <jbevain@novell.com>

	* Makefile: build monolinker.exe in the profile directory instead of
	the current one.

2008-12-02  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
	fix the case where we compare two GenericInstanceType of the same
	element type with different generic arguments.

2008-11-24  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/ResolveFromAssemblyStep.cs
	* Mono.Linker.Steps/ResolveFromXmlStep.cs
	* Mono.Linker.Steps/MarkStep.cs:
		generalize the use of the new Has* pattern in Cecil
		to avoid unecessary allocations. Also cache delegates.

2008-09-12  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/Pipeline.cs: add a RemoveStep method.
	* Mono.Linker/Driver.cs: make the linker generate new
	module guids by default.

2008-09-12  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
	to regenerate the Mvid identifier of each linked module.

	* monolinker.exe.sources:
	* Mono.Linker.csproj: add RegeneratedGuidStep to the build.

	* Mono.Linker/Driver.cs: add a -g option to control whether to
	regenerate the modules identifier or not.

2008-09-01  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/AssemblyResolver.cs: properly cache .exes.

2008-08-26  Zoltan Varga  <vargaz@gmail.com>

	* Descriptors/mscorlib.xml: Add EntryPointNotFoundException.

2008-03-28  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/XApiReader.cs: deal better with complex names.

2008-03-28  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/LinkContext.cs: do not force the loading of
	debug symbols if not asked.

2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>

	* Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
	linker from removing CreateCulture method that is only used by the
	runtime.

2007-11-21  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/ResolveFromXmlStep.cs:
		Implement resolving from xml patterns.

2007-10-25  Jb Evain  <jbevain@novell.com>

	* monolinker.exe.sources
	* Mono.Linker.Steps/ResolveFromApiInfoStep.cs
	* Mono.Linker/Driver.cs
	* Mono.Linker/XApiReader.cs
	* Mono.Linker/ApiInfoService.cs
	* Mono.Linker/IXApiVisitor.cs:

		Big refactoring. Move logic to read Xml Api Info files
		to XApiReader, so we can use that in the tuner to deal
		with xapi files to inject attributes.

2007-08-27  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/Driver.cs
	  Mono.Linker/Annotations.cs
	  Mono.Linker/LinkContext.cs
	  Mono.Linker.Steps/OutputStep.cs:
		Implement symbols loading/saving.

2007-08-16  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/Driver.cs
	  Mono.Linker/LinkContext.cs:
		Add a way to specify parameters to the context.

2007-08-05  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/ResolveFromXmlStep.cs:
		Now the resolver deals only with assembly names
		instead of fullnames.

2007-07-25  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
		When linking from an executable, it's possible
		to reduce the executable as well.

2007-07-23  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/Driver.cs
	  Mono.Linker/LinkContext.cs:
		Allow one to specify the action to apply to an assembly
		from the command line.

2007-07-22  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/LinkContext.cs:
		If no file found with -a, try to resolve it.

	* Mono.Linker/Driver.cs
	  Mono.Linker/Pipeline.cs:
		Adjust the visibility only once, even with multiple -i.

2007-07-21  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/SweepStep.cs:
		Sweep memberrefs along with the typerefs.

2007-07-20  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/AdjustVisibilityStep.cs:
		Don't change the visibility of the members if the type
		is marked internal.

2007-07-18  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/ResolutionException.cs:
	  Mono.Linker.Steps/MarkStep.cs:
		Throw a resolution exception when a metadata item
		can not be resolved in external assemblies.

	* Mono.Linker/AssemblyResolver.cs:
		Use the assembly name only as a key for the
		assembly cache.

2007-07-05  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/Driver.cs
	  Mono.Linker/Pipeline.cs:
		Add a way to install steps in the pipeline
		from the outside.

2007-07-03  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/Driver.cs:
		Add support for @files

	* Mono.Linker/Driver.cs:
		Add a way to add search directories to the resolver.

2007-06-18  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/MarkStep.cs:
		Mark generic parameter constraints.

	* Mono.Linker.Steps/MarkStep.cs:
		Mark modifiers of modtype.

2007-06-15  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/Driver.cs,
	  Mono.Linker/I18nAssemblies.cs,
	  Mono.Linker.Steps/LoadI18nAssemblies.cs:
		Copy the i18n assemblies when running Mono.

	* Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
	  Mono.Linker/Annotations.cs,
	  Mono.Linker/LinkContext.cs,
	  Mono.Linker.Steps/ResolveFromXmlStep.cs:
		Clean up the assembly reference system.
		Fixes bug where the linker have multiple
		time the same assembly in its cache.

2007-06-13  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/OutputStep.cs:
		Copy .config files alongs with assemblies.

	* Mono.Linker.Steps/CleanStep.cs:
		Clean memberref that are not used anymore.

2007-06-12  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/AdjustVisibilityStep.cs,
	  Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
	  Mono.Linker/Drivers.cs:
		Adjust the visibility depending on the data
		gathered in the api-info.

	* Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
	  Mono.Linker/Driver.cs:
		Started working on linking from api-info.

2007-06-08  Jb Evain  <jbevain@novell.com>

	* Descriptors/System.Drawing.xml,
	  Mono.Linker.Steps/BlackListStep.cs:
		Add preserve infos for System.Drawing.

	* Mono.Linker.Steps/MarkStep.cs:
	  Tests/TestsCases/Linker/Generics/*:
		Also walk through generic instances to
		mark arguments.

2007-06-07  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/MarkStep.cs:
		Mark types used in some marshal specs.

	* Mono.Linker.Tests/MarkStep.cs
	  Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
	  Tests/TestCases/Linker/ReferenceInAttributes/*:
		Mark fields and setters used in custom attribute
		instantiation. Mark also types used in custom attribute
		instantiation.

	* profiler/Makefile,
	  profiler/link.c:
		Add a small profiler that outputs the xml format
		that the linker can resolve.

		By running an application with the profiler, one
		can help the linker gather data. Especially for dynamic
		cases like assembly loading an dynamic type resolving.

2007-06-06  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/MarkStep.cs:
	  Mono.Linker/CustomResolvercs:
		Try to find types in custom attributes to mark them.

	* Mono.Linker.Steps/MarkStep.cs:
		Mark default constructor for serializable types.
		Mark the special serialization constructor as well.

	* Mono.Linker/LinkContext.cs:
	  Mono.Linker.Steps/LoadReferences.cs:
		Use the name of the assembly as a key
		instead of the fullname.

	* Mono.Linker/CustomResolver.cs:
		When a method is not found, go down
		the class hierarchy to find it.

2007-06-05  Jb Evain  <jbevain@novell.com>

	* Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
	  Tests/TestCases/Integration/*
	  Tests/Makefile:
		Start the integration tests.

2007-06-04  Jb Evain  <jbevain@novell.com>

	* Mono.Linker.Steps/MarkStep.cs
		Mark the custom attributes on the assemblies
		on initialize.

	* Mono.Linker.Steps/ResolveFromXmlStep.cs
	  Descriptors/corlib.xml:
		Preserve the whole S.S.Crypto namespace.

	* rename back from mink to monolinker.

2007-06-01  Jb Evain  <jbevain@novell.com>

	* configure, config.make, mink.in: added

	* AUTHORS, MIT.X11, man/mink.1: added

2007-05-31  Jb Evain  <jbevain@novell.com>

	* README: added
	  monolinker.exe.sources: moved to mink.exe.sources
	  Makefile, Mono.Linker.csproj: emit a mink.exe

	* Mono.Linker/LinkContext.cs:
		A resolved assembly is not always the one requested,
		cache the good name.

	* Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
	  Mono.Linker.Steps/OutputStep.cs
	  Mono.Linker.Steps/LoadReferencesStep.cs
	  Mono.Linker.Steps/CleanStep.cs
	  Mono.Linker.Steps/ResolveFromAssemblyStep.cs
	  Mono.Linker.Steps/SweepStep.cs
	  Mono.Linker.Steps/BlacklistStep.cs
	  Mono.Linker.Steps/MarkStep.cs
	  Mono.Linker.Steps/BaseStep.cs
	  Mono.Linker.csproj
	  Mono.Linker/Driver.cs:
		Add a new abstract BaseStep to be extends by most
		of the steps.
		Add a new LoadReferences step to force all referenced
		assemblies to be resolved before the mark step.

	* Mono.Linker/CustomResolver.cs
	  Mono.Linker/LinkContext.cs:
		Register entry assembly.

2007-05-30  Jb Evain  <jbevain@novell.com>

	* Mono.Linker/MarkStep.cs:
		Fix regression: do not mark GenericParameters that are
		part of a typespec, like T[] or T*.

2007-05-28  Jb Evain  <jbevain@novell.com>

	* Big refactoring. Get rid of the markers, use the annotations
		of Cecil instead.

	* Mono.Linker/Marker.cs
	  Mono.Linker/MarkStep.cs
	  Mono.Linker/SweepStep.cs:
		Use annotations to mark wether or not we should
		sweep an item.

2007-05-23  Jb Evain  <jbevain@novell.com>

	* Mono.Limker/CleanStep.cs:
		Stop doing hackish stupid things because
		Cecil suddenly handles MemberRef much better.

2007-05-19  Jb Evain  <jb@nurv.fr>

	* Mono.Linker/ResolveFromXmlStep.cs
	  Mono.Linker/AssemblyMarker.cs
	  Mono.Linker/MarkStep.cs
	  Mono.Linker/ResolveFromAssemblyStep.cs:
		Process correctly the marker selected in the resolve phases.

2007-05-17  Jb Evain  <jb@nurv.fr>

	* Mono.Linker/CleanStep.cs
	  Mono.Linker/SweepStep.cs
	  Mono.Linker/MarkStep.cs:
		Link only when necessary.

	* Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
	  Tests/Mono.Linker.Tests/AbstractTestFixture.cs
	  Mono.Linker.csproj
	  Mono.Linker/ResolveFromXmlStep.cs
	  Mono.Linker/AssemblyMarker.cs
	  Mono.Linker/Marker.cs
	  Mono.Linker/MarkStep.cs
	  Mono.Linker/TypePreserve.cs
	  Mono.Linker/Pipeline.cs:
		Deal with preserve and required infos, make last test pass.

	* Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
	  Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
	  Tests/TestCases/Linker/PreserveFieldsRequired
	  Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
	  Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
	  Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
	  Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
		Add a new (failing for now) test case for preserve and required.

2007-05-16  Jb Evain  <jb@nurv.fr>

	* Tests/Mono.Linker.Tests/AbstractTestFixture.cs
	  Mono.Linker.csproj
	  Mono.Linker/CoreAction.cs
	  Mono.Linker/Driver.cs
	  Mono.Linker/LinkContext.cs:
		Simplify the command line options.

	* Tests/Mono.Linker.Tests/AbstractTestFixture.cs
	  Mono.Linker.csproj
	  Mono.Linker/CleanStep.cs
	  Mono.Linker/ResolveFromXmlStep.cs
	  Mono.Linker/Driver.cs
	  Mono.Linker/OutputStep.cs
	  Mono.Linker/ResolveFromAssemblyStep.cs
	  Mono.Linker/LinkContext.cs
	  Mono.Linker/BlacklistStep.cs
	  Mono.Linker/Pipeline.cs:
		Working on black list support.

	* Descriptors/corlib.xml
	  Descriptors/system.xml
	  Descriptors/system.web.xml:
		First audit of the core.

2007-04-23  Jb Evain  <jb@nurv.fr>

	* Mono.Linker/CleanStep.cs:
		Clean some special cases of MemberRef.

2007-03-19  Jb Evain  <jbevain@gmail.com>

	* Fix a bug when an assembly references two
	versions of an assembly with the same name.
	* do some refactorings

2007-03-16  Jb Evain  <jbevain@gmail.com>

	* rename linker.exe to monolinker.exe

2006-11-08  Jb Evain  <jbevain@gmail.com>

	* Mono.Linker/AssemblyMarker.cs:
		Fix a bug in method resolution.
	* Mono.Linker/Driver.cs:
		Fix a bug in assembly action processing.

2006-11-02  Jb Evain  <jbevain@gmail.com>

	* check-in patches adapted from contributions by:
		Alex Prudkiy <prudkiy@mail.ru>

2006-08-21  Jb Evain  <jbevain@gmail.com>

	* mark types used within the runtime

2006-08-20  Jb Evain  <jbevain@gmail.com>

	* mark the custom attributes from the assemblies, modules and
		generic parameters

	* mark the methods used by an event

	* mark the custom attributes on the properties and the events
		which are used.

	* preserve the fields of the value types

	* clean also nested types in a proper way.

	* clean events as well

2006-08-17  Jb Evain  <jbevain@gmail.com>

	* provide a Makefile

2006-08-16  Jb Evain  <jbevain@gmail.com>

	* work on generics assemblies linking

	* use the resolver from Cecil.

	* when marking a type, also mark its virtual methods

2006-08-15  Jb Evain  <jbevain@gmail.com>

	* clean properties

	* mark interfaces as well

	* work in progress + unit tests.

2006-07-27  Jb Evain  <jbevain@gmail.com>

	* begin work on the sweep step.

2006-07-20  Jb Evain  <jbevain@gmail.com>

	* very first commit.
	  draft implementation of the mark phase of the linker.
