In class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine:
[mcs.git] / tools / linker / ChangeLog
blobf7dc1b39b0ef1379534a3ecc98211ec3c3500985
1 2009-09-10  Andrés G. Aragoneses  <aaragoneses@novell.com>
3         * Mono.Linker.Steps/MarkStep.cs: Make IgnoreScope() virtual to
4           prevent marking custom attributes of foreign assemblies in a
5           derived step in the tuner. ( r: jb )
7 2009-09-09  Andrés G. Aragoneses  <aaragoneses@novell.com>
9         * Mono.Linker.Steps/MarkStep.cs: Visibility changes needed by
10           the need of some new tuner step to redefine or call some
11           methods.
13 2009-07-02  Jb Evain  <jbevain@novell.com>
15         * Makefile: fix cecil's location.
17 2009-06-09  Andrés G. Aragoneses  <aaragoneses@novell.com>
19         * Mono.Linker.Steps/BaseStep.cs: New virtual API needed.
21         * Mono.Linker/Pipeline.cs: API love.
23 2009-06-09  Andrés G. Aragoneses  <aaragoneses@novell.com>
25         * Mono.Linker.csproj: Update.
27         * Mono.Linker/Driver.cs: Prevent InvalidCastException.
29 2009-06-05  Jb Evain  <jbevain@novell.com>
31         * Mono.Linker.Steps/MarkStep.cs: fix a nre.
32         Based on patch by Andres G. Aragoneses  <aaragoneses@novell.com>.
34 2009-06-05  Jb Evain  <jbevain@novell.com>
36         * Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.
38 2009-06-05  Jb Evain  <jbevain@novell.com>
40         * Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
41         possibilities to detail the xml descriptors.
43 2009-06-04  Jb Evain  <jbevain@novell.com>
45         * Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
46         of wildcards constructors.
48 2009-04-23  Andrés G. Aragoneses  <aaragoneses@novell.com>
50         * Mono.Linker/Driver.cs: Report error and exit if it cannot
51           resolve some type (useful to avoid an ugly TypeLoadException
52           when specifying an erroneus custom step).
54 2009-04-21  Andrés G. Aragoneses  <aaragoneses@novell.com>
56         * Driver.cs: Postprocess custom steps in order to make them
57         able to find steps determined by the resolve method. Fixes
58         #493702.
60 2009-04-08  Andrés G. Aragoneses  <aaragoneses@novell.com>
62         * Mono.Linker.csproj: Update.
64 2009-02-18  Jb Evain  <jbevain@novell.com>
66         * Mono.Linker/XApiService.cs: delete, unused.
67         * Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.
69 2009-01-28  Jb Evain  <jbevain@novell.com>
71         * Mono.Linker/AssemblyResolver.cs
72           Mono.Linker.Steps/MarkStep.cs:
73                 Directly use the Resolve methods from Cecil.
75 2008-12-16  Jb Evain  <jbevain@novell.com>
77         * Makefile: build monolinker.exe in the profile directory instead of
78         the current one.
80 2008-12-02  Jb Evain  <jbevain@novell.com>
82         * Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
83         fix the case where we compare two GenericInstanceType of the same
84         element type with different generic arguments.
86 2008-11-24  Jb Evain  <jbevain@novell.com>
88         * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
89         * Mono.Linker.Steps/ResolveFromXmlStep.cs
90         * Mono.Linker.Steps/MarkStep.cs:
91                 generalize the use of the new Has* pattern in Cecil
92                 to avoid unecessary allocations. Also cache delegates.
94 2008-09-12  Jb Evain  <jbevain@novell.com>
96         * Mono.Linker/Pipeline.cs: add a RemoveStep method.
97         * Mono.Linker/Driver.cs: make the linker generate new
98         module guids by default.
100 2008-09-12  Jb Evain  <jbevain@novell.com>
102         * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
103         to regenerate the Mvid identifier of each linked module.
105         * monolinker.exe.sources:
106         * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
108         * Mono.Linker/Driver.cs: add a -g option to control whether to
109         regenerate the modules identifier or not.
111 2008-09-01  Jb Evain  <jbevain@novell.com>
113         * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
115 2008-08-26  Zoltan Varga  <vargaz@gmail.com>
117         * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
119 2008-03-28  Jb Evain  <jbevain@novell.com>
121         * Mono.Linker/XApiReader.cs: deal better with complex names.
123 2008-03-28  Jb Evain  <jbevain@novell.com>
125         * Mono.Linker/LinkContext.cs: do not force the loading of
126         debug symbols if not asked.
128 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
130         * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
131         linker from removing CreateCulture method that is only used by the
132         runtime.
134 2007-11-21  Jb Evain  <jbevain@novell.com>
136         * Mono.Linker.Steps/ResolveFromXmlStep.cs:
137                 Implement resolving from xml patterns.
139 2007-10-25  Jb Evain  <jbevain@novell.com>
141         * monolinker.exe.sources
142         * Mono.Linker.Steps/ResolveFromApiInfoStep.cs
143         * Mono.Linker/Driver.cs
144         * Mono.Linker/XApiReader.cs
145         * Mono.Linker/ApiInfoService.cs
146         * Mono.Linker/IXApiVisitor.cs:
148                 Big refactoring. Move logic to read Xml Api Info files
149                 to XApiReader, so we can use that in the tuner to deal
150                 with xapi files to inject attributes.
152 2007-08-27  Jb Evain  <jbevain@novell.com>
154         * Mono.Linker/Driver.cs
155           Mono.Linker/Annotations.cs
156           Mono.Linker/LinkContext.cs
157           Mono.Linker.Steps/OutputStep.cs:
158                 Implement symbols loading/saving.
160 2007-08-16  Jb Evain  <jbevain@novell.com>
162         * Mono.Linker/Driver.cs
163           Mono.Linker/LinkContext.cs:
164                 Add a way to specify parameters to the context.
166 2007-08-05  Jb Evain  <jbevain@novell.com>
168         * Mono.Linker.Steps/ResolveFromXmlStep.cs:
169                 Now the resolver deals only with assembly names
170                 instead of fullnames.
172 2007-07-25  Jb Evain  <jbevain@novell.com>
174         * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
175                 When linking from an executable, it's possible
176                 to reduce the executable as well.
178 2007-07-23  Jb Evain  <jbevain@novell.com>
180         * Mono.Linker/Driver.cs
181           Mono.Linker/LinkContext.cs:
182                 Allow one to specify the action to apply to an assembly
183                 from the command line.
185 2007-07-22  Jb Evain  <jbevain@novell.com>
187         * Mono.Linker/LinkContext.cs:
188                 If no file found with -a, try to resolve it.
190         * Mono.Linker/Driver.cs
191           Mono.Linker/Pipeline.cs:
192                 Adjust the visibility only once, even with multiple -i.
194 2007-07-21  Jb Evain  <jbevain@novell.com>
196         * Mono.Linker.Steps/SweepStep.cs:
197                 Sweep memberrefs along with the typerefs.
199 2007-07-20  Jb Evain  <jbevain@novell.com>
201         * Mono.Linker.Steps/AdjustVisibilityStep.cs:
202                 Don't change the visibility of the members if the type
203                 is marked internal.
205 2007-07-18  Jb Evain  <jbevain@novell.com>
207         * Mono.Linker/ResolutionException.cs:
208           Mono.Linker.Steps/MarkStep.cs:
209                 Throw a resolution exception when a metadata item
210                 can not be resolved in external assemblies.
212         * Mono.Linker/AssemblyResolver.cs:
213                 Use the assembly name only as a key for the
214                 assembly cache.
216 2007-07-05  Jb Evain  <jbevain@novell.com>
218         * Mono.Linker/Driver.cs
219           Mono.Linker/Pipeline.cs:
220                 Add a way to install steps in the pipeline
221                 from the outside.
223 2007-07-03  Jb Evain  <jbevain@novell.com>
225         * Mono.Linker/Driver.cs:
226                 Add support for @files
228         * Mono.Linker/Driver.cs:
229                 Add a way to add search directories to the resolver.
231 2007-06-18  Jb Evain  <jbevain@novell.com>
233         * Mono.Linker.Steps/MarkStep.cs:
234                 Mark generic parameter constraints.
236         * Mono.Linker.Steps/MarkStep.cs:
237                 Mark modifiers of modtype.
239 2007-06-15  Jb Evain  <jbevain@novell.com>
241         * Mono.Linker/Driver.cs,
242           Mono.Linker/I18nAssemblies.cs,
243           Mono.Linker.Steps/LoadI18nAssemblies.cs:
244                 Copy the i18n assemblies when running Mono.
246         * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
247           Mono.Linker/Annotations.cs,
248           Mono.Linker/LinkContext.cs,
249           Mono.Linker.Steps/ResolveFromXmlStep.cs:
250                 Clean up the assembly reference system.
251                 Fixes bug where the linker have multiple
252                 time the same assembly in its cache.
254 2007-06-13  Jb Evain  <jbevain@novell.com>
256         * Mono.Linker.Steps/OutputStep.cs:
257                 Copy .config files alongs with assemblies.
259         * Mono.Linker.Steps/CleanStep.cs:
260                 Clean memberref that are not used anymore.
262 2007-06-12  Jb Evain  <jbevain@novell.com>
264         * Mono.Linker.Steps/AdjustVisibilityStep.cs,
265           Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
266           Mono.Linker/Drivers.cs:
267                 Adjust the visibility depending on the data
268                 gathered in the api-info.
270         * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
271           Mono.Linker/Driver.cs:
272                 Started working on linking from api-info.
274 2007-06-08  Jb Evain  <jbevain@novell.com>
276         * Descriptors/System.Drawing.xml,
277           Mono.Linker.Steps/BlackListStep.cs:
278                 Add preserve infos for System.Drawing.
280         * Mono.Linker.Steps/MarkStep.cs:
281           Tests/TestsCases/Linker/Generics/*:
282                 Also walk through generic instances to
283                 mark arguments.
285 2007-06-07  Jb Evain  <jbevain@novell.com>
287         * Mono.Linker.Steps/MarkStep.cs:
288                 Mark types used in some marshal specs.
290         * Mono.Linker.Tests/MarkStep.cs
291           Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
292           Tests/TestCases/Linker/ReferenceInAttributes/*:
293                 Mark fields and setters used in custom attribute
294                 instantiation. Mark also types used in custom attribute
295                 instantiation.
297         * profiler/Makefile,
298           profiler/link.c:
299                 Add a small profiler that outputs the xml format
300                 that the linker can resolve.
302                 By running an application with the profiler, one
303                 can help the linker gather data. Especially for dynamic
304                 cases like assembly loading an dynamic type resolving.
306 2007-06-06  Jb Evain  <jbevain@novell.com>
308         * Mono.Linker.Steps/MarkStep.cs:
309           Mono.Linker/CustomResolvercs:
310                 Try to find types in custom attributes to mark them.
312         * Mono.Linker.Steps/MarkStep.cs:
313                 Mark default constructor for serializable types.
314                 Mark the special serialization constructor as well.
316         * Mono.Linker/LinkContext.cs:
317           Mono.Linker.Steps/LoadReferences.cs:
318                 Use the name of the assembly as a key
319                 instead of the fullname.
321         * Mono.Linker/CustomResolver.cs:
322                 When a method is not found, go down
323                 the class hierarchy to find it.
325 2007-06-05  Jb Evain  <jbevain@novell.com>
327         * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
328           Tests/TestCases/Integration/*
329           Tests/Makefile:
330                 Start the integration tests.
332 2007-06-04  Jb Evain  <jbevain@novell.com>
334         * Mono.Linker.Steps/MarkStep.cs
335                 Mark the custom attributes on the assemblies
336                 on initialize.
338         * Mono.Linker.Steps/ResolveFromXmlStep.cs
339           Descriptors/corlib.xml:
340                 Preserve the whole S.S.Crypto namespace.
342         * rename back from mink to monolinker.
344 2007-06-01  Jb Evain  <jbevain@novell.com>
346         * configure, config.make, mink.in: added
348         * AUTHORS, MIT.X11, man/mink.1: added
350 2007-05-31  Jb Evain  <jbevain@novell.com>
352         * README: added
353           monolinker.exe.sources: moved to mink.exe.sources
354           Makefile, Mono.Linker.csproj: emit a mink.exe
356         * Mono.Linker/LinkContext.cs:
357                 A resolved assembly is not always the one requested,
358                 cache the good name.
360         * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
361           Mono.Linker.Steps/OutputStep.cs
362           Mono.Linker.Steps/LoadReferencesStep.cs
363           Mono.Linker.Steps/CleanStep.cs
364           Mono.Linker.Steps/ResolveFromAssemblyStep.cs
365           Mono.Linker.Steps/SweepStep.cs
366           Mono.Linker.Steps/BlacklistStep.cs
367           Mono.Linker.Steps/MarkStep.cs
368           Mono.Linker.Steps/BaseStep.cs
369           Mono.Linker.csproj
370           Mono.Linker/Driver.cs:
371                 Add a new abstract BaseStep to be extends by most
372                 of the steps.
373                 Add a new LoadReferences step to force all referenced
374                 assemblies to be resolved before the mark step.
376         * Mono.Linker/CustomResolver.cs
377           Mono.Linker/LinkContext.cs:
378                 Register entry assembly.
380 2007-05-30  Jb Evain  <jbevain@novell.com>
382         * Mono.Linker/MarkStep.cs:
383                 Fix regression: do not mark GenericParameters that are
384                 part of a typespec, like T[] or T*.
386 2007-05-28  Jb Evain  <jbevain@novell.com>
388         * Big refactoring. Get rid of the markers, use the annotations
389                 of Cecil instead.
391         * Mono.Linker/Marker.cs
392           Mono.Linker/MarkStep.cs
393           Mono.Linker/SweepStep.cs:
394                 Use annotations to mark wether or not we should
395                 sweep an item.
397 2007-05-23  Jb Evain  <jbevain@novell.com>
399         * Mono.Limker/CleanStep.cs:
400                 Stop doing hackish stupid things because
401                 Cecil suddenly handles MemberRef much better.
403 2007-05-19  Jb Evain  <jb@nurv.fr>
405         * Mono.Linker/ResolveFromXmlStep.cs
406           Mono.Linker/AssemblyMarker.cs
407           Mono.Linker/MarkStep.cs
408           Mono.Linker/ResolveFromAssemblyStep.cs:
409                 Process correctly the marker selected in the resolve phases.
411 2007-05-17  Jb Evain  <jb@nurv.fr>
413         * Mono.Linker/CleanStep.cs
414           Mono.Linker/SweepStep.cs
415           Mono.Linker/MarkStep.cs:
416                 Link only when necessary.
418         * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
419           Tests/Mono.Linker.Tests/AbstractTestFixture.cs
420           Mono.Linker.csproj
421           Mono.Linker/ResolveFromXmlStep.cs
422           Mono.Linker/AssemblyMarker.cs
423           Mono.Linker/Marker.cs
424           Mono.Linker/MarkStep.cs
425           Mono.Linker/TypePreserve.cs
426           Mono.Linker/Pipeline.cs:
427                 Deal with preserve and required infos, make last test pass.
429         * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
430           Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
431           Tests/TestCases/Linker/PreserveFieldsRequired
432           Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
433           Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
434           Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
435           Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
436                 Add a new (failing for now) test case for preserve and required.
438 2007-05-16  Jb Evain  <jb@nurv.fr>
440         * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
441           Mono.Linker.csproj
442           Mono.Linker/CoreAction.cs
443           Mono.Linker/Driver.cs
444           Mono.Linker/LinkContext.cs:
445                 Simplify the command line options.
447         * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
448           Mono.Linker.csproj
449           Mono.Linker/CleanStep.cs
450           Mono.Linker/ResolveFromXmlStep.cs
451           Mono.Linker/Driver.cs
452           Mono.Linker/OutputStep.cs
453           Mono.Linker/ResolveFromAssemblyStep.cs
454           Mono.Linker/LinkContext.cs
455           Mono.Linker/BlacklistStep.cs
456           Mono.Linker/Pipeline.cs:
457                 Working on black list support.
459         * Descriptors/corlib.xml
460           Descriptors/system.xml
461           Descriptors/system.web.xml:
462                 First audit of the core.
464 2007-04-23  Jb Evain  <jb@nurv.fr>
466         * Mono.Linker/CleanStep.cs:
467                 Clean some special cases of MemberRef.
469 2007-03-19  Jb Evain  <jbevain@gmail.com>
471         * Fix a bug when an assembly references two
472         versions of an assembly with the same name.
473         * do some refactorings
475 2007-03-16  Jb Evain  <jbevain@gmail.com>
477         * rename linker.exe to monolinker.exe
479 2006-11-08  Jb Evain  <jbevain@gmail.com>
481         * Mono.Linker/AssemblyMarker.cs:
482                 Fix a bug in method resolution.
483         * Mono.Linker/Driver.cs:
484                 Fix a bug in assembly action processing.
486 2006-11-02  Jb Evain  <jbevain@gmail.com>
488         * check-in patches adapted from contributions by:
489                 Alex Prudkiy <prudkiy@mail.ru>
491 2006-08-21  Jb Evain  <jbevain@gmail.com>
493         * mark types used within the runtime
495 2006-08-20  Jb Evain  <jbevain@gmail.com>
497         * mark the custom attributes from the assemblies, modules and
498                 generic parameters
500         * mark the methods used by an event
502         * mark the custom attributes on the properties and the events
503                 which are used.
505         * preserve the fields of the value types
507         * clean also nested types in a proper way.
509         * clean events as well
511 2006-08-17  Jb Evain  <jbevain@gmail.com>
513         * provide a Makefile
515 2006-08-16  Jb Evain  <jbevain@gmail.com>
517         * work on generics assemblies linking
519         * use the resolver from Cecil.
521         * when marking a type, also mark its virtual methods
523 2006-08-15  Jb Evain  <jbevain@gmail.com>
525         * clean properties
527         * mark interfaces as well
529         * work in progress + unit tests.
531 2006-07-27  Jb Evain  <jbevain@gmail.com>
533         * begin work on the sweep step.
535 2006-07-20  Jb Evain  <jbevain@gmail.com>
537         * very first commit.
538           draft implementation of the mark phase of the linker.