2010-02-13 Jb Evain <jbevain@novell.com>
[mcs.git] / tools / linker / ChangeLog
bloba91370619ba43f15b39f842cc10853538851fa80
1 2010-02-01  Jb Evain  <jbevain@novell.com>
3         * MarkStep.cs: SoapHeader can either take a field or a property.
5 2010-01-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7         * Makefile: Fetch Mono.Cecil.dll from whatever profile we happen to be
8         building in.
10 2010-01-14  Jb Evain  <jbevain@novell.com>
12         * MarkStep.cs: preserve fields specified by the
13         SoapHeader attribute.
15 2010-01-13  Jb Evain  <jbevain@novell.com>
17         * MarkStep.cs: preserve methods specified by the
18         XmlSchemaProvider attribute.
20 2010-01-06  Jb Evain  <jbevain@novell.com>
22         * Descriptors/mscorlib.xml: optimize descriptor.
24 2009-11-23  Jb Evain  <jbevain@novell.com>
26         * Descriptors/mscorlib.xml: protect the InternalThread class.
27         Fixes #555871.
29 2009-11-02  Jb Evain  <jbevain@novell.com>
31         Merge the MonoTouch Linker branch.
33         * monolinker.exe.sources: update
35         * Mono.Linker/Annotations.cs:
36                 - add an preserved methods annotation on a type.
37                 - add an annotation to get the base methods of a method.
38                 - add an annotation to get the overriden method of a method.
40         * Mono.Linker/AssemblyAction.cs:
41                 add a Delete action to remove an assembly from the output set.
43         * Mono.Linker.Steps/TypeMapStep.cs:
44                 new step that create a map of virtual methods implementation.
46         * Mono.Linker.Steps/MarkStep.cs:
47                 - removal of virtual methods.
48                 - fix for custom attributes assigning properties and field
49                         defined in a base type.
50                 - mark scopes.
51                 - mark default constructors of types used as a generic instance
52                         of a generic parameter constrained with new().
53                 - apply preserved methods.
55         * Mono.Linker.Steps/SweepStep.cs: remove unused assemblies.
57         * Mono.Linker.Steps/LoadI18nAssemblies.cs:
58                 fix linking of i18n assemblies.
60         * Mono.Linker.Steps/OutputStep.cs:
61                 fix the copied assemblies when the output directory
62                 is the same as the origin of the assemblies.
64         * Mono.Linker.Steps/ResolveFromXmlStep.cs
65         * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
66         * Mono.Linker.Steps/BaseStep.cs
67         * Mono.Linker/Driver.cs
68         * Mono.Linker/Pipeline.cs:
69                 Cosmetics.
71 2009-09-10  Andrés G. Aragoneses  <aaragoneses@novell.com>
73         * Mono.Linker.Steps/MarkStep.cs: Make IgnoreScope() virtual to
74           prevent marking custom attributes of foreign assemblies in a
75           derived step in the tuner. ( r: jb )
77 2009-09-09  Andrés G. Aragoneses  <aaragoneses@novell.com>
79         * Mono.Linker.Steps/MarkStep.cs: Visibility changes needed by
80           the need of some new tuner step to redefine or call some
81           methods.
83 2009-07-02  Jb Evain  <jbevain@novell.com>
85         * Makefile: fix cecil's location.
87 2009-06-09  Andrés G. Aragoneses  <aaragoneses@novell.com>
89         * Mono.Linker.Steps/BaseStep.cs: New virtual API needed.
91         * Mono.Linker/Pipeline.cs: API love.
93 2009-06-09  Andrés G. Aragoneses  <aaragoneses@novell.com>
95         * Mono.Linker.csproj: Update.
97         * Mono.Linker/Driver.cs: Prevent InvalidCastException.
99 2009-06-05  Jb Evain  <jbevain@novell.com>
101         * Mono.Linker.Steps/MarkStep.cs: fix a nre.
102         Based on patch by Andres G. Aragoneses  <aaragoneses@novell.com>.
104 2009-06-05  Jb Evain  <jbevain@novell.com>
106         * Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.
108 2009-06-05  Jb Evain  <jbevain@novell.com>
110         * Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
111         possibilities to detail the xml descriptors.
113 2009-06-04  Jb Evain  <jbevain@novell.com>
115         * Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
116         of wildcards constructors.
118 2009-04-23  Andrés G. Aragoneses  <aaragoneses@novell.com>
120         * Mono.Linker/Driver.cs: Report error and exit if it cannot
121           resolve some type (useful to avoid an ugly TypeLoadException
122           when specifying an erroneus custom step).
124 2009-04-21  Andrés G. Aragoneses  <aaragoneses@novell.com>
126         * Driver.cs: Postprocess custom steps in order to make them
127         able to find steps determined by the resolve method. Fixes
128         #493702.
130 2009-04-08  Andrés G. Aragoneses  <aaragoneses@novell.com>
132         * Mono.Linker.csproj: Update.
134 2009-02-18  Jb Evain  <jbevain@novell.com>
136         * Mono.Linker/XApiService.cs: delete, unused.
137         * Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.
139 2009-01-28  Jb Evain  <jbevain@novell.com>
141         * Mono.Linker/AssemblyResolver.cs
142           Mono.Linker.Steps/MarkStep.cs:
143                 Directly use the Resolve methods from Cecil.
145 2008-12-16  Jb Evain  <jbevain@novell.com>
147         * Makefile: build monolinker.exe in the profile directory instead of
148         the current one.
150 2008-12-02  Jb Evain  <jbevain@novell.com>
152         * Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
153         fix the case where we compare two GenericInstanceType of the same
154         element type with different generic arguments.
156 2008-11-24  Jb Evain  <jbevain@novell.com>
158         * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
159         * Mono.Linker.Steps/ResolveFromXmlStep.cs
160         * Mono.Linker.Steps/MarkStep.cs:
161                 generalize the use of the new Has* pattern in Cecil
162                 to avoid unecessary allocations. Also cache delegates.
164 2008-09-12  Jb Evain  <jbevain@novell.com>
166         * Mono.Linker/Pipeline.cs: add a RemoveStep method.
167         * Mono.Linker/Driver.cs: make the linker generate new
168         module guids by default.
170 2008-09-12  Jb Evain  <jbevain@novell.com>
172         * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
173         to regenerate the Mvid identifier of each linked module.
175         * monolinker.exe.sources:
176         * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
178         * Mono.Linker/Driver.cs: add a -g option to control whether to
179         regenerate the modules identifier or not.
181 2008-09-01  Jb Evain  <jbevain@novell.com>
183         * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
185 2008-08-26  Zoltan Varga  <vargaz@gmail.com>
187         * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
189 2008-03-28  Jb Evain  <jbevain@novell.com>
191         * Mono.Linker/XApiReader.cs: deal better with complex names.
193 2008-03-28  Jb Evain  <jbevain@novell.com>
195         * Mono.Linker/LinkContext.cs: do not force the loading of
196         debug symbols if not asked.
198 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
200         * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
201         linker from removing CreateCulture method that is only used by the
202         runtime.
204 2007-11-21  Jb Evain  <jbevain@novell.com>
206         * Mono.Linker.Steps/ResolveFromXmlStep.cs:
207                 Implement resolving from xml patterns.
209 2007-10-25  Jb Evain  <jbevain@novell.com>
211         * monolinker.exe.sources
212         * Mono.Linker.Steps/ResolveFromApiInfoStep.cs
213         * Mono.Linker/Driver.cs
214         * Mono.Linker/XApiReader.cs
215         * Mono.Linker/ApiInfoService.cs
216         * Mono.Linker/IXApiVisitor.cs:
218                 Big refactoring. Move logic to read Xml Api Info files
219                 to XApiReader, so we can use that in the tuner to deal
220                 with xapi files to inject attributes.
222 2007-08-27  Jb Evain  <jbevain@novell.com>
224         * Mono.Linker/Driver.cs
225           Mono.Linker/Annotations.cs
226           Mono.Linker/LinkContext.cs
227           Mono.Linker.Steps/OutputStep.cs:
228                 Implement symbols loading/saving.
230 2007-08-16  Jb Evain  <jbevain@novell.com>
232         * Mono.Linker/Driver.cs
233           Mono.Linker/LinkContext.cs:
234                 Add a way to specify parameters to the context.
236 2007-08-05  Jb Evain  <jbevain@novell.com>
238         * Mono.Linker.Steps/ResolveFromXmlStep.cs:
239                 Now the resolver deals only with assembly names
240                 instead of fullnames.
242 2007-07-25  Jb Evain  <jbevain@novell.com>
244         * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
245                 When linking from an executable, it's possible
246                 to reduce the executable as well.
248 2007-07-23  Jb Evain  <jbevain@novell.com>
250         * Mono.Linker/Driver.cs
251           Mono.Linker/LinkContext.cs:
252                 Allow one to specify the action to apply to an assembly
253                 from the command line.
255 2007-07-22  Jb Evain  <jbevain@novell.com>
257         * Mono.Linker/LinkContext.cs:
258                 If no file found with -a, try to resolve it.
260         * Mono.Linker/Driver.cs
261           Mono.Linker/Pipeline.cs:
262                 Adjust the visibility only once, even with multiple -i.
264 2007-07-21  Jb Evain  <jbevain@novell.com>
266         * Mono.Linker.Steps/SweepStep.cs:
267                 Sweep memberrefs along with the typerefs.
269 2007-07-20  Jb Evain  <jbevain@novell.com>
271         * Mono.Linker.Steps/AdjustVisibilityStep.cs:
272                 Don't change the visibility of the members if the type
273                 is marked internal.
275 2007-07-18  Jb Evain  <jbevain@novell.com>
277         * Mono.Linker/ResolutionException.cs:
278           Mono.Linker.Steps/MarkStep.cs:
279                 Throw a resolution exception when a metadata item
280                 can not be resolved in external assemblies.
282         * Mono.Linker/AssemblyResolver.cs:
283                 Use the assembly name only as a key for the
284                 assembly cache.
286 2007-07-05  Jb Evain  <jbevain@novell.com>
288         * Mono.Linker/Driver.cs
289           Mono.Linker/Pipeline.cs:
290                 Add a way to install steps in the pipeline
291                 from the outside.
293 2007-07-03  Jb Evain  <jbevain@novell.com>
295         * Mono.Linker/Driver.cs:
296                 Add support for @files
298         * Mono.Linker/Driver.cs:
299                 Add a way to add search directories to the resolver.
301 2007-06-18  Jb Evain  <jbevain@novell.com>
303         * Mono.Linker.Steps/MarkStep.cs:
304                 Mark generic parameter constraints.
306         * Mono.Linker.Steps/MarkStep.cs:
307                 Mark modifiers of modtype.
309 2007-06-15  Jb Evain  <jbevain@novell.com>
311         * Mono.Linker/Driver.cs,
312           Mono.Linker/I18nAssemblies.cs,
313           Mono.Linker.Steps/LoadI18nAssemblies.cs:
314                 Copy the i18n assemblies when running Mono.
316         * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
317           Mono.Linker/Annotations.cs,
318           Mono.Linker/LinkContext.cs,
319           Mono.Linker.Steps/ResolveFromXmlStep.cs:
320                 Clean up the assembly reference system.
321                 Fixes bug where the linker have multiple
322                 time the same assembly in its cache.
324 2007-06-13  Jb Evain  <jbevain@novell.com>
326         * Mono.Linker.Steps/OutputStep.cs:
327                 Copy .config files alongs with assemblies.
329         * Mono.Linker.Steps/CleanStep.cs:
330                 Clean memberref that are not used anymore.
332 2007-06-12  Jb Evain  <jbevain@novell.com>
334         * Mono.Linker.Steps/AdjustVisibilityStep.cs,
335           Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
336           Mono.Linker/Drivers.cs:
337                 Adjust the visibility depending on the data
338                 gathered in the api-info.
340         * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
341           Mono.Linker/Driver.cs:
342                 Started working on linking from api-info.
344 2007-06-08  Jb Evain  <jbevain@novell.com>
346         * Descriptors/System.Drawing.xml,
347           Mono.Linker.Steps/BlackListStep.cs:
348                 Add preserve infos for System.Drawing.
350         * Mono.Linker.Steps/MarkStep.cs:
351           Tests/TestsCases/Linker/Generics/*:
352                 Also walk through generic instances to
353                 mark arguments.
355 2007-06-07  Jb Evain  <jbevain@novell.com>
357         * Mono.Linker.Steps/MarkStep.cs:
358                 Mark types used in some marshal specs.
360         * Mono.Linker.Tests/MarkStep.cs
361           Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
362           Tests/TestCases/Linker/ReferenceInAttributes/*:
363                 Mark fields and setters used in custom attribute
364                 instantiation. Mark also types used in custom attribute
365                 instantiation.
367         * profiler/Makefile,
368           profiler/link.c:
369                 Add a small profiler that outputs the xml format
370                 that the linker can resolve.
372                 By running an application with the profiler, one
373                 can help the linker gather data. Especially for dynamic
374                 cases like assembly loading an dynamic type resolving.
376 2007-06-06  Jb Evain  <jbevain@novell.com>
378         * Mono.Linker.Steps/MarkStep.cs:
379           Mono.Linker/CustomResolvercs:
380                 Try to find types in custom attributes to mark them.
382         * Mono.Linker.Steps/MarkStep.cs:
383                 Mark default constructor for serializable types.
384                 Mark the special serialization constructor as well.
386         * Mono.Linker/LinkContext.cs:
387           Mono.Linker.Steps/LoadReferences.cs:
388                 Use the name of the assembly as a key
389                 instead of the fullname.
391         * Mono.Linker/CustomResolver.cs:
392                 When a method is not found, go down
393                 the class hierarchy to find it.
395 2007-06-05  Jb Evain  <jbevain@novell.com>
397         * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
398           Tests/TestCases/Integration/*
399           Tests/Makefile:
400                 Start the integration tests.
402 2007-06-04  Jb Evain  <jbevain@novell.com>
404         * Mono.Linker.Steps/MarkStep.cs
405                 Mark the custom attributes on the assemblies
406                 on initialize.
408         * Mono.Linker.Steps/ResolveFromXmlStep.cs
409           Descriptors/corlib.xml:
410                 Preserve the whole S.S.Crypto namespace.
412         * rename back from mink to monolinker.
414 2007-06-01  Jb Evain  <jbevain@novell.com>
416         * configure, config.make, mink.in: added
418         * AUTHORS, MIT.X11, man/mink.1: added
420 2007-05-31  Jb Evain  <jbevain@novell.com>
422         * README: added
423           monolinker.exe.sources: moved to mink.exe.sources
424           Makefile, Mono.Linker.csproj: emit a mink.exe
426         * Mono.Linker/LinkContext.cs:
427                 A resolved assembly is not always the one requested,
428                 cache the good name.
430         * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
431           Mono.Linker.Steps/OutputStep.cs
432           Mono.Linker.Steps/LoadReferencesStep.cs
433           Mono.Linker.Steps/CleanStep.cs
434           Mono.Linker.Steps/ResolveFromAssemblyStep.cs
435           Mono.Linker.Steps/SweepStep.cs
436           Mono.Linker.Steps/BlacklistStep.cs
437           Mono.Linker.Steps/MarkStep.cs
438           Mono.Linker.Steps/BaseStep.cs
439           Mono.Linker.csproj
440           Mono.Linker/Driver.cs:
441                 Add a new abstract BaseStep to be extends by most
442                 of the steps.
443                 Add a new LoadReferences step to force all referenced
444                 assemblies to be resolved before the mark step.
446         * Mono.Linker/CustomResolver.cs
447           Mono.Linker/LinkContext.cs:
448                 Register entry assembly.
450 2007-05-30  Jb Evain  <jbevain@novell.com>
452         * Mono.Linker/MarkStep.cs:
453                 Fix regression: do not mark GenericParameters that are
454                 part of a typespec, like T[] or T*.
456 2007-05-28  Jb Evain  <jbevain@novell.com>
458         * Big refactoring. Get rid of the markers, use the annotations
459                 of Cecil instead.
461         * Mono.Linker/Marker.cs
462           Mono.Linker/MarkStep.cs
463           Mono.Linker/SweepStep.cs:
464                 Use annotations to mark wether or not we should
465                 sweep an item.
467 2007-05-23  Jb Evain  <jbevain@novell.com>
469         * Mono.Limker/CleanStep.cs:
470                 Stop doing hackish stupid things because
471                 Cecil suddenly handles MemberRef much better.
473 2007-05-19  Jb Evain  <jb@nurv.fr>
475         * Mono.Linker/ResolveFromXmlStep.cs
476           Mono.Linker/AssemblyMarker.cs
477           Mono.Linker/MarkStep.cs
478           Mono.Linker/ResolveFromAssemblyStep.cs:
479                 Process correctly the marker selected in the resolve phases.
481 2007-05-17  Jb Evain  <jb@nurv.fr>
483         * Mono.Linker/CleanStep.cs
484           Mono.Linker/SweepStep.cs
485           Mono.Linker/MarkStep.cs:
486                 Link only when necessary.
488         * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
489           Tests/Mono.Linker.Tests/AbstractTestFixture.cs
490           Mono.Linker.csproj
491           Mono.Linker/ResolveFromXmlStep.cs
492           Mono.Linker/AssemblyMarker.cs
493           Mono.Linker/Marker.cs
494           Mono.Linker/MarkStep.cs
495           Mono.Linker/TypePreserve.cs
496           Mono.Linker/Pipeline.cs:
497                 Deal with preserve and required infos, make last test pass.
499         * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
500           Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
501           Tests/TestCases/Linker/PreserveFieldsRequired
502           Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
503           Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
504           Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
505           Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
506                 Add a new (failing for now) test case for preserve and required.
508 2007-05-16  Jb Evain  <jb@nurv.fr>
510         * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
511           Mono.Linker.csproj
512           Mono.Linker/CoreAction.cs
513           Mono.Linker/Driver.cs
514           Mono.Linker/LinkContext.cs:
515                 Simplify the command line options.
517         * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
518           Mono.Linker.csproj
519           Mono.Linker/CleanStep.cs
520           Mono.Linker/ResolveFromXmlStep.cs
521           Mono.Linker/Driver.cs
522           Mono.Linker/OutputStep.cs
523           Mono.Linker/ResolveFromAssemblyStep.cs
524           Mono.Linker/LinkContext.cs
525           Mono.Linker/BlacklistStep.cs
526           Mono.Linker/Pipeline.cs:
527                 Working on black list support.
529         * Descriptors/corlib.xml
530           Descriptors/system.xml
531           Descriptors/system.web.xml:
532                 First audit of the core.
534 2007-04-23  Jb Evain  <jb@nurv.fr>
536         * Mono.Linker/CleanStep.cs:
537                 Clean some special cases of MemberRef.
539 2007-03-19  Jb Evain  <jbevain@gmail.com>
541         * Fix a bug when an assembly references two
542         versions of an assembly with the same name.
543         * do some refactorings
545 2007-03-16  Jb Evain  <jbevain@gmail.com>
547         * rename linker.exe to monolinker.exe
549 2006-11-08  Jb Evain  <jbevain@gmail.com>
551         * Mono.Linker/AssemblyMarker.cs:
552                 Fix a bug in method resolution.
553         * Mono.Linker/Driver.cs:
554                 Fix a bug in assembly action processing.
556 2006-11-02  Jb Evain  <jbevain@gmail.com>
558         * check-in patches adapted from contributions by:
559                 Alex Prudkiy <prudkiy@mail.ru>
561 2006-08-21  Jb Evain  <jbevain@gmail.com>
563         * mark types used within the runtime
565 2006-08-20  Jb Evain  <jbevain@gmail.com>
567         * mark the custom attributes from the assemblies, modules and
568                 generic parameters
570         * mark the methods used by an event
572         * mark the custom attributes on the properties and the events
573                 which are used.
575         * preserve the fields of the value types
577         * clean also nested types in a proper way.
579         * clean events as well
581 2006-08-17  Jb Evain  <jbevain@gmail.com>
583         * provide a Makefile
585 2006-08-16  Jb Evain  <jbevain@gmail.com>
587         * work on generics assemblies linking
589         * use the resolver from Cecil.
591         * when marking a type, also mark its virtual methods
593 2006-08-15  Jb Evain  <jbevain@gmail.com>
595         * clean properties
597         * mark interfaces as well
599         * work in progress + unit tests.
601 2006-07-27  Jb Evain  <jbevain@gmail.com>
603         * begin work on the sweep step.
605 2006-07-20  Jb Evain  <jbevain@gmail.com>
607         * very first commit.
608           draft implementation of the mark phase of the linker.