fix dist
[mcs.git] / tools / linker / ChangeLog
blob785c49467583acc17668d90df41691490f729d7f
1 2008-12-16  Jb Evain  <jbevain@novell.com>
3         * Makefile: build monolinker.exe in the profile directory instead of
4         the current one.
6 2008-12-02  Jb Evain  <jbevain@novell.com>
8         * Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
9         fix the case where we compare two GenericInstanceType of the same
10         element type with different generic arguments.
12 2008-11-24  Jb Evain  <jbevain@novell.com>
14         * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
15         * Mono.Linker.Steps/ResolveFromXmlStep.cs
16         * Mono.Linker.Steps/MarkStep.cs:
17                 generalize the use of the new Has* pattern in Cecil
18                 to avoid unecessary allocations. Also cache delegates.
20 2008-09-12  Jb Evain  <jbevain@novell.com>
22         * Mono.Linker/Pipeline.cs: add a RemoveStep method.
23         * Mono.Linker/Driver.cs: make the linker generate new
24         module guids by default.
26 2008-09-12  Jb Evain  <jbevain@novell.com>
28         * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
29         to regenerate the Mvid identifier of each linked module.
31         * monolinker.exe.sources:
32         * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
34         * Mono.Linker/Driver.cs: add a -g option to control whether to
35         regenerate the modules identifier or not.
37 2008-09-01  Jb Evain  <jbevain@novell.com>
39         * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
41 2008-08-26  Zoltan Varga  <vargaz@gmail.com>
43         * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
45 2008-03-28  Jb Evain  <jbevain@novell.com>
47         * Mono.Linker/XApiReader.cs: deal better with complex names.
49 2008-03-28  Jb Evain  <jbevain@novell.com>
51         * Mono.Linker/LinkContext.cs: do not force the loading of
52         debug symbols if not asked.
54 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
56         * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
57         linker from removing CreateCulture method that is only used by the
58         runtime.
60 2007-11-21  Jb Evain  <jbevain@novell.com>
62         * Mono.Linker.Steps/ResolveFromXmlStep.cs:
63                 Implement resolving from xml patterns.
65 2007-10-25  Jb Evain  <jbevain@novell.com>
67         * monolinker.exe.sources
68         * Mono.Linker.Steps/ResolveFromApiInfoStep.cs
69         * Mono.Linker/Driver.cs
70         * Mono.Linker/XApiReader.cs
71         * Mono.Linker/ApiInfoService.cs
72         * Mono.Linker/IXApiVisitor.cs:
74                 Big refactoring. Move logic to read Xml Api Info files
75                 to XApiReader, so we can use that in the tuner to deal
76                 with xapi files to inject attributes.
78 2007-08-27  Jb Evain  <jbevain@novell.com>
80         * Mono.Linker/Driver.cs
81           Mono.Linker/Annotations.cs
82           Mono.Linker/LinkContext.cs
83           Mono.Linker.Steps/OutputStep.cs:
84                 Implement symbols loading/saving.
86 2007-08-16  Jb Evain  <jbevain@novell.com>
88         * Mono.Linker/Driver.cs
89           Mono.Linker/LinkContext.cs:
90                 Add a way to specify parameters to the context.
92 2007-08-05  Jb Evain  <jbevain@novell.com>
94         * Mono.Linker.Steps/ResolveFromXmlStep.cs:
95                 Now the resolver deals only with assembly names
96                 instead of fullnames.
98 2007-07-25  Jb Evain  <jbevain@novell.com>
100         * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
101                 When linking from an executable, it's possible
102                 to reduce the executable as well.
104 2007-07-23  Jb Evain  <jbevain@novell.com>
106         * Mono.Linker/Driver.cs
107           Mono.Linker/LinkContext.cs:
108                 Allow one to specify the action to apply to an assembly
109                 from the command line.
111 2007-07-22  Jb Evain  <jbevain@novell.com>
113         * Mono.Linker/LinkContext.cs:
114                 If no file found with -a, try to resolve it.
116         * Mono.Linker/Driver.cs
117           Mono.Linker/Pipeline.cs:
118                 Adjust the visibility only once, even with multiple -i.
120 2007-07-21  Jb Evain  <jbevain@novell.com>
122         * Mono.Linker.Steps/SweepStep.cs:
123                 Sweep memberrefs along with the typerefs.
125 2007-07-20  Jb Evain  <jbevain@novell.com>
127         * Mono.Linker.Steps/AdjustVisibilityStep.cs:
128                 Don't change the visibility of the members if the type
129                 is marked internal.
131 2007-07-18  Jb Evain  <jbevain@novell.com>
133         * Mono.Linker/ResolutionException.cs:
134           Mono.Linker.Steps/MarkStep.cs:
135                 Throw a resolution exception when a metadata item
136                 can not be resolved in external assemblies.
138         * Mono.Linker/AssemblyResolver.cs:
139                 Use the assembly name only as a key for the
140                 assembly cache.
142 2007-07-05  Jb Evain  <jbevain@novell.com>
144         * Mono.Linker/Driver.cs
145           Mono.Linker/Pipeline.cs:
146                 Add a way to install steps in the pipeline
147                 from the outside.
149 2007-07-03  Jb Evain  <jbevain@novell.com>
151         * Mono.Linker/Driver.cs:
152                 Add support for @files
154         * Mono.Linker/Driver.cs:
155                 Add a way to add search directories to the resolver.
157 2007-06-18  Jb Evain  <jbevain@novell.com>
159         * Mono.Linker.Steps/MarkStep.cs:
160                 Mark generic parameter constraints.
162         * Mono.Linker.Steps/MarkStep.cs:
163                 Mark modifiers of modtype.
165 2007-06-15  Jb Evain  <jbevain@novell.com>
167         * Mono.Linker/Driver.cs,
168           Mono.Linker/I18nAssemblies.cs,
169           Mono.Linker.Steps/LoadI18nAssemblies.cs:
170                 Copy the i18n assemblies when running Mono.
172         * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
173           Mono.Linker/Annotations.cs,
174           Mono.Linker/LinkContext.cs,
175           Mono.Linker.Steps/ResolveFromXmlStep.cs:
176                 Clean up the assembly reference system.
177                 Fixes bug where the linker have multiple
178                 time the same assembly in its cache.
180 2007-06-13  Jb Evain  <jbevain@novell.com>
182         * Mono.Linker.Steps/OutputStep.cs:
183                 Copy .config files alongs with assemblies.
185         * Mono.Linker.Steps/CleanStep.cs:
186                 Clean memberref that are not used anymore.
188 2007-06-12  Jb Evain  <jbevain@novell.com>
190         * Mono.Linker.Steps/AdjustVisibilityStep.cs,
191           Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
192           Mono.Linker/Drivers.cs:
193                 Adjust the visibility depending on the data
194                 gathered in the api-info.
196         * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
197           Mono.Linker/Driver.cs:
198                 Started working on linking from api-info.
200 2007-06-08  Jb Evain  <jbevain@novell.com>
202         * Descriptors/System.Drawing.xml,
203           Mono.Linker.Steps/BlackListStep.cs:
204                 Add preserve infos for System.Drawing.
206         * Mono.Linker.Steps/MarkStep.cs:
207           Tests/TestsCases/Linker/Generics/*:
208                 Also walk through generic instances to
209                 mark arguments.
211 2007-06-07  Jb Evain  <jbevain@novell.com>
213         * Mono.Linker.Steps/MarkStep.cs:
214                 Mark types used in some marshal specs.
216         * Mono.Linker.Tests/MarkStep.cs
217           Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
218           Tests/TestCases/Linker/ReferenceInAttributes/*:
219                 Mark fields and setters used in custom attribute
220                 instantiation. Mark also types used in custom attribute
221                 instantiation.
223         * profiler/Makefile,
224           profiler/link.c:
225                 Add a small profiler that outputs the xml format
226                 that the linker can resolve.
228                 By running an application with the profiler, one
229                 can help the linker gather data. Especially for dynamic
230                 cases like assembly loading an dynamic type resolving.
232 2007-06-06  Jb Evain  <jbevain@novell.com>
234         * Mono.Linker.Steps/MarkStep.cs:
235           Mono.Linker/CustomResolvercs:
236                 Try to find types in custom attributes to mark them.
238         * Mono.Linker.Steps/MarkStep.cs:
239                 Mark default constructor for serializable types.
240                 Mark the special serialization constructor as well.
242         * Mono.Linker/LinkContext.cs:
243           Mono.Linker.Steps/LoadReferences.cs:
244                 Use the name of the assembly as a key
245                 instead of the fullname.
247         * Mono.Linker/CustomResolver.cs:
248                 When a method is not found, go down
249                 the class hierarchy to find it.
251 2007-06-05  Jb Evain  <jbevain@novell.com>
253         * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
254           Tests/TestCases/Integration/*
255           Tests/Makefile:
256                 Start the integration tests.
258 2007-06-04  Jb Evain  <jbevain@novell.com>
260         * Mono.Linker.Steps/MarkStep.cs
261                 Mark the custom attributes on the assemblies
262                 on initialize.
264         * Mono.Linker.Steps/ResolveFromXmlStep.cs
265           Descriptors/corlib.xml:
266                 Preserve the whole S.S.Crypto namespace.
268         * rename back from mink to monolinker.
270 2007-06-01  Jb Evain  <jbevain@novell.com>
272         * configure, config.make, mink.in: added
274         * AUTHORS, MIT.X11, man/mink.1: added
276 2007-05-31  Jb Evain  <jbevain@novell.com>
278         * README: added
279           monolinker.exe.sources: moved to mink.exe.sources
280           Makefile, Mono.Linker.csproj: emit a mink.exe
282         * Mono.Linker/LinkContext.cs:
283                 A resolved assembly is not always the one requested,
284                 cache the good name.
286         * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
287           Mono.Linker.Steps/OutputStep.cs
288           Mono.Linker.Steps/LoadReferencesStep.cs
289           Mono.Linker.Steps/CleanStep.cs
290           Mono.Linker.Steps/ResolveFromAssemblyStep.cs
291           Mono.Linker.Steps/SweepStep.cs
292           Mono.Linker.Steps/BlacklistStep.cs
293           Mono.Linker.Steps/MarkStep.cs
294           Mono.Linker.Steps/BaseStep.cs
295           Mono.Linker.csproj
296           Mono.Linker/Driver.cs:
297                 Add a new abstract BaseStep to be extends by most
298                 of the steps.
299                 Add a new LoadReferences step to force all referenced
300                 assemblies to be resolved before the mark step.
302         * Mono.Linker/CustomResolver.cs
303           Mono.Linker/LinkContext.cs:
304                 Register entry assembly.
306 2007-05-30  Jb Evain  <jbevain@novell.com>
308         * Mono.Linker/MarkStep.cs:
309                 Fix regression: do not mark GenericParameters that are
310                 part of a typespec, like T[] or T*.
312 2007-05-28  Jb Evain  <jbevain@novell.com>
314         * Big refactoring. Get rid of the markers, use the annotations
315                 of Cecil instead.
317         * Mono.Linker/Marker.cs
318           Mono.Linker/MarkStep.cs
319           Mono.Linker/SweepStep.cs:
320                 Use annotations to mark wether or not we should
321                 sweep an item.
323 2007-05-23  Jb Evain  <jbevain@novell.com>
325         * Mono.Limker/CleanStep.cs:
326                 Stop doing hackish stupid things because
327                 Cecil suddenly handles MemberRef much better.
329 2007-05-19  Jb Evain  <jb@nurv.fr>
331         * Mono.Linker/ResolveFromXmlStep.cs
332           Mono.Linker/AssemblyMarker.cs
333           Mono.Linker/MarkStep.cs
334           Mono.Linker/ResolveFromAssemblyStep.cs:
335                 Process correctly the marker selected in the resolve phases.
337 2007-05-17  Jb Evain  <jb@nurv.fr>
339         * Mono.Linker/CleanStep.cs
340           Mono.Linker/SweepStep.cs
341           Mono.Linker/MarkStep.cs:
342                 Link only when necessary.
344         * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
345           Tests/Mono.Linker.Tests/AbstractTestFixture.cs
346           Mono.Linker.csproj
347           Mono.Linker/ResolveFromXmlStep.cs
348           Mono.Linker/AssemblyMarker.cs
349           Mono.Linker/Marker.cs
350           Mono.Linker/MarkStep.cs
351           Mono.Linker/TypePreserve.cs
352           Mono.Linker/Pipeline.cs:
353                 Deal with preserve and required infos, make last test pass.
355         * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
356           Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
357           Tests/TestCases/Linker/PreserveFieldsRequired
358           Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
359           Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
360           Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
361           Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
362                 Add a new (failing for now) test case for preserve and required.
364 2007-05-16  Jb Evain  <jb@nurv.fr>
366         * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
367           Mono.Linker.csproj
368           Mono.Linker/CoreAction.cs
369           Mono.Linker/Driver.cs
370           Mono.Linker/LinkContext.cs:
371                 Simplify the command line options.
373         * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
374           Mono.Linker.csproj
375           Mono.Linker/CleanStep.cs
376           Mono.Linker/ResolveFromXmlStep.cs
377           Mono.Linker/Driver.cs
378           Mono.Linker/OutputStep.cs
379           Mono.Linker/ResolveFromAssemblyStep.cs
380           Mono.Linker/LinkContext.cs
381           Mono.Linker/BlacklistStep.cs
382           Mono.Linker/Pipeline.cs:
383                 Working on black list support.
385         * Descriptors/corlib.xml
386           Descriptors/system.xml
387           Descriptors/system.web.xml:
388                 First audit of the core.
390 2007-04-23  Jb Evain  <jb@nurv.fr>
392         * Mono.Linker/CleanStep.cs:
393                 Clean some special cases of MemberRef.
395 2007-03-19  Jb Evain  <jbevain@gmail.com>
397         * Fix a bug when an assembly references two
398         versions of an assembly with the same name.
399         * do some refactorings
401 2007-03-16  Jb Evain  <jbevain@gmail.com>
403         * rename linker.exe to monolinker.exe
405 2006-11-08  Jb Evain  <jbevain@gmail.com>
407         * Mono.Linker/AssemblyMarker.cs:
408                 Fix a bug in method resolution.
409         * Mono.Linker/Driver.cs:
410                 Fix a bug in assembly action processing.
412 2006-11-02  Jb Evain  <jbevain@gmail.com>
414         * check-in patches adapted from contributions by:
415                 Alex Prudkiy <prudkiy@mail.ru>
417 2006-08-21  Jb Evain  <jbevain@gmail.com>
419         * mark types used within the runtime
421 2006-08-20  Jb Evain  <jbevain@gmail.com>
423         * mark the custom attributes from the assemblies, modules and
424                 generic parameters
426         * mark the methods used by an event
428         * mark the custom attributes on the properties and the events
429                 which are used.
431         * preserve the fields of the value types
433         * clean also nested types in a proper way.
435         * clean events as well
437 2006-08-17  Jb Evain  <jbevain@gmail.com>
439         * provide a Makefile
441 2006-08-16  Jb Evain  <jbevain@gmail.com>
443         * work on generics assemblies linking
445         * use the resolver from Cecil.
447         * when marking a type, also mark its virtual methods
449 2006-08-15  Jb Evain  <jbevain@gmail.com>
451         * clean properties
453         * mark interfaces as well
455         * work in progress + unit tests.
457 2006-07-27  Jb Evain  <jbevain@gmail.com>
459         * begin work on the sweep step.
461 2006-07-20  Jb Evain  <jbevain@gmail.com>
463         * very first commit.
464           draft implementation of the mark phase of the linker.