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