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