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