1 2009-11-23 Jb Evain <jbevain@novell.com>
3 * Descriptors/mscorlib.xml: protect the InternalThread class.
6 2009-11-02 Jb Evain <jbevain@novell.com>
8 Merge the MonoTouch Linker branch.
10 * monolinker.exe.sources: update
12 * Mono.Linker/Annotations.cs:
13 - add an preserved methods annotation on a type.
14 - add an annotation to get the base methods of a method.
15 - add an annotation to get the overriden method of a method.
17 * Mono.Linker/AssemblyAction.cs:
18 add a Delete action to remove an assembly from the output set.
20 * Mono.Linker.Steps/TypeMapStep.cs:
21 new step that create a map of virtual methods implementation.
23 * Mono.Linker.Steps/MarkStep.cs:
24 - removal of virtual methods.
25 - fix for custom attributes assigning properties and field
26 defined in a base type.
28 - mark default constructors of types used as a generic instance
29 of a generic parameter constrained with new().
30 - apply preserved methods.
32 * Mono.Linker.Steps/SweepStep.cs: remove unused assemblies.
34 * Mono.Linker.Steps/LoadI18nAssemblies.cs:
35 fix linking of i18n assemblies.
37 * Mono.Linker.Steps/OutputStep.cs:
38 fix the copied assemblies when the output directory
39 is the same as the origin of the assemblies.
41 * Mono.Linker.Steps/ResolveFromXmlStep.cs
42 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
43 * Mono.Linker.Steps/BaseStep.cs
44 * Mono.Linker/Driver.cs
45 * Mono.Linker/Pipeline.cs:
48 2009-09-10 Andrés G. Aragoneses <aaragoneses@novell.com>
50 * Mono.Linker.Steps/MarkStep.cs: Make IgnoreScope() virtual to
51 prevent marking custom attributes of foreign assemblies in a
52 derived step in the tuner. ( r: jb )
54 2009-09-09 Andrés G. Aragoneses <aaragoneses@novell.com>
56 * Mono.Linker.Steps/MarkStep.cs: Visibility changes needed by
57 the need of some new tuner step to redefine or call some
60 2009-07-02 Jb Evain <jbevain@novell.com>
62 * Makefile: fix cecil's location.
64 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
66 * Mono.Linker.Steps/BaseStep.cs: New virtual API needed.
68 * Mono.Linker/Pipeline.cs: API love.
70 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
72 * Mono.Linker.csproj: Update.
74 * Mono.Linker/Driver.cs: Prevent InvalidCastException.
76 2009-06-05 Jb Evain <jbevain@novell.com>
78 * Mono.Linker.Steps/MarkStep.cs: fix a nre.
79 Based on patch by Andres G. Aragoneses <aaragoneses@novell.com>.
81 2009-06-05 Jb Evain <jbevain@novell.com>
83 * Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.
85 2009-06-05 Jb Evain <jbevain@novell.com>
87 * Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
88 possibilities to detail the xml descriptors.
90 2009-06-04 Jb Evain <jbevain@novell.com>
92 * Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
93 of wildcards constructors.
95 2009-04-23 Andrés G. Aragoneses <aaragoneses@novell.com>
97 * Mono.Linker/Driver.cs: Report error and exit if it cannot
98 resolve some type (useful to avoid an ugly TypeLoadException
99 when specifying an erroneus custom step).
101 2009-04-21 Andrés G. Aragoneses <aaragoneses@novell.com>
103 * Driver.cs: Postprocess custom steps in order to make them
104 able to find steps determined by the resolve method. Fixes
107 2009-04-08 Andrés G. Aragoneses <aaragoneses@novell.com>
109 * Mono.Linker.csproj: Update.
111 2009-02-18 Jb Evain <jbevain@novell.com>
113 * Mono.Linker/XApiService.cs: delete, unused.
114 * Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.
116 2009-01-28 Jb Evain <jbevain@novell.com>
118 * Mono.Linker/AssemblyResolver.cs
119 Mono.Linker.Steps/MarkStep.cs:
120 Directly use the Resolve methods from Cecil.
122 2008-12-16 Jb Evain <jbevain@novell.com>
124 * Makefile: build monolinker.exe in the profile directory instead of
127 2008-12-02 Jb Evain <jbevain@novell.com>
129 * Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
130 fix the case where we compare two GenericInstanceType of the same
131 element type with different generic arguments.
133 2008-11-24 Jb Evain <jbevain@novell.com>
135 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
136 * Mono.Linker.Steps/ResolveFromXmlStep.cs
137 * Mono.Linker.Steps/MarkStep.cs:
138 generalize the use of the new Has* pattern in Cecil
139 to avoid unecessary allocations. Also cache delegates.
141 2008-09-12 Jb Evain <jbevain@novell.com>
143 * Mono.Linker/Pipeline.cs: add a RemoveStep method.
144 * Mono.Linker/Driver.cs: make the linker generate new
145 module guids by default.
147 2008-09-12 Jb Evain <jbevain@novell.com>
149 * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
150 to regenerate the Mvid identifier of each linked module.
152 * monolinker.exe.sources:
153 * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
155 * Mono.Linker/Driver.cs: add a -g option to control whether to
156 regenerate the modules identifier or not.
158 2008-09-01 Jb Evain <jbevain@novell.com>
160 * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
162 2008-08-26 Zoltan Varga <vargaz@gmail.com>
164 * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
166 2008-03-28 Jb Evain <jbevain@novell.com>
168 * Mono.Linker/XApiReader.cs: deal better with complex names.
170 2008-03-28 Jb Evain <jbevain@novell.com>
172 * Mono.Linker/LinkContext.cs: do not force the loading of
173 debug symbols if not asked.
175 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
177 * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
178 linker from removing CreateCulture method that is only used by the
181 2007-11-21 Jb Evain <jbevain@novell.com>
183 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
184 Implement resolving from xml patterns.
186 2007-10-25 Jb Evain <jbevain@novell.com>
188 * monolinker.exe.sources
189 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs
190 * Mono.Linker/Driver.cs
191 * Mono.Linker/XApiReader.cs
192 * Mono.Linker/ApiInfoService.cs
193 * Mono.Linker/IXApiVisitor.cs:
195 Big refactoring. Move logic to read Xml Api Info files
196 to XApiReader, so we can use that in the tuner to deal
197 with xapi files to inject attributes.
199 2007-08-27 Jb Evain <jbevain@novell.com>
201 * Mono.Linker/Driver.cs
202 Mono.Linker/Annotations.cs
203 Mono.Linker/LinkContext.cs
204 Mono.Linker.Steps/OutputStep.cs:
205 Implement symbols loading/saving.
207 2007-08-16 Jb Evain <jbevain@novell.com>
209 * Mono.Linker/Driver.cs
210 Mono.Linker/LinkContext.cs:
211 Add a way to specify parameters to the context.
213 2007-08-05 Jb Evain <jbevain@novell.com>
215 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
216 Now the resolver deals only with assembly names
217 instead of fullnames.
219 2007-07-25 Jb Evain <jbevain@novell.com>
221 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
222 When linking from an executable, it's possible
223 to reduce the executable as well.
225 2007-07-23 Jb Evain <jbevain@novell.com>
227 * Mono.Linker/Driver.cs
228 Mono.Linker/LinkContext.cs:
229 Allow one to specify the action to apply to an assembly
230 from the command line.
232 2007-07-22 Jb Evain <jbevain@novell.com>
234 * Mono.Linker/LinkContext.cs:
235 If no file found with -a, try to resolve it.
237 * Mono.Linker/Driver.cs
238 Mono.Linker/Pipeline.cs:
239 Adjust the visibility only once, even with multiple -i.
241 2007-07-21 Jb Evain <jbevain@novell.com>
243 * Mono.Linker.Steps/SweepStep.cs:
244 Sweep memberrefs along with the typerefs.
246 2007-07-20 Jb Evain <jbevain@novell.com>
248 * Mono.Linker.Steps/AdjustVisibilityStep.cs:
249 Don't change the visibility of the members if the type
252 2007-07-18 Jb Evain <jbevain@novell.com>
254 * Mono.Linker/ResolutionException.cs:
255 Mono.Linker.Steps/MarkStep.cs:
256 Throw a resolution exception when a metadata item
257 can not be resolved in external assemblies.
259 * Mono.Linker/AssemblyResolver.cs:
260 Use the assembly name only as a key for the
263 2007-07-05 Jb Evain <jbevain@novell.com>
265 * Mono.Linker/Driver.cs
266 Mono.Linker/Pipeline.cs:
267 Add a way to install steps in the pipeline
270 2007-07-03 Jb Evain <jbevain@novell.com>
272 * Mono.Linker/Driver.cs:
273 Add support for @files
275 * Mono.Linker/Driver.cs:
276 Add a way to add search directories to the resolver.
278 2007-06-18 Jb Evain <jbevain@novell.com>
280 * Mono.Linker.Steps/MarkStep.cs:
281 Mark generic parameter constraints.
283 * Mono.Linker.Steps/MarkStep.cs:
284 Mark modifiers of modtype.
286 2007-06-15 Jb Evain <jbevain@novell.com>
288 * Mono.Linker/Driver.cs,
289 Mono.Linker/I18nAssemblies.cs,
290 Mono.Linker.Steps/LoadI18nAssemblies.cs:
291 Copy the i18n assemblies when running Mono.
293 * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
294 Mono.Linker/Annotations.cs,
295 Mono.Linker/LinkContext.cs,
296 Mono.Linker.Steps/ResolveFromXmlStep.cs:
297 Clean up the assembly reference system.
298 Fixes bug where the linker have multiple
299 time the same assembly in its cache.
301 2007-06-13 Jb Evain <jbevain@novell.com>
303 * Mono.Linker.Steps/OutputStep.cs:
304 Copy .config files alongs with assemblies.
306 * Mono.Linker.Steps/CleanStep.cs:
307 Clean memberref that are not used anymore.
309 2007-06-12 Jb Evain <jbevain@novell.com>
311 * Mono.Linker.Steps/AdjustVisibilityStep.cs,
312 Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
313 Mono.Linker/Drivers.cs:
314 Adjust the visibility depending on the data
315 gathered in the api-info.
317 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
318 Mono.Linker/Driver.cs:
319 Started working on linking from api-info.
321 2007-06-08 Jb Evain <jbevain@novell.com>
323 * Descriptors/System.Drawing.xml,
324 Mono.Linker.Steps/BlackListStep.cs:
325 Add preserve infos for System.Drawing.
327 * Mono.Linker.Steps/MarkStep.cs:
328 Tests/TestsCases/Linker/Generics/*:
329 Also walk through generic instances to
332 2007-06-07 Jb Evain <jbevain@novell.com>
334 * Mono.Linker.Steps/MarkStep.cs:
335 Mark types used in some marshal specs.
337 * Mono.Linker.Tests/MarkStep.cs
338 Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
339 Tests/TestCases/Linker/ReferenceInAttributes/*:
340 Mark fields and setters used in custom attribute
341 instantiation. Mark also types used in custom attribute
346 Add a small profiler that outputs the xml format
347 that the linker can resolve.
349 By running an application with the profiler, one
350 can help the linker gather data. Especially for dynamic
351 cases like assembly loading an dynamic type resolving.
353 2007-06-06 Jb Evain <jbevain@novell.com>
355 * Mono.Linker.Steps/MarkStep.cs:
356 Mono.Linker/CustomResolvercs:
357 Try to find types in custom attributes to mark them.
359 * Mono.Linker.Steps/MarkStep.cs:
360 Mark default constructor for serializable types.
361 Mark the special serialization constructor as well.
363 * Mono.Linker/LinkContext.cs:
364 Mono.Linker.Steps/LoadReferences.cs:
365 Use the name of the assembly as a key
366 instead of the fullname.
368 * Mono.Linker/CustomResolver.cs:
369 When a method is not found, go down
370 the class hierarchy to find it.
372 2007-06-05 Jb Evain <jbevain@novell.com>
374 * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
375 Tests/TestCases/Integration/*
377 Start the integration tests.
379 2007-06-04 Jb Evain <jbevain@novell.com>
381 * Mono.Linker.Steps/MarkStep.cs
382 Mark the custom attributes on the assemblies
385 * Mono.Linker.Steps/ResolveFromXmlStep.cs
386 Descriptors/corlib.xml:
387 Preserve the whole S.S.Crypto namespace.
389 * rename back from mink to monolinker.
391 2007-06-01 Jb Evain <jbevain@novell.com>
393 * configure, config.make, mink.in: added
395 * AUTHORS, MIT.X11, man/mink.1: added
397 2007-05-31 Jb Evain <jbevain@novell.com>
400 monolinker.exe.sources: moved to mink.exe.sources
401 Makefile, Mono.Linker.csproj: emit a mink.exe
403 * Mono.Linker/LinkContext.cs:
404 A resolved assembly is not always the one requested,
407 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
408 Mono.Linker.Steps/OutputStep.cs
409 Mono.Linker.Steps/LoadReferencesStep.cs
410 Mono.Linker.Steps/CleanStep.cs
411 Mono.Linker.Steps/ResolveFromAssemblyStep.cs
412 Mono.Linker.Steps/SweepStep.cs
413 Mono.Linker.Steps/BlacklistStep.cs
414 Mono.Linker.Steps/MarkStep.cs
415 Mono.Linker.Steps/BaseStep.cs
417 Mono.Linker/Driver.cs:
418 Add a new abstract BaseStep to be extends by most
420 Add a new LoadReferences step to force all referenced
421 assemblies to be resolved before the mark step.
423 * Mono.Linker/CustomResolver.cs
424 Mono.Linker/LinkContext.cs:
425 Register entry assembly.
427 2007-05-30 Jb Evain <jbevain@novell.com>
429 * Mono.Linker/MarkStep.cs:
430 Fix regression: do not mark GenericParameters that are
431 part of a typespec, like T[] or T*.
433 2007-05-28 Jb Evain <jbevain@novell.com>
435 * Big refactoring. Get rid of the markers, use the annotations
438 * Mono.Linker/Marker.cs
439 Mono.Linker/MarkStep.cs
440 Mono.Linker/SweepStep.cs:
441 Use annotations to mark wether or not we should
444 2007-05-23 Jb Evain <jbevain@novell.com>
446 * Mono.Limker/CleanStep.cs:
447 Stop doing hackish stupid things because
448 Cecil suddenly handles MemberRef much better.
450 2007-05-19 Jb Evain <jb@nurv.fr>
452 * Mono.Linker/ResolveFromXmlStep.cs
453 Mono.Linker/AssemblyMarker.cs
454 Mono.Linker/MarkStep.cs
455 Mono.Linker/ResolveFromAssemblyStep.cs:
456 Process correctly the marker selected in the resolve phases.
458 2007-05-17 Jb Evain <jb@nurv.fr>
460 * Mono.Linker/CleanStep.cs
461 Mono.Linker/SweepStep.cs
462 Mono.Linker/MarkStep.cs:
463 Link only when necessary.
465 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
466 Tests/Mono.Linker.Tests/AbstractTestFixture.cs
468 Mono.Linker/ResolveFromXmlStep.cs
469 Mono.Linker/AssemblyMarker.cs
470 Mono.Linker/Marker.cs
471 Mono.Linker/MarkStep.cs
472 Mono.Linker/TypePreserve.cs
473 Mono.Linker/Pipeline.cs:
474 Deal with preserve and required infos, make last test pass.
476 * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
477 Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
478 Tests/TestCases/Linker/PreserveFieldsRequired
479 Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
480 Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
481 Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
482 Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
483 Add a new (failing for now) test case for preserve and required.
485 2007-05-16 Jb Evain <jb@nurv.fr>
487 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
489 Mono.Linker/CoreAction.cs
490 Mono.Linker/Driver.cs
491 Mono.Linker/LinkContext.cs:
492 Simplify the command line options.
494 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
496 Mono.Linker/CleanStep.cs
497 Mono.Linker/ResolveFromXmlStep.cs
498 Mono.Linker/Driver.cs
499 Mono.Linker/OutputStep.cs
500 Mono.Linker/ResolveFromAssemblyStep.cs
501 Mono.Linker/LinkContext.cs
502 Mono.Linker/BlacklistStep.cs
503 Mono.Linker/Pipeline.cs:
504 Working on black list support.
506 * Descriptors/corlib.xml
507 Descriptors/system.xml
508 Descriptors/system.web.xml:
509 First audit of the core.
511 2007-04-23 Jb Evain <jb@nurv.fr>
513 * Mono.Linker/CleanStep.cs:
514 Clean some special cases of MemberRef.
516 2007-03-19 Jb Evain <jbevain@gmail.com>
518 * Fix a bug when an assembly references two
519 versions of an assembly with the same name.
520 * do some refactorings
522 2007-03-16 Jb Evain <jbevain@gmail.com>
524 * rename linker.exe to monolinker.exe
526 2006-11-08 Jb Evain <jbevain@gmail.com>
528 * Mono.Linker/AssemblyMarker.cs:
529 Fix a bug in method resolution.
530 * Mono.Linker/Driver.cs:
531 Fix a bug in assembly action processing.
533 2006-11-02 Jb Evain <jbevain@gmail.com>
535 * check-in patches adapted from contributions by:
536 Alex Prudkiy <prudkiy@mail.ru>
538 2006-08-21 Jb Evain <jbevain@gmail.com>
540 * mark types used within the runtime
542 2006-08-20 Jb Evain <jbevain@gmail.com>
544 * mark the custom attributes from the assemblies, modules and
547 * mark the methods used by an event
549 * mark the custom attributes on the properties and the events
552 * preserve the fields of the value types
554 * clean also nested types in a proper way.
556 * clean events as well
558 2006-08-17 Jb Evain <jbevain@gmail.com>
562 2006-08-16 Jb Evain <jbevain@gmail.com>
564 * work on generics assemblies linking
566 * use the resolver from Cecil.
568 * when marking a type, also mark its virtual methods
570 2006-08-15 Jb Evain <jbevain@gmail.com>
574 * mark interfaces as well
576 * work in progress + unit tests.
578 2006-07-27 Jb Evain <jbevain@gmail.com>
580 * begin work on the sweep step.
582 2006-07-20 Jb Evain <jbevain@gmail.com>
585 draft implementation of the mark phase of the linker.