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