1 2009-07-02 Jb Evain <jbevain@novell.com>
3 * Makefile: fix cecil's location.
5 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
7 * Mono.Linker.Steps/BaseStep.cs: New virtual API needed.
9 * Mono.Linker/Pipeline.cs: API love.
11 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
13 * Mono.Linker.csproj: Update.
15 * Mono.Linker/Driver.cs: Prevent InvalidCastException.
17 2009-06-05 Jb Evain <jbevain@novell.com>
19 * Mono.Linker.Steps/MarkStep.cs: fix a nre.
20 Based on patch by Andres G. Aragoneses <aaragoneses@novell.com>.
22 2009-06-05 Jb Evain <jbevain@novell.com>
24 * Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.
26 2009-06-05 Jb Evain <jbevain@novell.com>
28 * Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
29 possibilities to detail the xml descriptors.
31 2009-06-04 Jb Evain <jbevain@novell.com>
33 * Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
34 of wildcards constructors.
36 2009-04-23 Andrés G. Aragoneses <aaragoneses@novell.com>
38 * Mono.Linker/Driver.cs: Report error and exit if it cannot
39 resolve some type (useful to avoid an ugly TypeLoadException
40 when specifying an erroneus custom step).
42 2009-04-21 Andrés G. Aragoneses <aaragoneses@novell.com>
44 * Driver.cs: Postprocess custom steps in order to make them
45 able to find steps determined by the resolve method. Fixes
48 2009-04-08 Andrés G. Aragoneses <aaragoneses@novell.com>
50 * Mono.Linker.csproj: Update.
52 2009-02-18 Jb Evain <jbevain@novell.com>
54 * Mono.Linker/XApiService.cs: delete, unused.
55 * Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.
57 2009-01-28 Jb Evain <jbevain@novell.com>
59 * Mono.Linker/AssemblyResolver.cs
60 Mono.Linker.Steps/MarkStep.cs:
61 Directly use the Resolve methods from Cecil.
63 2008-12-16 Jb Evain <jbevain@novell.com>
65 * Makefile: build monolinker.exe in the profile directory instead of
68 2008-12-02 Jb Evain <jbevain@novell.com>
70 * Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
71 fix the case where we compare two GenericInstanceType of the same
72 element type with different generic arguments.
74 2008-11-24 Jb Evain <jbevain@novell.com>
76 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
77 * Mono.Linker.Steps/ResolveFromXmlStep.cs
78 * Mono.Linker.Steps/MarkStep.cs:
79 generalize the use of the new Has* pattern in Cecil
80 to avoid unecessary allocations. Also cache delegates.
82 2008-09-12 Jb Evain <jbevain@novell.com>
84 * Mono.Linker/Pipeline.cs: add a RemoveStep method.
85 * Mono.Linker/Driver.cs: make the linker generate new
86 module guids by default.
88 2008-09-12 Jb Evain <jbevain@novell.com>
90 * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
91 to regenerate the Mvid identifier of each linked module.
93 * monolinker.exe.sources:
94 * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
96 * Mono.Linker/Driver.cs: add a -g option to control whether to
97 regenerate the modules identifier or not.
99 2008-09-01 Jb Evain <jbevain@novell.com>
101 * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
103 2008-08-26 Zoltan Varga <vargaz@gmail.com>
105 * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
107 2008-03-28 Jb Evain <jbevain@novell.com>
109 * Mono.Linker/XApiReader.cs: deal better with complex names.
111 2008-03-28 Jb Evain <jbevain@novell.com>
113 * Mono.Linker/LinkContext.cs: do not force the loading of
114 debug symbols if not asked.
116 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
118 * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
119 linker from removing CreateCulture method that is only used by the
122 2007-11-21 Jb Evain <jbevain@novell.com>
124 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
125 Implement resolving from xml patterns.
127 2007-10-25 Jb Evain <jbevain@novell.com>
129 * monolinker.exe.sources
130 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs
131 * Mono.Linker/Driver.cs
132 * Mono.Linker/XApiReader.cs
133 * Mono.Linker/ApiInfoService.cs
134 * Mono.Linker/IXApiVisitor.cs:
136 Big refactoring. Move logic to read Xml Api Info files
137 to XApiReader, so we can use that in the tuner to deal
138 with xapi files to inject attributes.
140 2007-08-27 Jb Evain <jbevain@novell.com>
142 * Mono.Linker/Driver.cs
143 Mono.Linker/Annotations.cs
144 Mono.Linker/LinkContext.cs
145 Mono.Linker.Steps/OutputStep.cs:
146 Implement symbols loading/saving.
148 2007-08-16 Jb Evain <jbevain@novell.com>
150 * Mono.Linker/Driver.cs
151 Mono.Linker/LinkContext.cs:
152 Add a way to specify parameters to the context.
154 2007-08-05 Jb Evain <jbevain@novell.com>
156 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
157 Now the resolver deals only with assembly names
158 instead of fullnames.
160 2007-07-25 Jb Evain <jbevain@novell.com>
162 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
163 When linking from an executable, it's possible
164 to reduce the executable as well.
166 2007-07-23 Jb Evain <jbevain@novell.com>
168 * Mono.Linker/Driver.cs
169 Mono.Linker/LinkContext.cs:
170 Allow one to specify the action to apply to an assembly
171 from the command line.
173 2007-07-22 Jb Evain <jbevain@novell.com>
175 * Mono.Linker/LinkContext.cs:
176 If no file found with -a, try to resolve it.
178 * Mono.Linker/Driver.cs
179 Mono.Linker/Pipeline.cs:
180 Adjust the visibility only once, even with multiple -i.
182 2007-07-21 Jb Evain <jbevain@novell.com>
184 * Mono.Linker.Steps/SweepStep.cs:
185 Sweep memberrefs along with the typerefs.
187 2007-07-20 Jb Evain <jbevain@novell.com>
189 * Mono.Linker.Steps/AdjustVisibilityStep.cs:
190 Don't change the visibility of the members if the type
193 2007-07-18 Jb Evain <jbevain@novell.com>
195 * Mono.Linker/ResolutionException.cs:
196 Mono.Linker.Steps/MarkStep.cs:
197 Throw a resolution exception when a metadata item
198 can not be resolved in external assemblies.
200 * Mono.Linker/AssemblyResolver.cs:
201 Use the assembly name only as a key for the
204 2007-07-05 Jb Evain <jbevain@novell.com>
206 * Mono.Linker/Driver.cs
207 Mono.Linker/Pipeline.cs:
208 Add a way to install steps in the pipeline
211 2007-07-03 Jb Evain <jbevain@novell.com>
213 * Mono.Linker/Driver.cs:
214 Add support for @files
216 * Mono.Linker/Driver.cs:
217 Add a way to add search directories to the resolver.
219 2007-06-18 Jb Evain <jbevain@novell.com>
221 * Mono.Linker.Steps/MarkStep.cs:
222 Mark generic parameter constraints.
224 * Mono.Linker.Steps/MarkStep.cs:
225 Mark modifiers of modtype.
227 2007-06-15 Jb Evain <jbevain@novell.com>
229 * Mono.Linker/Driver.cs,
230 Mono.Linker/I18nAssemblies.cs,
231 Mono.Linker.Steps/LoadI18nAssemblies.cs:
232 Copy the i18n assemblies when running Mono.
234 * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
235 Mono.Linker/Annotations.cs,
236 Mono.Linker/LinkContext.cs,
237 Mono.Linker.Steps/ResolveFromXmlStep.cs:
238 Clean up the assembly reference system.
239 Fixes bug where the linker have multiple
240 time the same assembly in its cache.
242 2007-06-13 Jb Evain <jbevain@novell.com>
244 * Mono.Linker.Steps/OutputStep.cs:
245 Copy .config files alongs with assemblies.
247 * Mono.Linker.Steps/CleanStep.cs:
248 Clean memberref that are not used anymore.
250 2007-06-12 Jb Evain <jbevain@novell.com>
252 * Mono.Linker.Steps/AdjustVisibilityStep.cs,
253 Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
254 Mono.Linker/Drivers.cs:
255 Adjust the visibility depending on the data
256 gathered in the api-info.
258 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
259 Mono.Linker/Driver.cs:
260 Started working on linking from api-info.
262 2007-06-08 Jb Evain <jbevain@novell.com>
264 * Descriptors/System.Drawing.xml,
265 Mono.Linker.Steps/BlackListStep.cs:
266 Add preserve infos for System.Drawing.
268 * Mono.Linker.Steps/MarkStep.cs:
269 Tests/TestsCases/Linker/Generics/*:
270 Also walk through generic instances to
273 2007-06-07 Jb Evain <jbevain@novell.com>
275 * Mono.Linker.Steps/MarkStep.cs:
276 Mark types used in some marshal specs.
278 * Mono.Linker.Tests/MarkStep.cs
279 Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
280 Tests/TestCases/Linker/ReferenceInAttributes/*:
281 Mark fields and setters used in custom attribute
282 instantiation. Mark also types used in custom attribute
287 Add a small profiler that outputs the xml format
288 that the linker can resolve.
290 By running an application with the profiler, one
291 can help the linker gather data. Especially for dynamic
292 cases like assembly loading an dynamic type resolving.
294 2007-06-06 Jb Evain <jbevain@novell.com>
296 * Mono.Linker.Steps/MarkStep.cs:
297 Mono.Linker/CustomResolvercs:
298 Try to find types in custom attributes to mark them.
300 * Mono.Linker.Steps/MarkStep.cs:
301 Mark default constructor for serializable types.
302 Mark the special serialization constructor as well.
304 * Mono.Linker/LinkContext.cs:
305 Mono.Linker.Steps/LoadReferences.cs:
306 Use the name of the assembly as a key
307 instead of the fullname.
309 * Mono.Linker/CustomResolver.cs:
310 When a method is not found, go down
311 the class hierarchy to find it.
313 2007-06-05 Jb Evain <jbevain@novell.com>
315 * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
316 Tests/TestCases/Integration/*
318 Start the integration tests.
320 2007-06-04 Jb Evain <jbevain@novell.com>
322 * Mono.Linker.Steps/MarkStep.cs
323 Mark the custom attributes on the assemblies
326 * Mono.Linker.Steps/ResolveFromXmlStep.cs
327 Descriptors/corlib.xml:
328 Preserve the whole S.S.Crypto namespace.
330 * rename back from mink to monolinker.
332 2007-06-01 Jb Evain <jbevain@novell.com>
334 * configure, config.make, mink.in: added
336 * AUTHORS, MIT.X11, man/mink.1: added
338 2007-05-31 Jb Evain <jbevain@novell.com>
341 monolinker.exe.sources: moved to mink.exe.sources
342 Makefile, Mono.Linker.csproj: emit a mink.exe
344 * Mono.Linker/LinkContext.cs:
345 A resolved assembly is not always the one requested,
348 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
349 Mono.Linker.Steps/OutputStep.cs
350 Mono.Linker.Steps/LoadReferencesStep.cs
351 Mono.Linker.Steps/CleanStep.cs
352 Mono.Linker.Steps/ResolveFromAssemblyStep.cs
353 Mono.Linker.Steps/SweepStep.cs
354 Mono.Linker.Steps/BlacklistStep.cs
355 Mono.Linker.Steps/MarkStep.cs
356 Mono.Linker.Steps/BaseStep.cs
358 Mono.Linker/Driver.cs:
359 Add a new abstract BaseStep to be extends by most
361 Add a new LoadReferences step to force all referenced
362 assemblies to be resolved before the mark step.
364 * Mono.Linker/CustomResolver.cs
365 Mono.Linker/LinkContext.cs:
366 Register entry assembly.
368 2007-05-30 Jb Evain <jbevain@novell.com>
370 * Mono.Linker/MarkStep.cs:
371 Fix regression: do not mark GenericParameters that are
372 part of a typespec, like T[] or T*.
374 2007-05-28 Jb Evain <jbevain@novell.com>
376 * Big refactoring. Get rid of the markers, use the annotations
379 * Mono.Linker/Marker.cs
380 Mono.Linker/MarkStep.cs
381 Mono.Linker/SweepStep.cs:
382 Use annotations to mark wether or not we should
385 2007-05-23 Jb Evain <jbevain@novell.com>
387 * Mono.Limker/CleanStep.cs:
388 Stop doing hackish stupid things because
389 Cecil suddenly handles MemberRef much better.
391 2007-05-19 Jb Evain <jb@nurv.fr>
393 * Mono.Linker/ResolveFromXmlStep.cs
394 Mono.Linker/AssemblyMarker.cs
395 Mono.Linker/MarkStep.cs
396 Mono.Linker/ResolveFromAssemblyStep.cs:
397 Process correctly the marker selected in the resolve phases.
399 2007-05-17 Jb Evain <jb@nurv.fr>
401 * Mono.Linker/CleanStep.cs
402 Mono.Linker/SweepStep.cs
403 Mono.Linker/MarkStep.cs:
404 Link only when necessary.
406 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
407 Tests/Mono.Linker.Tests/AbstractTestFixture.cs
409 Mono.Linker/ResolveFromXmlStep.cs
410 Mono.Linker/AssemblyMarker.cs
411 Mono.Linker/Marker.cs
412 Mono.Linker/MarkStep.cs
413 Mono.Linker/TypePreserve.cs
414 Mono.Linker/Pipeline.cs:
415 Deal with preserve and required infos, make last test pass.
417 * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
418 Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
419 Tests/TestCases/Linker/PreserveFieldsRequired
420 Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
421 Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
422 Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
423 Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
424 Add a new (failing for now) test case for preserve and required.
426 2007-05-16 Jb Evain <jb@nurv.fr>
428 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
430 Mono.Linker/CoreAction.cs
431 Mono.Linker/Driver.cs
432 Mono.Linker/LinkContext.cs:
433 Simplify the command line options.
435 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
437 Mono.Linker/CleanStep.cs
438 Mono.Linker/ResolveFromXmlStep.cs
439 Mono.Linker/Driver.cs
440 Mono.Linker/OutputStep.cs
441 Mono.Linker/ResolveFromAssemblyStep.cs
442 Mono.Linker/LinkContext.cs
443 Mono.Linker/BlacklistStep.cs
444 Mono.Linker/Pipeline.cs:
445 Working on black list support.
447 * Descriptors/corlib.xml
448 Descriptors/system.xml
449 Descriptors/system.web.xml:
450 First audit of the core.
452 2007-04-23 Jb Evain <jb@nurv.fr>
454 * Mono.Linker/CleanStep.cs:
455 Clean some special cases of MemberRef.
457 2007-03-19 Jb Evain <jbevain@gmail.com>
459 * Fix a bug when an assembly references two
460 versions of an assembly with the same name.
461 * do some refactorings
463 2007-03-16 Jb Evain <jbevain@gmail.com>
465 * rename linker.exe to monolinker.exe
467 2006-11-08 Jb Evain <jbevain@gmail.com>
469 * Mono.Linker/AssemblyMarker.cs:
470 Fix a bug in method resolution.
471 * Mono.Linker/Driver.cs:
472 Fix a bug in assembly action processing.
474 2006-11-02 Jb Evain <jbevain@gmail.com>
476 * check-in patches adapted from contributions by:
477 Alex Prudkiy <prudkiy@mail.ru>
479 2006-08-21 Jb Evain <jbevain@gmail.com>
481 * mark types used within the runtime
483 2006-08-20 Jb Evain <jbevain@gmail.com>
485 * mark the custom attributes from the assemblies, modules and
488 * mark the methods used by an event
490 * mark the custom attributes on the properties and the events
493 * preserve the fields of the value types
495 * clean also nested types in a proper way.
497 * clean events as well
499 2006-08-17 Jb Evain <jbevain@gmail.com>
503 2006-08-16 Jb Evain <jbevain@gmail.com>
505 * work on generics assemblies linking
507 * use the resolver from Cecil.
509 * when marking a type, also mark its virtual methods
511 2006-08-15 Jb Evain <jbevain@gmail.com>
515 * mark interfaces as well
517 * work in progress + unit tests.
519 2006-07-27 Jb Evain <jbevain@gmail.com>
521 * begin work on the sweep step.
523 2006-07-20 Jb Evain <jbevain@gmail.com>
526 draft implementation of the mark phase of the linker.