1 2010-03-02 Jb Evain <jbevain@novell.com>
3 Merge the MonoTouch Linker branch.
5 * Mono.Linker/LinkContext.cs:
6 Allow creation with a custom resolver.
8 * Mono.Linker/AssemblyResolver.cs:
9 Allow creation with a custom assembly cache.
11 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
12 - Mark fields for copied assemblied.
13 - Now can take an assembly directly.
15 * Mono.Linker.Steps/SweepStep.cs
16 * Mono.Linker.Steps/CleanStep.cs:
19 2010-02-01 Jb Evain <jbevain@novell.com>
21 * MarkStep.cs: SoapHeader can either take a field or a property.
23 2010-01-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
25 * Makefile: Fetch Mono.Cecil.dll from whatever profile we happen to be
28 2010-01-14 Jb Evain <jbevain@novell.com>
30 * MarkStep.cs: preserve fields specified by the
33 2010-01-13 Jb Evain <jbevain@novell.com>
35 * MarkStep.cs: preserve methods specified by the
36 XmlSchemaProvider attribute.
38 2010-01-06 Jb Evain <jbevain@novell.com>
40 * Descriptors/mscorlib.xml: optimize descriptor.
42 2009-11-23 Jb Evain <jbevain@novell.com>
44 * Descriptors/mscorlib.xml: protect the InternalThread class.
47 2009-11-02 Jb Evain <jbevain@novell.com>
49 Merge the MonoTouch Linker branch.
51 * monolinker.exe.sources: update
53 * Mono.Linker/Annotations.cs:
54 - add an preserved methods annotation on a type.
55 - add an annotation to get the base methods of a method.
56 - add an annotation to get the overriden method of a method.
58 * Mono.Linker/AssemblyAction.cs:
59 add a Delete action to remove an assembly from the output set.
61 * Mono.Linker.Steps/TypeMapStep.cs:
62 new step that create a map of virtual methods implementation.
64 * Mono.Linker.Steps/MarkStep.cs:
65 - removal of virtual methods.
66 - fix for custom attributes assigning properties and field
67 defined in a base type.
69 - mark default constructors of types used as a generic instance
70 of a generic parameter constrained with new().
71 - apply preserved methods.
73 * Mono.Linker.Steps/SweepStep.cs: remove unused assemblies.
75 * Mono.Linker.Steps/LoadI18nAssemblies.cs:
76 fix linking of i18n assemblies.
78 * Mono.Linker.Steps/OutputStep.cs:
79 fix the copied assemblies when the output directory
80 is the same as the origin of the assemblies.
82 * Mono.Linker.Steps/ResolveFromXmlStep.cs
83 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
84 * Mono.Linker.Steps/BaseStep.cs
85 * Mono.Linker/Driver.cs
86 * Mono.Linker/Pipeline.cs:
89 2009-09-10 Andrés G. Aragoneses <aaragoneses@novell.com>
91 * Mono.Linker.Steps/MarkStep.cs: Make IgnoreScope() virtual to
92 prevent marking custom attributes of foreign assemblies in a
93 derived step in the tuner. ( r: jb )
95 2009-09-09 Andrés G. Aragoneses <aaragoneses@novell.com>
97 * Mono.Linker.Steps/MarkStep.cs: Visibility changes needed by
98 the need of some new tuner step to redefine or call some
101 2009-07-02 Jb Evain <jbevain@novell.com>
103 * Makefile: fix cecil's location.
105 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
107 * Mono.Linker.Steps/BaseStep.cs: New virtual API needed.
109 * Mono.Linker/Pipeline.cs: API love.
111 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
113 * Mono.Linker.csproj: Update.
115 * Mono.Linker/Driver.cs: Prevent InvalidCastException.
117 2009-06-05 Jb Evain <jbevain@novell.com>
119 * Mono.Linker.Steps/MarkStep.cs: fix a nre.
120 Based on patch by Andres G. Aragoneses <aaragoneses@novell.com>.
122 2009-06-05 Jb Evain <jbevain@novell.com>
124 * Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.
126 2009-06-05 Jb Evain <jbevain@novell.com>
128 * Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
129 possibilities to detail the xml descriptors.
131 2009-06-04 Jb Evain <jbevain@novell.com>
133 * Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
134 of wildcards constructors.
136 2009-04-23 Andrés G. Aragoneses <aaragoneses@novell.com>
138 * Mono.Linker/Driver.cs: Report error and exit if it cannot
139 resolve some type (useful to avoid an ugly TypeLoadException
140 when specifying an erroneus custom step).
142 2009-04-21 Andrés G. Aragoneses <aaragoneses@novell.com>
144 * Driver.cs: Postprocess custom steps in order to make them
145 able to find steps determined by the resolve method. Fixes
148 2009-04-08 Andrés G. Aragoneses <aaragoneses@novell.com>
150 * Mono.Linker.csproj: Update.
152 2009-02-18 Jb Evain <jbevain@novell.com>
154 * Mono.Linker/XApiService.cs: delete, unused.
155 * Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.
157 2009-01-28 Jb Evain <jbevain@novell.com>
159 * Mono.Linker/AssemblyResolver.cs
160 Mono.Linker.Steps/MarkStep.cs:
161 Directly use the Resolve methods from Cecil.
163 2008-12-16 Jb Evain <jbevain@novell.com>
165 * Makefile: build monolinker.exe in the profile directory instead of
168 2008-12-02 Jb Evain <jbevain@novell.com>
170 * Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
171 fix the case where we compare two GenericInstanceType of the same
172 element type with different generic arguments.
174 2008-11-24 Jb Evain <jbevain@novell.com>
176 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
177 * Mono.Linker.Steps/ResolveFromXmlStep.cs
178 * Mono.Linker.Steps/MarkStep.cs:
179 generalize the use of the new Has* pattern in Cecil
180 to avoid unecessary allocations. Also cache delegates.
182 2008-09-12 Jb Evain <jbevain@novell.com>
184 * Mono.Linker/Pipeline.cs: add a RemoveStep method.
185 * Mono.Linker/Driver.cs: make the linker generate new
186 module guids by default.
188 2008-09-12 Jb Evain <jbevain@novell.com>
190 * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
191 to regenerate the Mvid identifier of each linked module.
193 * monolinker.exe.sources:
194 * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
196 * Mono.Linker/Driver.cs: add a -g option to control whether to
197 regenerate the modules identifier or not.
199 2008-09-01 Jb Evain <jbevain@novell.com>
201 * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
203 2008-08-26 Zoltan Varga <vargaz@gmail.com>
205 * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
207 2008-03-28 Jb Evain <jbevain@novell.com>
209 * Mono.Linker/XApiReader.cs: deal better with complex names.
211 2008-03-28 Jb Evain <jbevain@novell.com>
213 * Mono.Linker/LinkContext.cs: do not force the loading of
214 debug symbols if not asked.
216 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
218 * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
219 linker from removing CreateCulture method that is only used by the
222 2007-11-21 Jb Evain <jbevain@novell.com>
224 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
225 Implement resolving from xml patterns.
227 2007-10-25 Jb Evain <jbevain@novell.com>
229 * monolinker.exe.sources
230 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs
231 * Mono.Linker/Driver.cs
232 * Mono.Linker/XApiReader.cs
233 * Mono.Linker/ApiInfoService.cs
234 * Mono.Linker/IXApiVisitor.cs:
236 Big refactoring. Move logic to read Xml Api Info files
237 to XApiReader, so we can use that in the tuner to deal
238 with xapi files to inject attributes.
240 2007-08-27 Jb Evain <jbevain@novell.com>
242 * Mono.Linker/Driver.cs
243 Mono.Linker/Annotations.cs
244 Mono.Linker/LinkContext.cs
245 Mono.Linker.Steps/OutputStep.cs:
246 Implement symbols loading/saving.
248 2007-08-16 Jb Evain <jbevain@novell.com>
250 * Mono.Linker/Driver.cs
251 Mono.Linker/LinkContext.cs:
252 Add a way to specify parameters to the context.
254 2007-08-05 Jb Evain <jbevain@novell.com>
256 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
257 Now the resolver deals only with assembly names
258 instead of fullnames.
260 2007-07-25 Jb Evain <jbevain@novell.com>
262 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
263 When linking from an executable, it's possible
264 to reduce the executable as well.
266 2007-07-23 Jb Evain <jbevain@novell.com>
268 * Mono.Linker/Driver.cs
269 Mono.Linker/LinkContext.cs:
270 Allow one to specify the action to apply to an assembly
271 from the command line.
273 2007-07-22 Jb Evain <jbevain@novell.com>
275 * Mono.Linker/LinkContext.cs:
276 If no file found with -a, try to resolve it.
278 * Mono.Linker/Driver.cs
279 Mono.Linker/Pipeline.cs:
280 Adjust the visibility only once, even with multiple -i.
282 2007-07-21 Jb Evain <jbevain@novell.com>
284 * Mono.Linker.Steps/SweepStep.cs:
285 Sweep memberrefs along with the typerefs.
287 2007-07-20 Jb Evain <jbevain@novell.com>
289 * Mono.Linker.Steps/AdjustVisibilityStep.cs:
290 Don't change the visibility of the members if the type
293 2007-07-18 Jb Evain <jbevain@novell.com>
295 * Mono.Linker/ResolutionException.cs:
296 Mono.Linker.Steps/MarkStep.cs:
297 Throw a resolution exception when a metadata item
298 can not be resolved in external assemblies.
300 * Mono.Linker/AssemblyResolver.cs:
301 Use the assembly name only as a key for the
304 2007-07-05 Jb Evain <jbevain@novell.com>
306 * Mono.Linker/Driver.cs
307 Mono.Linker/Pipeline.cs:
308 Add a way to install steps in the pipeline
311 2007-07-03 Jb Evain <jbevain@novell.com>
313 * Mono.Linker/Driver.cs:
314 Add support for @files
316 * Mono.Linker/Driver.cs:
317 Add a way to add search directories to the resolver.
319 2007-06-18 Jb Evain <jbevain@novell.com>
321 * Mono.Linker.Steps/MarkStep.cs:
322 Mark generic parameter constraints.
324 * Mono.Linker.Steps/MarkStep.cs:
325 Mark modifiers of modtype.
327 2007-06-15 Jb Evain <jbevain@novell.com>
329 * Mono.Linker/Driver.cs,
330 Mono.Linker/I18nAssemblies.cs,
331 Mono.Linker.Steps/LoadI18nAssemblies.cs:
332 Copy the i18n assemblies when running Mono.
334 * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
335 Mono.Linker/Annotations.cs,
336 Mono.Linker/LinkContext.cs,
337 Mono.Linker.Steps/ResolveFromXmlStep.cs:
338 Clean up the assembly reference system.
339 Fixes bug where the linker have multiple
340 time the same assembly in its cache.
342 2007-06-13 Jb Evain <jbevain@novell.com>
344 * Mono.Linker.Steps/OutputStep.cs:
345 Copy .config files alongs with assemblies.
347 * Mono.Linker.Steps/CleanStep.cs:
348 Clean memberref that are not used anymore.
350 2007-06-12 Jb Evain <jbevain@novell.com>
352 * Mono.Linker.Steps/AdjustVisibilityStep.cs,
353 Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
354 Mono.Linker/Drivers.cs:
355 Adjust the visibility depending on the data
356 gathered in the api-info.
358 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
359 Mono.Linker/Driver.cs:
360 Started working on linking from api-info.
362 2007-06-08 Jb Evain <jbevain@novell.com>
364 * Descriptors/System.Drawing.xml,
365 Mono.Linker.Steps/BlackListStep.cs:
366 Add preserve infos for System.Drawing.
368 * Mono.Linker.Steps/MarkStep.cs:
369 Tests/TestsCases/Linker/Generics/*:
370 Also walk through generic instances to
373 2007-06-07 Jb Evain <jbevain@novell.com>
375 * Mono.Linker.Steps/MarkStep.cs:
376 Mark types used in some marshal specs.
378 * Mono.Linker.Tests/MarkStep.cs
379 Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
380 Tests/TestCases/Linker/ReferenceInAttributes/*:
381 Mark fields and setters used in custom attribute
382 instantiation. Mark also types used in custom attribute
387 Add a small profiler that outputs the xml format
388 that the linker can resolve.
390 By running an application with the profiler, one
391 can help the linker gather data. Especially for dynamic
392 cases like assembly loading an dynamic type resolving.
394 2007-06-06 Jb Evain <jbevain@novell.com>
396 * Mono.Linker.Steps/MarkStep.cs:
397 Mono.Linker/CustomResolvercs:
398 Try to find types in custom attributes to mark them.
400 * Mono.Linker.Steps/MarkStep.cs:
401 Mark default constructor for serializable types.
402 Mark the special serialization constructor as well.
404 * Mono.Linker/LinkContext.cs:
405 Mono.Linker.Steps/LoadReferences.cs:
406 Use the name of the assembly as a key
407 instead of the fullname.
409 * Mono.Linker/CustomResolver.cs:
410 When a method is not found, go down
411 the class hierarchy to find it.
413 2007-06-05 Jb Evain <jbevain@novell.com>
415 * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
416 Tests/TestCases/Integration/*
418 Start the integration tests.
420 2007-06-04 Jb Evain <jbevain@novell.com>
422 * Mono.Linker.Steps/MarkStep.cs
423 Mark the custom attributes on the assemblies
426 * Mono.Linker.Steps/ResolveFromXmlStep.cs
427 Descriptors/corlib.xml:
428 Preserve the whole S.S.Crypto namespace.
430 * rename back from mink to monolinker.
432 2007-06-01 Jb Evain <jbevain@novell.com>
434 * configure, config.make, mink.in: added
436 * AUTHORS, MIT.X11, man/mink.1: added
438 2007-05-31 Jb Evain <jbevain@novell.com>
441 monolinker.exe.sources: moved to mink.exe.sources
442 Makefile, Mono.Linker.csproj: emit a mink.exe
444 * Mono.Linker/LinkContext.cs:
445 A resolved assembly is not always the one requested,
448 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
449 Mono.Linker.Steps/OutputStep.cs
450 Mono.Linker.Steps/LoadReferencesStep.cs
451 Mono.Linker.Steps/CleanStep.cs
452 Mono.Linker.Steps/ResolveFromAssemblyStep.cs
453 Mono.Linker.Steps/SweepStep.cs
454 Mono.Linker.Steps/BlacklistStep.cs
455 Mono.Linker.Steps/MarkStep.cs
456 Mono.Linker.Steps/BaseStep.cs
458 Mono.Linker/Driver.cs:
459 Add a new abstract BaseStep to be extends by most
461 Add a new LoadReferences step to force all referenced
462 assemblies to be resolved before the mark step.
464 * Mono.Linker/CustomResolver.cs
465 Mono.Linker/LinkContext.cs:
466 Register entry assembly.
468 2007-05-30 Jb Evain <jbevain@novell.com>
470 * Mono.Linker/MarkStep.cs:
471 Fix regression: do not mark GenericParameters that are
472 part of a typespec, like T[] or T*.
474 2007-05-28 Jb Evain <jbevain@novell.com>
476 * Big refactoring. Get rid of the markers, use the annotations
479 * Mono.Linker/Marker.cs
480 Mono.Linker/MarkStep.cs
481 Mono.Linker/SweepStep.cs:
482 Use annotations to mark wether or not we should
485 2007-05-23 Jb Evain <jbevain@novell.com>
487 * Mono.Limker/CleanStep.cs:
488 Stop doing hackish stupid things because
489 Cecil suddenly handles MemberRef much better.
491 2007-05-19 Jb Evain <jb@nurv.fr>
493 * Mono.Linker/ResolveFromXmlStep.cs
494 Mono.Linker/AssemblyMarker.cs
495 Mono.Linker/MarkStep.cs
496 Mono.Linker/ResolveFromAssemblyStep.cs:
497 Process correctly the marker selected in the resolve phases.
499 2007-05-17 Jb Evain <jb@nurv.fr>
501 * Mono.Linker/CleanStep.cs
502 Mono.Linker/SweepStep.cs
503 Mono.Linker/MarkStep.cs:
504 Link only when necessary.
506 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
507 Tests/Mono.Linker.Tests/AbstractTestFixture.cs
509 Mono.Linker/ResolveFromXmlStep.cs
510 Mono.Linker/AssemblyMarker.cs
511 Mono.Linker/Marker.cs
512 Mono.Linker/MarkStep.cs
513 Mono.Linker/TypePreserve.cs
514 Mono.Linker/Pipeline.cs:
515 Deal with preserve and required infos, make last test pass.
517 * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
518 Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
519 Tests/TestCases/Linker/PreserveFieldsRequired
520 Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
521 Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
522 Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
523 Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
524 Add a new (failing for now) test case for preserve and required.
526 2007-05-16 Jb Evain <jb@nurv.fr>
528 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
530 Mono.Linker/CoreAction.cs
531 Mono.Linker/Driver.cs
532 Mono.Linker/LinkContext.cs:
533 Simplify the command line options.
535 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
537 Mono.Linker/CleanStep.cs
538 Mono.Linker/ResolveFromXmlStep.cs
539 Mono.Linker/Driver.cs
540 Mono.Linker/OutputStep.cs
541 Mono.Linker/ResolveFromAssemblyStep.cs
542 Mono.Linker/LinkContext.cs
543 Mono.Linker/BlacklistStep.cs
544 Mono.Linker/Pipeline.cs:
545 Working on black list support.
547 * Descriptors/corlib.xml
548 Descriptors/system.xml
549 Descriptors/system.web.xml:
550 First audit of the core.
552 2007-04-23 Jb Evain <jb@nurv.fr>
554 * Mono.Linker/CleanStep.cs:
555 Clean some special cases of MemberRef.
557 2007-03-19 Jb Evain <jbevain@gmail.com>
559 * Fix a bug when an assembly references two
560 versions of an assembly with the same name.
561 * do some refactorings
563 2007-03-16 Jb Evain <jbevain@gmail.com>
565 * rename linker.exe to monolinker.exe
567 2006-11-08 Jb Evain <jbevain@gmail.com>
569 * Mono.Linker/AssemblyMarker.cs:
570 Fix a bug in method resolution.
571 * Mono.Linker/Driver.cs:
572 Fix a bug in assembly action processing.
574 2006-11-02 Jb Evain <jbevain@gmail.com>
576 * check-in patches adapted from contributions by:
577 Alex Prudkiy <prudkiy@mail.ru>
579 2006-08-21 Jb Evain <jbevain@gmail.com>
581 * mark types used within the runtime
583 2006-08-20 Jb Evain <jbevain@gmail.com>
585 * mark the custom attributes from the assemblies, modules and
588 * mark the methods used by an event
590 * mark the custom attributes on the properties and the events
593 * preserve the fields of the value types
595 * clean also nested types in a proper way.
597 * clean events as well
599 2006-08-17 Jb Evain <jbevain@gmail.com>
603 2006-08-16 Jb Evain <jbevain@gmail.com>
605 * work on generics assemblies linking
607 * use the resolver from Cecil.
609 * when marking a type, also mark its virtual methods
611 2006-08-15 Jb Evain <jbevain@gmail.com>
615 * mark interfaces as well
617 * work in progress + unit tests.
619 2006-07-27 Jb Evain <jbevain@gmail.com>
621 * begin work on the sweep step.
623 2006-07-20 Jb Evain <jbevain@gmail.com>
626 draft implementation of the mark phase of the linker.