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