1 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
3 * Mono.Linker.Steps/BaseStep.cs: New virtual API needed.
5 * Mono.Linker/Pipeline.cs: API love.
7 2009-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
9 * Mono.Linker.csproj: Update.
11 * Mono.Linker/Driver.cs: Prevent InvalidCastException.
13 2009-06-05 Jb Evain <jbevain@novell.com>
15 * Mono.Linker.Steps/MarkStep.cs: fix a nre.
16 Based on patch by Andres G. Aragoneses <aaragoneses@novell.com>.
18 2009-06-05 Jb Evain <jbevain@novell.com>
20 * Mono.Linker.Steps/ResolveFromXmlStep.cs: more ways of choosing fields.
22 2009-06-05 Jb Evain <jbevain@novell.com>
24 * Mono.Linker.Steps/ResolveFromXmlStep.cs: give us more
25 possibilities to detail the xml descriptors.
27 2009-06-04 Jb Evain <jbevain@novell.com>
29 * Mono.Linker.Steps/ResolveFromXmlStep.cs: fix handling
30 of wildcards constructors.
32 2009-04-23 Andrés G. Aragoneses <aaragoneses@novell.com>
34 * Mono.Linker/Driver.cs: Report error and exit if it cannot
35 resolve some type (useful to avoid an ugly TypeLoadException
36 when specifying an erroneus custom step).
38 2009-04-21 Andrés G. Aragoneses <aaragoneses@novell.com>
40 * Driver.cs: Postprocess custom steps in order to make them
41 able to find steps determined by the resolve method. Fixes
44 2009-04-08 Andrés G. Aragoneses <aaragoneses@novell.com>
46 * Mono.Linker.csproj: Update.
48 2009-02-18 Jb Evain <jbevain@novell.com>
50 * Mono.Linker/XApiService.cs: delete, unused.
51 * Mono.Linker/Driver.cs: don't use the uneeded XApiService anymore.
53 2009-01-28 Jb Evain <jbevain@novell.com>
55 * Mono.Linker/AssemblyResolver.cs
56 Mono.Linker.Steps/MarkStep.cs:
57 Directly use the Resolve methods from Cecil.
59 2008-12-16 Jb Evain <jbevain@novell.com>
61 * Makefile: build monolinker.exe in the profile directory instead of
64 2008-12-02 Jb Evain <jbevain@novell.com>
66 * Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
67 fix the case where we compare two GenericInstanceType of the same
68 element type with different generic arguments.
70 2008-11-24 Jb Evain <jbevain@novell.com>
72 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
73 * Mono.Linker.Steps/ResolveFromXmlStep.cs
74 * Mono.Linker.Steps/MarkStep.cs:
75 generalize the use of the new Has* pattern in Cecil
76 to avoid unecessary allocations. Also cache delegates.
78 2008-09-12 Jb Evain <jbevain@novell.com>
80 * Mono.Linker/Pipeline.cs: add a RemoveStep method.
81 * Mono.Linker/Driver.cs: make the linker generate new
82 module guids by default.
84 2008-09-12 Jb Evain <jbevain@novell.com>
86 * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
87 to regenerate the Mvid identifier of each linked module.
89 * monolinker.exe.sources:
90 * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
92 * Mono.Linker/Driver.cs: add a -g option to control whether to
93 regenerate the modules identifier or not.
95 2008-09-01 Jb Evain <jbevain@novell.com>
97 * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
99 2008-08-26 Zoltan Varga <vargaz@gmail.com>
101 * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
103 2008-03-28 Jb Evain <jbevain@novell.com>
105 * Mono.Linker/XApiReader.cs: deal better with complex names.
107 2008-03-28 Jb Evain <jbevain@novell.com>
109 * Mono.Linker/LinkContext.cs: do not force the loading of
110 debug symbols if not asked.
112 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
114 * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
115 linker from removing CreateCulture method that is only used by the
118 2007-11-21 Jb Evain <jbevain@novell.com>
120 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
121 Implement resolving from xml patterns.
123 2007-10-25 Jb Evain <jbevain@novell.com>
125 * monolinker.exe.sources
126 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs
127 * Mono.Linker/Driver.cs
128 * Mono.Linker/XApiReader.cs
129 * Mono.Linker/ApiInfoService.cs
130 * Mono.Linker/IXApiVisitor.cs:
132 Big refactoring. Move logic to read Xml Api Info files
133 to XApiReader, so we can use that in the tuner to deal
134 with xapi files to inject attributes.
136 2007-08-27 Jb Evain <jbevain@novell.com>
138 * Mono.Linker/Driver.cs
139 Mono.Linker/Annotations.cs
140 Mono.Linker/LinkContext.cs
141 Mono.Linker.Steps/OutputStep.cs:
142 Implement symbols loading/saving.
144 2007-08-16 Jb Evain <jbevain@novell.com>
146 * Mono.Linker/Driver.cs
147 Mono.Linker/LinkContext.cs:
148 Add a way to specify parameters to the context.
150 2007-08-05 Jb Evain <jbevain@novell.com>
152 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
153 Now the resolver deals only with assembly names
154 instead of fullnames.
156 2007-07-25 Jb Evain <jbevain@novell.com>
158 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
159 When linking from an executable, it's possible
160 to reduce the executable as well.
162 2007-07-23 Jb Evain <jbevain@novell.com>
164 * Mono.Linker/Driver.cs
165 Mono.Linker/LinkContext.cs:
166 Allow one to specify the action to apply to an assembly
167 from the command line.
169 2007-07-22 Jb Evain <jbevain@novell.com>
171 * Mono.Linker/LinkContext.cs:
172 If no file found with -a, try to resolve it.
174 * Mono.Linker/Driver.cs
175 Mono.Linker/Pipeline.cs:
176 Adjust the visibility only once, even with multiple -i.
178 2007-07-21 Jb Evain <jbevain@novell.com>
180 * Mono.Linker.Steps/SweepStep.cs:
181 Sweep memberrefs along with the typerefs.
183 2007-07-20 Jb Evain <jbevain@novell.com>
185 * Mono.Linker.Steps/AdjustVisibilityStep.cs:
186 Don't change the visibility of the members if the type
189 2007-07-18 Jb Evain <jbevain@novell.com>
191 * Mono.Linker/ResolutionException.cs:
192 Mono.Linker.Steps/MarkStep.cs:
193 Throw a resolution exception when a metadata item
194 can not be resolved in external assemblies.
196 * Mono.Linker/AssemblyResolver.cs:
197 Use the assembly name only as a key for the
200 2007-07-05 Jb Evain <jbevain@novell.com>
202 * Mono.Linker/Driver.cs
203 Mono.Linker/Pipeline.cs:
204 Add a way to install steps in the pipeline
207 2007-07-03 Jb Evain <jbevain@novell.com>
209 * Mono.Linker/Driver.cs:
210 Add support for @files
212 * Mono.Linker/Driver.cs:
213 Add a way to add search directories to the resolver.
215 2007-06-18 Jb Evain <jbevain@novell.com>
217 * Mono.Linker.Steps/MarkStep.cs:
218 Mark generic parameter constraints.
220 * Mono.Linker.Steps/MarkStep.cs:
221 Mark modifiers of modtype.
223 2007-06-15 Jb Evain <jbevain@novell.com>
225 * Mono.Linker/Driver.cs,
226 Mono.Linker/I18nAssemblies.cs,
227 Mono.Linker.Steps/LoadI18nAssemblies.cs:
228 Copy the i18n assemblies when running Mono.
230 * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
231 Mono.Linker/Annotations.cs,
232 Mono.Linker/LinkContext.cs,
233 Mono.Linker.Steps/ResolveFromXmlStep.cs:
234 Clean up the assembly reference system.
235 Fixes bug where the linker have multiple
236 time the same assembly in its cache.
238 2007-06-13 Jb Evain <jbevain@novell.com>
240 * Mono.Linker.Steps/OutputStep.cs:
241 Copy .config files alongs with assemblies.
243 * Mono.Linker.Steps/CleanStep.cs:
244 Clean memberref that are not used anymore.
246 2007-06-12 Jb Evain <jbevain@novell.com>
248 * Mono.Linker.Steps/AdjustVisibilityStep.cs,
249 Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
250 Mono.Linker/Drivers.cs:
251 Adjust the visibility depending on the data
252 gathered in the api-info.
254 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
255 Mono.Linker/Driver.cs:
256 Started working on linking from api-info.
258 2007-06-08 Jb Evain <jbevain@novell.com>
260 * Descriptors/System.Drawing.xml,
261 Mono.Linker.Steps/BlackListStep.cs:
262 Add preserve infos for System.Drawing.
264 * Mono.Linker.Steps/MarkStep.cs:
265 Tests/TestsCases/Linker/Generics/*:
266 Also walk through generic instances to
269 2007-06-07 Jb Evain <jbevain@novell.com>
271 * Mono.Linker.Steps/MarkStep.cs:
272 Mark types used in some marshal specs.
274 * Mono.Linker.Tests/MarkStep.cs
275 Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
276 Tests/TestCases/Linker/ReferenceInAttributes/*:
277 Mark fields and setters used in custom attribute
278 instantiation. Mark also types used in custom attribute
283 Add a small profiler that outputs the xml format
284 that the linker can resolve.
286 By running an application with the profiler, one
287 can help the linker gather data. Especially for dynamic
288 cases like assembly loading an dynamic type resolving.
290 2007-06-06 Jb Evain <jbevain@novell.com>
292 * Mono.Linker.Steps/MarkStep.cs:
293 Mono.Linker/CustomResolvercs:
294 Try to find types in custom attributes to mark them.
296 * Mono.Linker.Steps/MarkStep.cs:
297 Mark default constructor for serializable types.
298 Mark the special serialization constructor as well.
300 * Mono.Linker/LinkContext.cs:
301 Mono.Linker.Steps/LoadReferences.cs:
302 Use the name of the assembly as a key
303 instead of the fullname.
305 * Mono.Linker/CustomResolver.cs:
306 When a method is not found, go down
307 the class hierarchy to find it.
309 2007-06-05 Jb Evain <jbevain@novell.com>
311 * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
312 Tests/TestCases/Integration/*
314 Start the integration tests.
316 2007-06-04 Jb Evain <jbevain@novell.com>
318 * Mono.Linker.Steps/MarkStep.cs
319 Mark the custom attributes on the assemblies
322 * Mono.Linker.Steps/ResolveFromXmlStep.cs
323 Descriptors/corlib.xml:
324 Preserve the whole S.S.Crypto namespace.
326 * rename back from mink to monolinker.
328 2007-06-01 Jb Evain <jbevain@novell.com>
330 * configure, config.make, mink.in: added
332 * AUTHORS, MIT.X11, man/mink.1: added
334 2007-05-31 Jb Evain <jbevain@novell.com>
337 monolinker.exe.sources: moved to mink.exe.sources
338 Makefile, Mono.Linker.csproj: emit a mink.exe
340 * Mono.Linker/LinkContext.cs:
341 A resolved assembly is not always the one requested,
344 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
345 Mono.Linker.Steps/OutputStep.cs
346 Mono.Linker.Steps/LoadReferencesStep.cs
347 Mono.Linker.Steps/CleanStep.cs
348 Mono.Linker.Steps/ResolveFromAssemblyStep.cs
349 Mono.Linker.Steps/SweepStep.cs
350 Mono.Linker.Steps/BlacklistStep.cs
351 Mono.Linker.Steps/MarkStep.cs
352 Mono.Linker.Steps/BaseStep.cs
354 Mono.Linker/Driver.cs:
355 Add a new abstract BaseStep to be extends by most
357 Add a new LoadReferences step to force all referenced
358 assemblies to be resolved before the mark step.
360 * Mono.Linker/CustomResolver.cs
361 Mono.Linker/LinkContext.cs:
362 Register entry assembly.
364 2007-05-30 Jb Evain <jbevain@novell.com>
366 * Mono.Linker/MarkStep.cs:
367 Fix regression: do not mark GenericParameters that are
368 part of a typespec, like T[] or T*.
370 2007-05-28 Jb Evain <jbevain@novell.com>
372 * Big refactoring. Get rid of the markers, use the annotations
375 * Mono.Linker/Marker.cs
376 Mono.Linker/MarkStep.cs
377 Mono.Linker/SweepStep.cs:
378 Use annotations to mark wether or not we should
381 2007-05-23 Jb Evain <jbevain@novell.com>
383 * Mono.Limker/CleanStep.cs:
384 Stop doing hackish stupid things because
385 Cecil suddenly handles MemberRef much better.
387 2007-05-19 Jb Evain <jb@nurv.fr>
389 * Mono.Linker/ResolveFromXmlStep.cs
390 Mono.Linker/AssemblyMarker.cs
391 Mono.Linker/MarkStep.cs
392 Mono.Linker/ResolveFromAssemblyStep.cs:
393 Process correctly the marker selected in the resolve phases.
395 2007-05-17 Jb Evain <jb@nurv.fr>
397 * Mono.Linker/CleanStep.cs
398 Mono.Linker/SweepStep.cs
399 Mono.Linker/MarkStep.cs:
400 Link only when necessary.
402 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
403 Tests/Mono.Linker.Tests/AbstractTestFixture.cs
405 Mono.Linker/ResolveFromXmlStep.cs
406 Mono.Linker/AssemblyMarker.cs
407 Mono.Linker/Marker.cs
408 Mono.Linker/MarkStep.cs
409 Mono.Linker/TypePreserve.cs
410 Mono.Linker/Pipeline.cs:
411 Deal with preserve and required infos, make last test pass.
413 * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
414 Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
415 Tests/TestCases/Linker/PreserveFieldsRequired
416 Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
417 Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
418 Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
419 Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
420 Add a new (failing for now) test case for preserve and required.
422 2007-05-16 Jb Evain <jb@nurv.fr>
424 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
426 Mono.Linker/CoreAction.cs
427 Mono.Linker/Driver.cs
428 Mono.Linker/LinkContext.cs:
429 Simplify the command line options.
431 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
433 Mono.Linker/CleanStep.cs
434 Mono.Linker/ResolveFromXmlStep.cs
435 Mono.Linker/Driver.cs
436 Mono.Linker/OutputStep.cs
437 Mono.Linker/ResolveFromAssemblyStep.cs
438 Mono.Linker/LinkContext.cs
439 Mono.Linker/BlacklistStep.cs
440 Mono.Linker/Pipeline.cs:
441 Working on black list support.
443 * Descriptors/corlib.xml
444 Descriptors/system.xml
445 Descriptors/system.web.xml:
446 First audit of the core.
448 2007-04-23 Jb Evain <jb@nurv.fr>
450 * Mono.Linker/CleanStep.cs:
451 Clean some special cases of MemberRef.
453 2007-03-19 Jb Evain <jbevain@gmail.com>
455 * Fix a bug when an assembly references two
456 versions of an assembly with the same name.
457 * do some refactorings
459 2007-03-16 Jb Evain <jbevain@gmail.com>
461 * rename linker.exe to monolinker.exe
463 2006-11-08 Jb Evain <jbevain@gmail.com>
465 * Mono.Linker/AssemblyMarker.cs:
466 Fix a bug in method resolution.
467 * Mono.Linker/Driver.cs:
468 Fix a bug in assembly action processing.
470 2006-11-02 Jb Evain <jbevain@gmail.com>
472 * check-in patches adapted from contributions by:
473 Alex Prudkiy <prudkiy@mail.ru>
475 2006-08-21 Jb Evain <jbevain@gmail.com>
477 * mark types used within the runtime
479 2006-08-20 Jb Evain <jbevain@gmail.com>
481 * mark the custom attributes from the assemblies, modules and
484 * mark the methods used by an event
486 * mark the custom attributes on the properties and the events
489 * preserve the fields of the value types
491 * clean also nested types in a proper way.
493 * clean events as well
495 2006-08-17 Jb Evain <jbevain@gmail.com>
499 2006-08-16 Jb Evain <jbevain@gmail.com>
501 * work on generics assemblies linking
503 * use the resolver from Cecil.
505 * when marking a type, also mark its virtual methods
507 2006-08-15 Jb Evain <jbevain@gmail.com>
511 * mark interfaces as well
513 * work in progress + unit tests.
515 2006-07-27 Jb Evain <jbevain@gmail.com>
517 * begin work on the sweep step.
519 2006-07-20 Jb Evain <jbevain@gmail.com>
522 draft implementation of the mark phase of the linker.