1 2009-09-10 Andrés G. Aragoneses <aaragoneses@novell.com>
3 * Mono.Linker.Steps/MarkStep.cs: Make IgnoreScope() virtual to
4 prevent marking custom attributes of foreign assemblies in a
5 derived step in the tuner. ( r: jb )
7 2009-09-09 Andrés G. Aragoneses <aaragoneses@novell.com>
9 * Mono.Linker.Steps/MarkStep.cs: Visibility changes needed by
10 the need of some new tuner step to redefine or call some
13 2009-07-02 Jb Evain <jbevain@novell.com>
15 * Makefile: fix cecil's location.
17 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
19 * Mono.Linker.Steps/BaseStep.cs: New virtual API needed.
21 * Mono.Linker/Pipeline.cs: API love.
23 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
25 * Mono.Linker.csproj: Update.
27 * Mono.Linker/Driver.cs: Prevent InvalidCastException.
29 2009-06-05 Jb Evain <jbevain@novell.com>
31 * Mono.Linker.Steps/MarkStep.cs: fix a nre.
32 Based on patch by Andres G. Aragoneses <aaragoneses@novell.com>.
34 2009-06-05 Jb Evain <jbevain@novell.com>
36 * Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.
38 2009-06-05 Jb Evain <jbevain@novell.com>
40 * Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
41 possibilities to detail the xml descriptors.
43 2009-06-04 Jb Evain <jbevain@novell.com>
45 * Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
46 of wildcards constructors.
48 2009-04-23 Andrés G. Aragoneses <aaragoneses@novell.com>
50 * Mono.Linker/Driver.cs: Report error and exit if it cannot
51 resolve some type (useful to avoid an ugly TypeLoadException
52 when specifying an erroneus custom step).
54 2009-04-21 Andrés G. Aragoneses <aaragoneses@novell.com>
56 * Driver.cs: Postprocess custom steps in order to make them
57 able to find steps determined by the resolve method. Fixes
60 2009-04-08 Andrés G. Aragoneses <aaragoneses@novell.com>
62 * Mono.Linker.csproj: Update.
64 2009-02-18 Jb Evain <jbevain@novell.com>
66 * Mono.Linker/XApiService.cs: delete, unused.
67 * Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.
69 2009-01-28 Jb Evain <jbevain@novell.com>
71 * Mono.Linker/AssemblyResolver.cs
72 Mono.Linker.Steps/MarkStep.cs:
73 Directly use the Resolve methods from Cecil.
75 2008-12-16 Jb Evain <jbevain@novell.com>
77 * Makefile: build monolinker.exe in the profile directory instead of
80 2008-12-02 Jb Evain <jbevain@novell.com>
82 * Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
83 fix the case where we compare two GenericInstanceType of the same
84 element type with different generic arguments.
86 2008-11-24 Jb Evain <jbevain@novell.com>
88 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
89 * Mono.Linker.Steps/ResolveFromXmlStep.cs
90 * Mono.Linker.Steps/MarkStep.cs:
91 generalize the use of the new Has* pattern in Cecil
92 to avoid unecessary allocations. Also cache delegates.
94 2008-09-12 Jb Evain <jbevain@novell.com>
96 * Mono.Linker/Pipeline.cs: add a RemoveStep method.
97 * Mono.Linker/Driver.cs: make the linker generate new
98 module guids by default.
100 2008-09-12 Jb Evain <jbevain@novell.com>
102 * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
103 to regenerate the Mvid identifier of each linked module.
105 * monolinker.exe.sources:
106 * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
108 * Mono.Linker/Driver.cs: add a -g option to control whether to
109 regenerate the modules identifier or not.
111 2008-09-01 Jb Evain <jbevain@novell.com>
113 * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
115 2008-08-26 Zoltan Varga <vargaz@gmail.com>
117 * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
119 2008-03-28 Jb Evain <jbevain@novell.com>
121 * Mono.Linker/XApiReader.cs: deal better with complex names.
123 2008-03-28 Jb Evain <jbevain@novell.com>
125 * Mono.Linker/LinkContext.cs: do not force the loading of
126 debug symbols if not asked.
128 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
130 * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
131 linker from removing CreateCulture method that is only used by the
134 2007-11-21 Jb Evain <jbevain@novell.com>
136 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
137 Implement resolving from xml patterns.
139 2007-10-25 Jb Evain <jbevain@novell.com>
141 * monolinker.exe.sources
142 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs
143 * Mono.Linker/Driver.cs
144 * Mono.Linker/XApiReader.cs
145 * Mono.Linker/ApiInfoService.cs
146 * Mono.Linker/IXApiVisitor.cs:
148 Big refactoring. Move logic to read Xml Api Info files
149 to XApiReader, so we can use that in the tuner to deal
150 with xapi files to inject attributes.
152 2007-08-27 Jb Evain <jbevain@novell.com>
154 * Mono.Linker/Driver.cs
155 Mono.Linker/Annotations.cs
156 Mono.Linker/LinkContext.cs
157 Mono.Linker.Steps/OutputStep.cs:
158 Implement symbols loading/saving.
160 2007-08-16 Jb Evain <jbevain@novell.com>
162 * Mono.Linker/Driver.cs
163 Mono.Linker/LinkContext.cs:
164 Add a way to specify parameters to the context.
166 2007-08-05 Jb Evain <jbevain@novell.com>
168 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
169 Now the resolver deals only with assembly names
170 instead of fullnames.
172 2007-07-25 Jb Evain <jbevain@novell.com>
174 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
175 When linking from an executable, it's possible
176 to reduce the executable as well.
178 2007-07-23 Jb Evain <jbevain@novell.com>
180 * Mono.Linker/Driver.cs
181 Mono.Linker/LinkContext.cs:
182 Allow one to specify the action to apply to an assembly
183 from the command line.
185 2007-07-22 Jb Evain <jbevain@novell.com>
187 * Mono.Linker/LinkContext.cs:
188 If no file found with -a, try to resolve it.
190 * Mono.Linker/Driver.cs
191 Mono.Linker/Pipeline.cs:
192 Adjust the visibility only once, even with multiple -i.
194 2007-07-21 Jb Evain <jbevain@novell.com>
196 * Mono.Linker.Steps/SweepStep.cs:
197 Sweep memberrefs along with the typerefs.
199 2007-07-20 Jb Evain <jbevain@novell.com>
201 * Mono.Linker.Steps/AdjustVisibilityStep.cs:
202 Don't change the visibility of the members if the type
205 2007-07-18 Jb Evain <jbevain@novell.com>
207 * Mono.Linker/ResolutionException.cs:
208 Mono.Linker.Steps/MarkStep.cs:
209 Throw a resolution exception when a metadata item
210 can not be resolved in external assemblies.
212 * Mono.Linker/AssemblyResolver.cs:
213 Use the assembly name only as a key for the
216 2007-07-05 Jb Evain <jbevain@novell.com>
218 * Mono.Linker/Driver.cs
219 Mono.Linker/Pipeline.cs:
220 Add a way to install steps in the pipeline
223 2007-07-03 Jb Evain <jbevain@novell.com>
225 * Mono.Linker/Driver.cs:
226 Add support for @files
228 * Mono.Linker/Driver.cs:
229 Add a way to add search directories to the resolver.
231 2007-06-18 Jb Evain <jbevain@novell.com>
233 * Mono.Linker.Steps/MarkStep.cs:
234 Mark generic parameter constraints.
236 * Mono.Linker.Steps/MarkStep.cs:
237 Mark modifiers of modtype.
239 2007-06-15 Jb Evain <jbevain@novell.com>
241 * Mono.Linker/Driver.cs,
242 Mono.Linker/I18nAssemblies.cs,
243 Mono.Linker.Steps/LoadI18nAssemblies.cs:
244 Copy the i18n assemblies when running Mono.
246 * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
247 Mono.Linker/Annotations.cs,
248 Mono.Linker/LinkContext.cs,
249 Mono.Linker.Steps/ResolveFromXmlStep.cs:
250 Clean up the assembly reference system.
251 Fixes bug where the linker have multiple
252 time the same assembly in its cache.
254 2007-06-13 Jb Evain <jbevain@novell.com>
256 * Mono.Linker.Steps/OutputStep.cs:
257 Copy .config files alongs with assemblies.
259 * Mono.Linker.Steps/CleanStep.cs:
260 Clean memberref that are not used anymore.
262 2007-06-12 Jb Evain <jbevain@novell.com>
264 * Mono.Linker.Steps/AdjustVisibilityStep.cs,
265 Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
266 Mono.Linker/Drivers.cs:
267 Adjust the visibility depending on the data
268 gathered in the api-info.
270 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
271 Mono.Linker/Driver.cs:
272 Started working on linking from api-info.
274 2007-06-08 Jb Evain <jbevain@novell.com>
276 * Descriptors/System.Drawing.xml,
277 Mono.Linker.Steps/BlackListStep.cs:
278 Add preserve infos for System.Drawing.
280 * Mono.Linker.Steps/MarkStep.cs:
281 Tests/TestsCases/Linker/Generics/*:
282 Also walk through generic instances to
285 2007-06-07 Jb Evain <jbevain@novell.com>
287 * Mono.Linker.Steps/MarkStep.cs:
288 Mark types used in some marshal specs.
290 * Mono.Linker.Tests/MarkStep.cs
291 Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
292 Tests/TestCases/Linker/ReferenceInAttributes/*:
293 Mark fields and setters used in custom attribute
294 instantiation. Mark also types used in custom attribute
299 Add a small profiler that outputs the xml format
300 that the linker can resolve.
302 By running an application with the profiler, one
303 can help the linker gather data. Especially for dynamic
304 cases like assembly loading an dynamic type resolving.
306 2007-06-06 Jb Evain <jbevain@novell.com>
308 * Mono.Linker.Steps/MarkStep.cs:
309 Mono.Linker/CustomResolvercs:
310 Try to find types in custom attributes to mark them.
312 * Mono.Linker.Steps/MarkStep.cs:
313 Mark default constructor for serializable types.
314 Mark the special serialization constructor as well.
316 * Mono.Linker/LinkContext.cs:
317 Mono.Linker.Steps/LoadReferences.cs:
318 Use the name of the assembly as a key
319 instead of the fullname.
321 * Mono.Linker/CustomResolver.cs:
322 When a method is not found, go down
323 the class hierarchy to find it.
325 2007-06-05 Jb Evain <jbevain@novell.com>
327 * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
328 Tests/TestCases/Integration/*
330 Start the integration tests.
332 2007-06-04 Jb Evain <jbevain@novell.com>
334 * Mono.Linker.Steps/MarkStep.cs
335 Mark the custom attributes on the assemblies
338 * Mono.Linker.Steps/ResolveFromXmlStep.cs
339 Descriptors/corlib.xml:
340 Preserve the whole S.S.Crypto namespace.
342 * rename back from mink to monolinker.
344 2007-06-01 Jb Evain <jbevain@novell.com>
346 * configure, config.make, mink.in: added
348 * AUTHORS, MIT.X11, man/mink.1: added
350 2007-05-31 Jb Evain <jbevain@novell.com>
353 monolinker.exe.sources: moved to mink.exe.sources
354 Makefile, Mono.Linker.csproj: emit a mink.exe
356 * Mono.Linker/LinkContext.cs:
357 A resolved assembly is not always the one requested,
360 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
361 Mono.Linker.Steps/OutputStep.cs
362 Mono.Linker.Steps/LoadReferencesStep.cs
363 Mono.Linker.Steps/CleanStep.cs
364 Mono.Linker.Steps/ResolveFromAssemblyStep.cs
365 Mono.Linker.Steps/SweepStep.cs
366 Mono.Linker.Steps/BlacklistStep.cs
367 Mono.Linker.Steps/MarkStep.cs
368 Mono.Linker.Steps/BaseStep.cs
370 Mono.Linker/Driver.cs:
371 Add a new abstract BaseStep to be extends by most
373 Add a new LoadReferences step to force all referenced
374 assemblies to be resolved before the mark step.
376 * Mono.Linker/CustomResolver.cs
377 Mono.Linker/LinkContext.cs:
378 Register entry assembly.
380 2007-05-30 Jb Evain <jbevain@novell.com>
382 * Mono.Linker/MarkStep.cs:
383 Fix regression: do not mark GenericParameters that are
384 part of a typespec, like T[] or T*.
386 2007-05-28 Jb Evain <jbevain@novell.com>
388 * Big refactoring. Get rid of the markers, use the annotations
391 * Mono.Linker/Marker.cs
392 Mono.Linker/MarkStep.cs
393 Mono.Linker/SweepStep.cs:
394 Use annotations to mark wether or not we should
397 2007-05-23 Jb Evain <jbevain@novell.com>
399 * Mono.Limker/CleanStep.cs:
400 Stop doing hackish stupid things because
401 Cecil suddenly handles MemberRef much better.
403 2007-05-19 Jb Evain <jb@nurv.fr>
405 * Mono.Linker/ResolveFromXmlStep.cs
406 Mono.Linker/AssemblyMarker.cs
407 Mono.Linker/MarkStep.cs
408 Mono.Linker/ResolveFromAssemblyStep.cs:
409 Process correctly the marker selected in the resolve phases.
411 2007-05-17 Jb Evain <jb@nurv.fr>
413 * Mono.Linker/CleanStep.cs
414 Mono.Linker/SweepStep.cs
415 Mono.Linker/MarkStep.cs:
416 Link only when necessary.
418 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
419 Tests/Mono.Linker.Tests/AbstractTestFixture.cs
421 Mono.Linker/ResolveFromXmlStep.cs
422 Mono.Linker/AssemblyMarker.cs
423 Mono.Linker/Marker.cs
424 Mono.Linker/MarkStep.cs
425 Mono.Linker/TypePreserve.cs
426 Mono.Linker/Pipeline.cs:
427 Deal with preserve and required infos, make last test pass.
429 * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
430 Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
431 Tests/TestCases/Linker/PreserveFieldsRequired
432 Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
433 Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
434 Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
435 Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
436 Add a new (failing for now) test case for preserve and required.
438 2007-05-16 Jb Evain <jb@nurv.fr>
440 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
442 Mono.Linker/CoreAction.cs
443 Mono.Linker/Driver.cs
444 Mono.Linker/LinkContext.cs:
445 Simplify the command line options.
447 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
449 Mono.Linker/CleanStep.cs
450 Mono.Linker/ResolveFromXmlStep.cs
451 Mono.Linker/Driver.cs
452 Mono.Linker/OutputStep.cs
453 Mono.Linker/ResolveFromAssemblyStep.cs
454 Mono.Linker/LinkContext.cs
455 Mono.Linker/BlacklistStep.cs
456 Mono.Linker/Pipeline.cs:
457 Working on black list support.
459 * Descriptors/corlib.xml
460 Descriptors/system.xml
461 Descriptors/system.web.xml:
462 First audit of the core.
464 2007-04-23 Jb Evain <jb@nurv.fr>
466 * Mono.Linker/CleanStep.cs:
467 Clean some special cases of MemberRef.
469 2007-03-19 Jb Evain <jbevain@gmail.com>
471 * Fix a bug when an assembly references two
472 versions of an assembly with the same name.
473 * do some refactorings
475 2007-03-16 Jb Evain <jbevain@gmail.com>
477 * rename linker.exe to monolinker.exe
479 2006-11-08 Jb Evain <jbevain@gmail.com>
481 * Mono.Linker/AssemblyMarker.cs:
482 Fix a bug in method resolution.
483 * Mono.Linker/Driver.cs:
484 Fix a bug in assembly action processing.
486 2006-11-02 Jb Evain <jbevain@gmail.com>
488 * check-in patches adapted from contributions by:
489 Alex Prudkiy <prudkiy@mail.ru>
491 2006-08-21 Jb Evain <jbevain@gmail.com>
493 * mark types used within the runtime
495 2006-08-20 Jb Evain <jbevain@gmail.com>
497 * mark the custom attributes from the assemblies, modules and
500 * mark the methods used by an event
502 * mark the custom attributes on the properties and the events
505 * preserve the fields of the value types
507 * clean also nested types in a proper way.
509 * clean events as well
511 2006-08-17 Jb Evain <jbevain@gmail.com>
515 2006-08-16 Jb Evain <jbevain@gmail.com>
517 * work on generics assemblies linking
519 * use the resolver from Cecil.
521 * when marking a type, also mark its virtual methods
523 2006-08-15 Jb Evain <jbevain@gmail.com>
527 * mark interfaces as well
529 * work in progress + unit tests.
531 2006-07-27 Jb Evain <jbevain@gmail.com>
533 * begin work on the sweep step.
535 2006-07-20 Jb Evain <jbevain@gmail.com>
538 draft implementation of the mark phase of the linker.