1 2010-05-31 Jb Evain <jbevain@novell.com>
3 Merge the MonoTouch Linker branch.
5 * Mono.Linker/TypeParser.cs: add a type parser.
7 * Mono.Linker.Steps/MarkStep.cs: properly mark types used
8 with typeof in custom attributes
10 * Mono.Linker/LinkContext.cs: remove dead code.
12 * monolinker.exe.sources: add TypeParser.cs
14 2010-03-02 Jb Evain <jbevain@novell.com>
16 Merge the MonoTouch Linker branch.
18 * Mono.Linker/LinkContext.cs:
19 Allow creation with a custom resolver.
21 * Mono.Linker/AssemblyResolver.cs:
22 Allow creation with a custom assembly cache.
24 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
25 - Mark fields for copied assemblied.
26 - Now can take an assembly directly.
28 * Mono.Linker.Steps/SweepStep.cs
29 * Mono.Linker.Steps/CleanStep.cs:
32 2010-02-01 Jb Evain <jbevain@novell.com>
34 * MarkStep.cs: SoapHeader can either take a field or a property.
36 2010-01-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
38 * Makefile: Fetch Mono.Cecil.dll from whatever profile we happen to be
41 2010-01-14 Jb Evain <jbevain@novell.com>
43 * MarkStep.cs: preserve fields specified by the
46 2010-01-13 Jb Evain <jbevain@novell.com>
48 * MarkStep.cs: preserve methods specified by the
49 XmlSchemaProvider attribute.
51 2010-01-06 Jb Evain <jbevain@novell.com>
53 * Descriptors/mscorlib.xml: optimize descriptor.
55 2009-11-23 Jb Evain <jbevain@novell.com>
57 * Descriptors/mscorlib.xml: protect the InternalThread class.
60 2009-11-02 Jb Evain <jbevain@novell.com>
62 Merge the MonoTouch Linker branch.
64 * monolinker.exe.sources: update
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.
71 * Mono.Linker/AssemblyAction.cs:
72 add a Delete action to remove an assembly from the output set.
74 * Mono.Linker.Steps/TypeMapStep.cs:
75 new step that create a map of virtual methods implementation.
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.
82 - mark default constructors of types used as a generic instance
83 of a generic parameter constrained with new().
84 - apply preserved methods.
86 * Mono.Linker.Steps/SweepStep.cs: remove unused assemblies.
88 * Mono.Linker.Steps/LoadI18nAssemblies.cs:
89 fix linking of i18n assemblies.
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.
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:
102 2009-09-10 Andrés G. Aragoneses <aaragoneses@novell.com>
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 )
108 2009-09-09 Andrés G. Aragoneses <aaragoneses@novell.com>
110 * Mono.Linker.Steps/MarkStep.cs: Visibility changes needed by
111 the need of some new tuner step to redefine or call some
114 2009-07-02 Jb Evain <jbevain@novell.com>
116 * Makefile: fix cecil's location.
118 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
120 * Mono.Linker.Steps/BaseStep.cs: New virtual API needed.
122 * Mono.Linker/Pipeline.cs: API love.
124 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
126 * Mono.Linker.csproj: Update.
128 * Mono.Linker/Driver.cs: Prevent InvalidCastException.
130 2009-06-05 Jb Evain <jbevain@novell.com>
132 * Mono.Linker.Steps/MarkStep.cs: fix a nre.
133 Based on patch by Andres G. Aragoneses <aaragoneses@novell.com>.
135 2009-06-05 Jb Evain <jbevain@novell.com>
137 * Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.
139 2009-06-05 Jb Evain <jbevain@novell.com>
141 * Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
142 possibilities to detail the xml descriptors.
144 2009-06-04 Jb Evain <jbevain@novell.com>
146 * Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
147 of wildcards constructors.
149 2009-04-23 Andrés G. Aragoneses <aaragoneses@novell.com>
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).
155 2009-04-21 Andrés G. Aragoneses <aaragoneses@novell.com>
157 * Driver.cs: Postprocess custom steps in order to make them
158 able to find steps determined by the resolve method. Fixes
161 2009-04-08 Andrés G. Aragoneses <aaragoneses@novell.com>
163 * Mono.Linker.csproj: Update.
165 2009-02-18 Jb Evain <jbevain@novell.com>
167 * Mono.Linker/XApiService.cs: delete, unused.
168 * Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.
170 2009-01-28 Jb Evain <jbevain@novell.com>
172 * Mono.Linker/AssemblyResolver.cs
173 Mono.Linker.Steps/MarkStep.cs:
174 Directly use the Resolve methods from Cecil.
176 2008-12-16 Jb Evain <jbevain@novell.com>
178 * Makefile: build monolinker.exe in the profile directory instead of
181 2008-12-02 Jb Evain <jbevain@novell.com>
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.
187 2008-11-24 Jb Evain <jbevain@novell.com>
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.
195 2008-09-12 Jb Evain <jbevain@novell.com>
197 * Mono.Linker/Pipeline.cs: add a RemoveStep method.
198 * Mono.Linker/Driver.cs: make the linker generate new
199 module guids by default.
201 2008-09-12 Jb Evain <jbevain@novell.com>
203 * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
204 to regenerate the Mvid identifier of each linked module.
206 * monolinker.exe.sources:
207 * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
209 * Mono.Linker/Driver.cs: add a -g option to control whether to
210 regenerate the modules identifier or not.
212 2008-09-01 Jb Evain <jbevain@novell.com>
214 * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
216 2008-08-26 Zoltan Varga <vargaz@gmail.com>
218 * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
220 2008-03-28 Jb Evain <jbevain@novell.com>
222 * Mono.Linker/XApiReader.cs: deal better with complex names.
224 2008-03-28 Jb Evain <jbevain@novell.com>
226 * Mono.Linker/LinkContext.cs: do not force the loading of
227 debug symbols if not asked.
229 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
231 * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
232 linker from removing CreateCulture method that is only used by the
235 2007-11-21 Jb Evain <jbevain@novell.com>
237 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
238 Implement resolving from xml patterns.
240 2007-10-25 Jb Evain <jbevain@novell.com>
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:
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.
253 2007-08-27 Jb Evain <jbevain@novell.com>
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.
261 2007-08-16 Jb Evain <jbevain@novell.com>
263 * Mono.Linker/Driver.cs
264 Mono.Linker/LinkContext.cs:
265 Add a way to specify parameters to the context.
267 2007-08-05 Jb Evain <jbevain@novell.com>
269 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
270 Now the resolver deals only with assembly names
271 instead of fullnames.
273 2007-07-25 Jb Evain <jbevain@novell.com>
275 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
276 When linking from an executable, it's possible
277 to reduce the executable as well.
279 2007-07-23 Jb Evain <jbevain@novell.com>
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.
286 2007-07-22 Jb Evain <jbevain@novell.com>
288 * Mono.Linker/LinkContext.cs:
289 If no file found with -a, try to resolve it.
291 * Mono.Linker/Driver.cs
292 Mono.Linker/Pipeline.cs:
293 Adjust the visibility only once, even with multiple -i.
295 2007-07-21 Jb Evain <jbevain@novell.com>
297 * Mono.Linker.Steps/SweepStep.cs:
298 Sweep memberrefs along with the typerefs.
300 2007-07-20 Jb Evain <jbevain@novell.com>
302 * Mono.Linker.Steps/AdjustVisibilityStep.cs:
303 Don't change the visibility of the members if the type
306 2007-07-18 Jb Evain <jbevain@novell.com>
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.
313 * Mono.Linker/AssemblyResolver.cs:
314 Use the assembly name only as a key for the
317 2007-07-05 Jb Evain <jbevain@novell.com>
319 * Mono.Linker/Driver.cs
320 Mono.Linker/Pipeline.cs:
321 Add a way to install steps in the pipeline
324 2007-07-03 Jb Evain <jbevain@novell.com>
326 * Mono.Linker/Driver.cs:
327 Add support for @files
329 * Mono.Linker/Driver.cs:
330 Add a way to add search directories to the resolver.
332 2007-06-18 Jb Evain <jbevain@novell.com>
334 * Mono.Linker.Steps/MarkStep.cs:
335 Mark generic parameter constraints.
337 * Mono.Linker.Steps/MarkStep.cs:
338 Mark modifiers of modtype.
340 2007-06-15 Jb Evain <jbevain@novell.com>
342 * Mono.Linker/Driver.cs,
343 Mono.Linker/I18nAssemblies.cs,
344 Mono.Linker.Steps/LoadI18nAssemblies.cs:
345 Copy the i18n assemblies when running Mono.
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.
355 2007-06-13 Jb Evain <jbevain@novell.com>
357 * Mono.Linker.Steps/OutputStep.cs:
358 Copy .config files alongs with assemblies.
360 * Mono.Linker.Steps/CleanStep.cs:
361 Clean memberref that are not used anymore.
363 2007-06-12 Jb Evain <jbevain@novell.com>
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.
371 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
372 Mono.Linker/Driver.cs:
373 Started working on linking from api-info.
375 2007-06-08 Jb Evain <jbevain@novell.com>
377 * Descriptors/System.Drawing.xml,
378 Mono.Linker.Steps/BlackListStep.cs:
379 Add preserve infos for System.Drawing.
381 * Mono.Linker.Steps/MarkStep.cs:
382 Tests/TestsCases/Linker/Generics/*:
383 Also walk through generic instances to
386 2007-06-07 Jb Evain <jbevain@novell.com>
388 * Mono.Linker.Steps/MarkStep.cs:
389 Mark types used in some marshal specs.
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
400 Add a small profiler that outputs the xml format
401 that the linker can resolve.
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.
407 2007-06-06 Jb Evain <jbevain@novell.com>
409 * Mono.Linker.Steps/MarkStep.cs:
410 Mono.Linker/CustomResolvercs:
411 Try to find types in custom attributes to mark them.
413 * Mono.Linker.Steps/MarkStep.cs:
414 Mark default constructor for serializable types.
415 Mark the special serialization constructor as well.
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.
422 * Mono.Linker/CustomResolver.cs:
423 When a method is not found, go down
424 the class hierarchy to find it.
426 2007-06-05 Jb Evain <jbevain@novell.com>
428 * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
429 Tests/TestCases/Integration/*
431 Start the integration tests.
433 2007-06-04 Jb Evain <jbevain@novell.com>
435 * Mono.Linker.Steps/MarkStep.cs
436 Mark the custom attributes on the assemblies
439 * Mono.Linker.Steps/ResolveFromXmlStep.cs
440 Descriptors/corlib.xml:
441 Preserve the whole S.S.Crypto namespace.
443 * rename back from mink to monolinker.
445 2007-06-01 Jb Evain <jbevain@novell.com>
447 * configure, config.make, mink.in: added
449 * AUTHORS, MIT.X11, man/mink.1: added
451 2007-05-31 Jb Evain <jbevain@novell.com>
454 monolinker.exe.sources: moved to mink.exe.sources
455 Makefile, Mono.Linker.csproj: emit a mink.exe
457 * Mono.Linker/LinkContext.cs:
458 A resolved assembly is not always the one requested,
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
471 Mono.Linker/Driver.cs:
472 Add a new abstract BaseStep to be extends by most
474 Add a new LoadReferences step to force all referenced
475 assemblies to be resolved before the mark step.
477 * Mono.Linker/CustomResolver.cs
478 Mono.Linker/LinkContext.cs:
479 Register entry assembly.
481 2007-05-30 Jb Evain <jbevain@novell.com>
483 * Mono.Linker/MarkStep.cs:
484 Fix regression: do not mark GenericParameters that are
485 part of a typespec, like T[] or T*.
487 2007-05-28 Jb Evain <jbevain@novell.com>
489 * Big refactoring. Get rid of the markers, use the annotations
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
498 2007-05-23 Jb Evain <jbevain@novell.com>
500 * Mono.Limker/CleanStep.cs:
501 Stop doing hackish stupid things because
502 Cecil suddenly handles MemberRef much better.
504 2007-05-19 Jb Evain <jb@nurv.fr>
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.
512 2007-05-17 Jb Evain <jb@nurv.fr>
514 * Mono.Linker/CleanStep.cs
515 Mono.Linker/SweepStep.cs
516 Mono.Linker/MarkStep.cs:
517 Link only when necessary.
519 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
520 Tests/Mono.Linker.Tests/AbstractTestFixture.cs
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.
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.
539 2007-05-16 Jb Evain <jb@nurv.fr>
541 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
543 Mono.Linker/CoreAction.cs
544 Mono.Linker/Driver.cs
545 Mono.Linker/LinkContext.cs:
546 Simplify the command line options.
548 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
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.
560 * Descriptors/corlib.xml
561 Descriptors/system.xml
562 Descriptors/system.web.xml:
563 First audit of the core.
565 2007-04-23 Jb Evain <jb@nurv.fr>
567 * Mono.Linker/CleanStep.cs:
568 Clean some special cases of MemberRef.
570 2007-03-19 Jb Evain <jbevain@gmail.com>
572 * Fix a bug when an assembly references two
573 versions of an assembly with the same name.
574 * do some refactorings
576 2007-03-16 Jb Evain <jbevain@gmail.com>
578 * rename linker.exe to monolinker.exe
580 2006-11-08 Jb Evain <jbevain@gmail.com>
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.
587 2006-11-02 Jb Evain <jbevain@gmail.com>
589 * check-in patches adapted from contributions by:
590 Alex Prudkiy <prudkiy@mail.ru>
592 2006-08-21 Jb Evain <jbevain@gmail.com>
594 * mark types used within the runtime
596 2006-08-20 Jb Evain <jbevain@gmail.com>
598 * mark the custom attributes from the assemblies, modules and
601 * mark the methods used by an event
603 * mark the custom attributes on the properties and the events
606 * preserve the fields of the value types
608 * clean also nested types in a proper way.
610 * clean events as well
612 2006-08-17 Jb Evain <jbevain@gmail.com>
616 2006-08-16 Jb Evain <jbevain@gmail.com>
618 * work on generics assemblies linking
620 * use the resolver from Cecil.
622 * when marking a type, also mark its virtual methods
624 2006-08-15 Jb Evain <jbevain@gmail.com>
628 * mark interfaces as well
630 * work in progress + unit tests.
632 2006-07-27 Jb Evain <jbevain@gmail.com>
634 * begin work on the sweep step.
636 2006-07-20 Jb Evain <jbevain@gmail.com>
639 draft implementation of the mark phase of the linker.