1 2010-02-01 Jb Evain <jbevain@novell.com>
3 * MarkStep.cs: SoapHeader can either take a field or a property.
5 2010-01-20 Rolf Bjarne Kvinge <RKvinge@novell.com>
7 * Makefile: Fetch Mono.Cecil.dll from whatever profile we happen to be
10 2010-01-14 Jb Evain <jbevain@novell.com>
12 * MarkStep.cs: preserve fields specified by the
15 2010-01-13 Jb Evain <jbevain@novell.com>
17 * MarkStep.cs: preserve methods specified by the
18 XmlSchemaProvider attribute.
20 2010-01-06 Jb Evain <jbevain@novell.com>
22 * Descriptors/mscorlib.xml: optimize descriptor.
24 2009-11-23 Jb Evain <jbevain@novell.com>
26 * Descriptors/mscorlib.xml: protect the InternalThread class.
29 2009-11-02 Jb Evain <jbevain@novell.com>
31 Merge the MonoTouch Linker branch.
33 * monolinker.exe.sources: update
35 * Mono.Linker/Annotations.cs:
36 - add an preserved methods annotation on a type.
37 - add an annotation to get the base methods of a method.
38 - add an annotation to get the overriden method of a method.
40 * Mono.Linker/AssemblyAction.cs:
41 add a Delete action to remove an assembly from the output set.
43 * Mono.Linker.Steps/TypeMapStep.cs:
44 new step that create a map of virtual methods implementation.
46 * Mono.Linker.Steps/MarkStep.cs:
47 - removal of virtual methods.
48 - fix for custom attributes assigning properties and field
49 defined in a base type.
51 - mark default constructors of types used as a generic instance
52 of a generic parameter constrained with new().
53 - apply preserved methods.
55 * Mono.Linker.Steps/SweepStep.cs: remove unused assemblies.
57 * Mono.Linker.Steps/LoadI18nAssemblies.cs:
58 fix linking of i18n assemblies.
60 * Mono.Linker.Steps/OutputStep.cs:
61 fix the copied assemblies when the output directory
62 is the same as the origin of the assemblies.
64 * Mono.Linker.Steps/ResolveFromXmlStep.cs
65 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
66 * Mono.Linker.Steps/BaseStep.cs
67 * Mono.Linker/Driver.cs
68 * Mono.Linker/Pipeline.cs:
71 2009-09-10 Andrés G. Aragoneses <aaragoneses@novell.com>
73 * Mono.Linker.Steps/MarkStep.cs: Make IgnoreScope() virtual to
74 prevent marking custom attributes of foreign assemblies in a
75 derived step in the tuner. ( r: jb )
77 2009-09-09 Andrés G. Aragoneses <aaragoneses@novell.com>
79 * Mono.Linker.Steps/MarkStep.cs: Visibility changes needed by
80 the need of some new tuner step to redefine or call some
83 2009-07-02 Jb Evain <jbevain@novell.com>
85 * Makefile: fix cecil's location.
87 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
89 * Mono.Linker.Steps/BaseStep.cs: New virtual API needed.
91 * Mono.Linker/Pipeline.cs: API love.
93 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
95 * Mono.Linker.csproj: Update.
97 * Mono.Linker/Driver.cs: Prevent InvalidCastException.
99 2009-06-05 Jb Evain <jbevain@novell.com>
101 * Mono.Linker.Steps/MarkStep.cs: fix a nre.
102 Based on patch by Andres G. Aragoneses <aaragoneses@novell.com>.
104 2009-06-05 Jb Evain <jbevain@novell.com>
106 * Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.
108 2009-06-05 Jb Evain <jbevain@novell.com>
110 * Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
111 possibilities to detail the xml descriptors.
113 2009-06-04 Jb Evain <jbevain@novell.com>
115 * Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
116 of wildcards constructors.
118 2009-04-23 Andrés G. Aragoneses <aaragoneses@novell.com>
120 * Mono.Linker/Driver.cs: Report error and exit if it cannot
121 resolve some type (useful to avoid an ugly TypeLoadException
122 when specifying an erroneus custom step).
124 2009-04-21 Andrés G. Aragoneses <aaragoneses@novell.com>
126 * Driver.cs: Postprocess custom steps in order to make them
127 able to find steps determined by the resolve method. Fixes
130 2009-04-08 Andrés G. Aragoneses <aaragoneses@novell.com>
132 * Mono.Linker.csproj: Update.
134 2009-02-18 Jb Evain <jbevain@novell.com>
136 * Mono.Linker/XApiService.cs: delete, unused.
137 * Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.
139 2009-01-28 Jb Evain <jbevain@novell.com>
141 * Mono.Linker/AssemblyResolver.cs
142 Mono.Linker.Steps/MarkStep.cs:
143 Directly use the Resolve methods from Cecil.
145 2008-12-16 Jb Evain <jbevain@novell.com>
147 * Makefile: build monolinker.exe in the profile directory instead of
150 2008-12-02 Jb Evain <jbevain@novell.com>
152 * Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
153 fix the case where we compare two GenericInstanceType of the same
154 element type with different generic arguments.
156 2008-11-24 Jb Evain <jbevain@novell.com>
158 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
159 * Mono.Linker.Steps/ResolveFromXmlStep.cs
160 * Mono.Linker.Steps/MarkStep.cs:
161 generalize the use of the new Has* pattern in Cecil
162 to avoid unecessary allocations. Also cache delegates.
164 2008-09-12 Jb Evain <jbevain@novell.com>
166 * Mono.Linker/Pipeline.cs: add a RemoveStep method.
167 * Mono.Linker/Driver.cs: make the linker generate new
168 module guids by default.
170 2008-09-12 Jb Evain <jbevain@novell.com>
172 * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
173 to regenerate the Mvid identifier of each linked module.
175 * monolinker.exe.sources:
176 * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
178 * Mono.Linker/Driver.cs: add a -g option to control whether to
179 regenerate the modules identifier or not.
181 2008-09-01 Jb Evain <jbevain@novell.com>
183 * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
185 2008-08-26 Zoltan Varga <vargaz@gmail.com>
187 * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
189 2008-03-28 Jb Evain <jbevain@novell.com>
191 * Mono.Linker/XApiReader.cs: deal better with complex names.
193 2008-03-28 Jb Evain <jbevain@novell.com>
195 * Mono.Linker/LinkContext.cs: do not force the loading of
196 debug symbols if not asked.
198 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
200 * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
201 linker from removing CreateCulture method that is only used by the
204 2007-11-21 Jb Evain <jbevain@novell.com>
206 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
207 Implement resolving from xml patterns.
209 2007-10-25 Jb Evain <jbevain@novell.com>
211 * monolinker.exe.sources
212 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs
213 * Mono.Linker/Driver.cs
214 * Mono.Linker/XApiReader.cs
215 * Mono.Linker/ApiInfoService.cs
216 * Mono.Linker/IXApiVisitor.cs:
218 Big refactoring. Move logic to read Xml Api Info files
219 to XApiReader, so we can use that in the tuner to deal
220 with xapi files to inject attributes.
222 2007-08-27 Jb Evain <jbevain@novell.com>
224 * Mono.Linker/Driver.cs
225 Mono.Linker/Annotations.cs
226 Mono.Linker/LinkContext.cs
227 Mono.Linker.Steps/OutputStep.cs:
228 Implement symbols loading/saving.
230 2007-08-16 Jb Evain <jbevain@novell.com>
232 * Mono.Linker/Driver.cs
233 Mono.Linker/LinkContext.cs:
234 Add a way to specify parameters to the context.
236 2007-08-05 Jb Evain <jbevain@novell.com>
238 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
239 Now the resolver deals only with assembly names
240 instead of fullnames.
242 2007-07-25 Jb Evain <jbevain@novell.com>
244 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
245 When linking from an executable, it's possible
246 to reduce the executable as well.
248 2007-07-23 Jb Evain <jbevain@novell.com>
250 * Mono.Linker/Driver.cs
251 Mono.Linker/LinkContext.cs:
252 Allow one to specify the action to apply to an assembly
253 from the command line.
255 2007-07-22 Jb Evain <jbevain@novell.com>
257 * Mono.Linker/LinkContext.cs:
258 If no file found with -a, try to resolve it.
260 * Mono.Linker/Driver.cs
261 Mono.Linker/Pipeline.cs:
262 Adjust the visibility only once, even with multiple -i.
264 2007-07-21 Jb Evain <jbevain@novell.com>
266 * Mono.Linker.Steps/SweepStep.cs:
267 Sweep memberrefs along with the typerefs.
269 2007-07-20 Jb Evain <jbevain@novell.com>
271 * Mono.Linker.Steps/AdjustVisibilityStep.cs:
272 Don't change the visibility of the members if the type
275 2007-07-18 Jb Evain <jbevain@novell.com>
277 * Mono.Linker/ResolutionException.cs:
278 Mono.Linker.Steps/MarkStep.cs:
279 Throw a resolution exception when a metadata item
280 can not be resolved in external assemblies.
282 * Mono.Linker/AssemblyResolver.cs:
283 Use the assembly name only as a key for the
286 2007-07-05 Jb Evain <jbevain@novell.com>
288 * Mono.Linker/Driver.cs
289 Mono.Linker/Pipeline.cs:
290 Add a way to install steps in the pipeline
293 2007-07-03 Jb Evain <jbevain@novell.com>
295 * Mono.Linker/Driver.cs:
296 Add support for @files
298 * Mono.Linker/Driver.cs:
299 Add a way to add search directories to the resolver.
301 2007-06-18 Jb Evain <jbevain@novell.com>
303 * Mono.Linker.Steps/MarkStep.cs:
304 Mark generic parameter constraints.
306 * Mono.Linker.Steps/MarkStep.cs:
307 Mark modifiers of modtype.
309 2007-06-15 Jb Evain <jbevain@novell.com>
311 * Mono.Linker/Driver.cs,
312 Mono.Linker/I18nAssemblies.cs,
313 Mono.Linker.Steps/LoadI18nAssemblies.cs:
314 Copy the i18n assemblies when running Mono.
316 * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
317 Mono.Linker/Annotations.cs,
318 Mono.Linker/LinkContext.cs,
319 Mono.Linker.Steps/ResolveFromXmlStep.cs:
320 Clean up the assembly reference system.
321 Fixes bug where the linker have multiple
322 time the same assembly in its cache.
324 2007-06-13 Jb Evain <jbevain@novell.com>
326 * Mono.Linker.Steps/OutputStep.cs:
327 Copy .config files alongs with assemblies.
329 * Mono.Linker.Steps/CleanStep.cs:
330 Clean memberref that are not used anymore.
332 2007-06-12 Jb Evain <jbevain@novell.com>
334 * Mono.Linker.Steps/AdjustVisibilityStep.cs,
335 Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
336 Mono.Linker/Drivers.cs:
337 Adjust the visibility depending on the data
338 gathered in the api-info.
340 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
341 Mono.Linker/Driver.cs:
342 Started working on linking from api-info.
344 2007-06-08 Jb Evain <jbevain@novell.com>
346 * Descriptors/System.Drawing.xml,
347 Mono.Linker.Steps/BlackListStep.cs:
348 Add preserve infos for System.Drawing.
350 * Mono.Linker.Steps/MarkStep.cs:
351 Tests/TestsCases/Linker/Generics/*:
352 Also walk through generic instances to
355 2007-06-07 Jb Evain <jbevain@novell.com>
357 * Mono.Linker.Steps/MarkStep.cs:
358 Mark types used in some marshal specs.
360 * Mono.Linker.Tests/MarkStep.cs
361 Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
362 Tests/TestCases/Linker/ReferenceInAttributes/*:
363 Mark fields and setters used in custom attribute
364 instantiation. Mark also types used in custom attribute
369 Add a small profiler that outputs the xml format
370 that the linker can resolve.
372 By running an application with the profiler, one
373 can help the linker gather data. Especially for dynamic
374 cases like assembly loading an dynamic type resolving.
376 2007-06-06 Jb Evain <jbevain@novell.com>
378 * Mono.Linker.Steps/MarkStep.cs:
379 Mono.Linker/CustomResolvercs:
380 Try to find types in custom attributes to mark them.
382 * Mono.Linker.Steps/MarkStep.cs:
383 Mark default constructor for serializable types.
384 Mark the special serialization constructor as well.
386 * Mono.Linker/LinkContext.cs:
387 Mono.Linker.Steps/LoadReferences.cs:
388 Use the name of the assembly as a key
389 instead of the fullname.
391 * Mono.Linker/CustomResolver.cs:
392 When a method is not found, go down
393 the class hierarchy to find it.
395 2007-06-05 Jb Evain <jbevain@novell.com>
397 * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
398 Tests/TestCases/Integration/*
400 Start the integration tests.
402 2007-06-04 Jb Evain <jbevain@novell.com>
404 * Mono.Linker.Steps/MarkStep.cs
405 Mark the custom attributes on the assemblies
408 * Mono.Linker.Steps/ResolveFromXmlStep.cs
409 Descriptors/corlib.xml:
410 Preserve the whole S.S.Crypto namespace.
412 * rename back from mink to monolinker.
414 2007-06-01 Jb Evain <jbevain@novell.com>
416 * configure, config.make, mink.in: added
418 * AUTHORS, MIT.X11, man/mink.1: added
420 2007-05-31 Jb Evain <jbevain@novell.com>
423 monolinker.exe.sources: moved to mink.exe.sources
424 Makefile, Mono.Linker.csproj: emit a mink.exe
426 * Mono.Linker/LinkContext.cs:
427 A resolved assembly is not always the one requested,
430 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
431 Mono.Linker.Steps/OutputStep.cs
432 Mono.Linker.Steps/LoadReferencesStep.cs
433 Mono.Linker.Steps/CleanStep.cs
434 Mono.Linker.Steps/ResolveFromAssemblyStep.cs
435 Mono.Linker.Steps/SweepStep.cs
436 Mono.Linker.Steps/BlacklistStep.cs
437 Mono.Linker.Steps/MarkStep.cs
438 Mono.Linker.Steps/BaseStep.cs
440 Mono.Linker/Driver.cs:
441 Add a new abstract BaseStep to be extends by most
443 Add a new LoadReferences step to force all referenced
444 assemblies to be resolved before the mark step.
446 * Mono.Linker/CustomResolver.cs
447 Mono.Linker/LinkContext.cs:
448 Register entry assembly.
450 2007-05-30 Jb Evain <jbevain@novell.com>
452 * Mono.Linker/MarkStep.cs:
453 Fix regression: do not mark GenericParameters that are
454 part of a typespec, like T[] or T*.
456 2007-05-28 Jb Evain <jbevain@novell.com>
458 * Big refactoring. Get rid of the markers, use the annotations
461 * Mono.Linker/Marker.cs
462 Mono.Linker/MarkStep.cs
463 Mono.Linker/SweepStep.cs:
464 Use annotations to mark wether or not we should
467 2007-05-23 Jb Evain <jbevain@novell.com>
469 * Mono.Limker/CleanStep.cs:
470 Stop doing hackish stupid things because
471 Cecil suddenly handles MemberRef much better.
473 2007-05-19 Jb Evain <jb@nurv.fr>
475 * Mono.Linker/ResolveFromXmlStep.cs
476 Mono.Linker/AssemblyMarker.cs
477 Mono.Linker/MarkStep.cs
478 Mono.Linker/ResolveFromAssemblyStep.cs:
479 Process correctly the marker selected in the resolve phases.
481 2007-05-17 Jb Evain <jb@nurv.fr>
483 * Mono.Linker/CleanStep.cs
484 Mono.Linker/SweepStep.cs
485 Mono.Linker/MarkStep.cs:
486 Link only when necessary.
488 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
489 Tests/Mono.Linker.Tests/AbstractTestFixture.cs
491 Mono.Linker/ResolveFromXmlStep.cs
492 Mono.Linker/AssemblyMarker.cs
493 Mono.Linker/Marker.cs
494 Mono.Linker/MarkStep.cs
495 Mono.Linker/TypePreserve.cs
496 Mono.Linker/Pipeline.cs:
497 Deal with preserve and required infos, make last test pass.
499 * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
500 Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
501 Tests/TestCases/Linker/PreserveFieldsRequired
502 Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
503 Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
504 Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
505 Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
506 Add a new (failing for now) test case for preserve and required.
508 2007-05-16 Jb Evain <jb@nurv.fr>
510 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
512 Mono.Linker/CoreAction.cs
513 Mono.Linker/Driver.cs
514 Mono.Linker/LinkContext.cs:
515 Simplify the command line options.
517 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
519 Mono.Linker/CleanStep.cs
520 Mono.Linker/ResolveFromXmlStep.cs
521 Mono.Linker/Driver.cs
522 Mono.Linker/OutputStep.cs
523 Mono.Linker/ResolveFromAssemblyStep.cs
524 Mono.Linker/LinkContext.cs
525 Mono.Linker/BlacklistStep.cs
526 Mono.Linker/Pipeline.cs:
527 Working on black list support.
529 * Descriptors/corlib.xml
530 Descriptors/system.xml
531 Descriptors/system.web.xml:
532 First audit of the core.
534 2007-04-23 Jb Evain <jb@nurv.fr>
536 * Mono.Linker/CleanStep.cs:
537 Clean some special cases of MemberRef.
539 2007-03-19 Jb Evain <jbevain@gmail.com>
541 * Fix a bug when an assembly references two
542 versions of an assembly with the same name.
543 * do some refactorings
545 2007-03-16 Jb Evain <jbevain@gmail.com>
547 * rename linker.exe to monolinker.exe
549 2006-11-08 Jb Evain <jbevain@gmail.com>
551 * Mono.Linker/AssemblyMarker.cs:
552 Fix a bug in method resolution.
553 * Mono.Linker/Driver.cs:
554 Fix a bug in assembly action processing.
556 2006-11-02 Jb Evain <jbevain@gmail.com>
558 * check-in patches adapted from contributions by:
559 Alex Prudkiy <prudkiy@mail.ru>
561 2006-08-21 Jb Evain <jbevain@gmail.com>
563 * mark types used within the runtime
565 2006-08-20 Jb Evain <jbevain@gmail.com>
567 * mark the custom attributes from the assemblies, modules and
570 * mark the methods used by an event
572 * mark the custom attributes on the properties and the events
575 * preserve the fields of the value types
577 * clean also nested types in a proper way.
579 * clean events as well
581 2006-08-17 Jb Evain <jbevain@gmail.com>
585 2006-08-16 Jb Evain <jbevain@gmail.com>
587 * work on generics assemblies linking
589 * use the resolver from Cecil.
591 * when marking a type, also mark its virtual methods
593 2006-08-15 Jb Evain <jbevain@gmail.com>
597 * mark interfaces as well
599 * work in progress + unit tests.
601 2006-07-27 Jb Evain <jbevain@gmail.com>
603 * begin work on the sweep step.
605 2006-07-20 Jb Evain <jbevain@gmail.com>
608 draft implementation of the mark phase of the linker.