1 2010-01-14 Jb Evain <jbevain@novell.com>
3 * MarkStep.cs: preserve fields specified by the
6 2010-01-13 Jb Evain <jbevain@novell.com>
8 * MarkStep.cs: preserve methods specified by the
9 XmlSchemaProvider attribute.
11 2010-01-06 Jb Evain <jbevain@novell.com>
13 * Descriptors/mscorlib.xml: optimize descriptor.
15 2009-11-23 Jb Evain <jbevain@novell.com>
17 * Descriptors/mscorlib.xml: protect the InternalThread class.
20 2009-11-02 Jb Evain <jbevain@novell.com>
22 Merge the MonoTouch Linker branch.
24 * monolinker.exe.sources: update
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.
31 * Mono.Linker/AssemblyAction.cs:
32 add a Delete action to remove an assembly from the output set.
34 * Mono.Linker.Steps/TypeMapStep.cs:
35 new step that create a map of virtual methods implementation.
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.
42 - mark default constructors of types used as a generic instance
43 of a generic parameter constrained with new().
44 - apply preserved methods.
46 * Mono.Linker.Steps/SweepStep.cs: remove unused assemblies.
48 * Mono.Linker.Steps/LoadI18nAssemblies.cs:
49 fix linking of i18n assemblies.
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.
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:
62 2009-09-10 Andrés G. Aragoneses <aaragoneses@novell.com>
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 )
68 2009-09-09 Andrés G. Aragoneses <aaragoneses@novell.com>
70 * Mono.Linker.Steps/MarkStep.cs: Visibility changes needed by
71 the need of some new tuner step to redefine or call some
74 2009-07-02 Jb Evain <jbevain@novell.com>
76 * Makefile: fix cecil's location.
78 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
80 * Mono.Linker.Steps/BaseStep.cs: New virtual API needed.
82 * Mono.Linker/Pipeline.cs: API love.
84 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
86 * Mono.Linker.csproj: Update.
88 * Mono.Linker/Driver.cs: Prevent InvalidCastException.
90 2009-06-05 Jb Evain <jbevain@novell.com>
92 * Mono.Linker.Steps/MarkStep.cs: fix a nre.
93 Based on patch by Andres G. Aragoneses <aaragoneses@novell.com>.
95 2009-06-05 Jb Evain <jbevain@novell.com>
97 * Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.
99 2009-06-05 Jb Evain <jbevain@novell.com>
101 * Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
102 possibilities to detail the xml descriptors.
104 2009-06-04 Jb Evain <jbevain@novell.com>
106 * Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
107 of wildcards constructors.
109 2009-04-23 Andrés G. Aragoneses <aaragoneses@novell.com>
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).
115 2009-04-21 Andrés G. Aragoneses <aaragoneses@novell.com>
117 * Driver.cs: Postprocess custom steps in order to make them
118 able to find steps determined by the resolve method. Fixes
121 2009-04-08 Andrés G. Aragoneses <aaragoneses@novell.com>
123 * Mono.Linker.csproj: Update.
125 2009-02-18 Jb Evain <jbevain@novell.com>
127 * Mono.Linker/XApiService.cs: delete, unused.
128 * Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.
130 2009-01-28 Jb Evain <jbevain@novell.com>
132 * Mono.Linker/AssemblyResolver.cs
133 Mono.Linker.Steps/MarkStep.cs:
134 Directly use the Resolve methods from Cecil.
136 2008-12-16 Jb Evain <jbevain@novell.com>
138 * Makefile: build monolinker.exe in the profile directory instead of
141 2008-12-02 Jb Evain <jbevain@novell.com>
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.
147 2008-11-24 Jb Evain <jbevain@novell.com>
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.
155 2008-09-12 Jb Evain <jbevain@novell.com>
157 * Mono.Linker/Pipeline.cs: add a RemoveStep method.
158 * Mono.Linker/Driver.cs: make the linker generate new
159 module guids by default.
161 2008-09-12 Jb Evain <jbevain@novell.com>
163 * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
164 to regenerate the Mvid identifier of each linked module.
166 * monolinker.exe.sources:
167 * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
169 * Mono.Linker/Driver.cs: add a -g option to control whether to
170 regenerate the modules identifier or not.
172 2008-09-01 Jb Evain <jbevain@novell.com>
174 * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
176 2008-08-26 Zoltan Varga <vargaz@gmail.com>
178 * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
180 2008-03-28 Jb Evain <jbevain@novell.com>
182 * Mono.Linker/XApiReader.cs: deal better with complex names.
184 2008-03-28 Jb Evain <jbevain@novell.com>
186 * Mono.Linker/LinkContext.cs: do not force the loading of
187 debug symbols if not asked.
189 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
191 * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
192 linker from removing CreateCulture method that is only used by the
195 2007-11-21 Jb Evain <jbevain@novell.com>
197 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
198 Implement resolving from xml patterns.
200 2007-10-25 Jb Evain <jbevain@novell.com>
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:
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.
213 2007-08-27 Jb Evain <jbevain@novell.com>
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.
221 2007-08-16 Jb Evain <jbevain@novell.com>
223 * Mono.Linker/Driver.cs
224 Mono.Linker/LinkContext.cs:
225 Add a way to specify parameters to the context.
227 2007-08-05 Jb Evain <jbevain@novell.com>
229 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
230 Now the resolver deals only with assembly names
231 instead of fullnames.
233 2007-07-25 Jb Evain <jbevain@novell.com>
235 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
236 When linking from an executable, it's possible
237 to reduce the executable as well.
239 2007-07-23 Jb Evain <jbevain@novell.com>
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.
246 2007-07-22 Jb Evain <jbevain@novell.com>
248 * Mono.Linker/LinkContext.cs:
249 If no file found with -a, try to resolve it.
251 * Mono.Linker/Driver.cs
252 Mono.Linker/Pipeline.cs:
253 Adjust the visibility only once, even with multiple -i.
255 2007-07-21 Jb Evain <jbevain@novell.com>
257 * Mono.Linker.Steps/SweepStep.cs:
258 Sweep memberrefs along with the typerefs.
260 2007-07-20 Jb Evain <jbevain@novell.com>
262 * Mono.Linker.Steps/AdjustVisibilityStep.cs:
263 Don't change the visibility of the members if the type
266 2007-07-18 Jb Evain <jbevain@novell.com>
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.
273 * Mono.Linker/AssemblyResolver.cs:
274 Use the assembly name only as a key for the
277 2007-07-05 Jb Evain <jbevain@novell.com>
279 * Mono.Linker/Driver.cs
280 Mono.Linker/Pipeline.cs:
281 Add a way to install steps in the pipeline
284 2007-07-03 Jb Evain <jbevain@novell.com>
286 * Mono.Linker/Driver.cs:
287 Add support for @files
289 * Mono.Linker/Driver.cs:
290 Add a way to add search directories to the resolver.
292 2007-06-18 Jb Evain <jbevain@novell.com>
294 * Mono.Linker.Steps/MarkStep.cs:
295 Mark generic parameter constraints.
297 * Mono.Linker.Steps/MarkStep.cs:
298 Mark modifiers of modtype.
300 2007-06-15 Jb Evain <jbevain@novell.com>
302 * Mono.Linker/Driver.cs,
303 Mono.Linker/I18nAssemblies.cs,
304 Mono.Linker.Steps/LoadI18nAssemblies.cs:
305 Copy the i18n assemblies when running Mono.
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.
315 2007-06-13 Jb Evain <jbevain@novell.com>
317 * Mono.Linker.Steps/OutputStep.cs:
318 Copy .config files alongs with assemblies.
320 * Mono.Linker.Steps/CleanStep.cs:
321 Clean memberref that are not used anymore.
323 2007-06-12 Jb Evain <jbevain@novell.com>
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.
331 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
332 Mono.Linker/Driver.cs:
333 Started working on linking from api-info.
335 2007-06-08 Jb Evain <jbevain@novell.com>
337 * Descriptors/System.Drawing.xml,
338 Mono.Linker.Steps/BlackListStep.cs:
339 Add preserve infos for System.Drawing.
341 * Mono.Linker.Steps/MarkStep.cs:
342 Tests/TestsCases/Linker/Generics/*:
343 Also walk through generic instances to
346 2007-06-07 Jb Evain <jbevain@novell.com>
348 * Mono.Linker.Steps/MarkStep.cs:
349 Mark types used in some marshal specs.
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
360 Add a small profiler that outputs the xml format
361 that the linker can resolve.
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.
367 2007-06-06 Jb Evain <jbevain@novell.com>
369 * Mono.Linker.Steps/MarkStep.cs:
370 Mono.Linker/CustomResolvercs:
371 Try to find types in custom attributes to mark them.
373 * Mono.Linker.Steps/MarkStep.cs:
374 Mark default constructor for serializable types.
375 Mark the special serialization constructor as well.
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.
382 * Mono.Linker/CustomResolver.cs:
383 When a method is not found, go down
384 the class hierarchy to find it.
386 2007-06-05 Jb Evain <jbevain@novell.com>
388 * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
389 Tests/TestCases/Integration/*
391 Start the integration tests.
393 2007-06-04 Jb Evain <jbevain@novell.com>
395 * Mono.Linker.Steps/MarkStep.cs
396 Mark the custom attributes on the assemblies
399 * Mono.Linker.Steps/ResolveFromXmlStep.cs
400 Descriptors/corlib.xml:
401 Preserve the whole S.S.Crypto namespace.
403 * rename back from mink to monolinker.
405 2007-06-01 Jb Evain <jbevain@novell.com>
407 * configure, config.make, mink.in: added
409 * AUTHORS, MIT.X11, man/mink.1: added
411 2007-05-31 Jb Evain <jbevain@novell.com>
414 monolinker.exe.sources: moved to mink.exe.sources
415 Makefile, Mono.Linker.csproj: emit a mink.exe
417 * Mono.Linker/LinkContext.cs:
418 A resolved assembly is not always the one requested,
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
431 Mono.Linker/Driver.cs:
432 Add a new abstract BaseStep to be extends by most
434 Add a new LoadReferences step to force all referenced
435 assemblies to be resolved before the mark step.
437 * Mono.Linker/CustomResolver.cs
438 Mono.Linker/LinkContext.cs:
439 Register entry assembly.
441 2007-05-30 Jb Evain <jbevain@novell.com>
443 * Mono.Linker/MarkStep.cs:
444 Fix regression: do not mark GenericParameters that are
445 part of a typespec, like T[] or T*.
447 2007-05-28 Jb Evain <jbevain@novell.com>
449 * Big refactoring. Get rid of the markers, use the annotations
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
458 2007-05-23 Jb Evain <jbevain@novell.com>
460 * Mono.Limker/CleanStep.cs:
461 Stop doing hackish stupid things because
462 Cecil suddenly handles MemberRef much better.
464 2007-05-19 Jb Evain <jb@nurv.fr>
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.
472 2007-05-17 Jb Evain <jb@nurv.fr>
474 * Mono.Linker/CleanStep.cs
475 Mono.Linker/SweepStep.cs
476 Mono.Linker/MarkStep.cs:
477 Link only when necessary.
479 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
480 Tests/Mono.Linker.Tests/AbstractTestFixture.cs
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.
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.
499 2007-05-16 Jb Evain <jb@nurv.fr>
501 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
503 Mono.Linker/CoreAction.cs
504 Mono.Linker/Driver.cs
505 Mono.Linker/LinkContext.cs:
506 Simplify the command line options.
508 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
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.
520 * Descriptors/corlib.xml
521 Descriptors/system.xml
522 Descriptors/system.web.xml:
523 First audit of the core.
525 2007-04-23 Jb Evain <jb@nurv.fr>
527 * Mono.Linker/CleanStep.cs:
528 Clean some special cases of MemberRef.
530 2007-03-19 Jb Evain <jbevain@gmail.com>
532 * Fix a bug when an assembly references two
533 versions of an assembly with the same name.
534 * do some refactorings
536 2007-03-16 Jb Evain <jbevain@gmail.com>
538 * rename linker.exe to monolinker.exe
540 2006-11-08 Jb Evain <jbevain@gmail.com>
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.
547 2006-11-02 Jb Evain <jbevain@gmail.com>
549 * check-in patches adapted from contributions by:
550 Alex Prudkiy <prudkiy@mail.ru>
552 2006-08-21 Jb Evain <jbevain@gmail.com>
554 * mark types used within the runtime
556 2006-08-20 Jb Evain <jbevain@gmail.com>
558 * mark the custom attributes from the assemblies, modules and
561 * mark the methods used by an event
563 * mark the custom attributes on the properties and the events
566 * preserve the fields of the value types
568 * clean also nested types in a proper way.
570 * clean events as well
572 2006-08-17 Jb Evain <jbevain@gmail.com>
576 2006-08-16 Jb Evain <jbevain@gmail.com>
578 * work on generics assemblies linking
580 * use the resolver from Cecil.
582 * when marking a type, also mark its virtual methods
584 2006-08-15 Jb Evain <jbevain@gmail.com>
588 * mark interfaces as well
590 * work in progress + unit tests.
592 2006-07-27 Jb Evain <jbevain@gmail.com>
594 * begin work on the sweep step.
596 2006-07-20 Jb Evain <jbevain@gmail.com>
599 draft implementation of the mark phase of the linker.