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