1 2008-12-16 Jb Evain <jbevain@novell.com>
3 * Makefile: build monolinker.exe in the profile directory instead of
6 2008-12-02 Jb Evain <jbevain@novell.com>
8 * Mono.Linker/AssemblyResolver.cs (AreSame(TypeReference,TypeReference):
9 fix the case where we compare two GenericInstanceType of the same
10 element type with different generic arguments.
12 2008-11-24 Jb Evain <jbevain@novell.com>
14 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs
15 * Mono.Linker.Steps/ResolveFromXmlStep.cs
16 * Mono.Linker.Steps/MarkStep.cs:
17 generalize the use of the new Has* pattern in Cecil
18 to avoid unecessary allocations. Also cache delegates.
20 2008-09-12 Jb Evain <jbevain@novell.com>
22 * Mono.Linker/Pipeline.cs: add a RemoveStep method.
23 * Mono.Linker/Driver.cs: make the linker generate new
24 module guids by default.
26 2008-09-12 Jb Evain <jbevain@novell.com>
28 * Mono.Linker.Steps/RegenerateGuidStep.cs: new step that is used
29 to regenerate the Mvid identifier of each linked module.
31 * monolinker.exe.sources:
32 * Mono.Linker.csproj: add RegeneratedGuidStep to the build.
34 * Mono.Linker/Driver.cs: add a -g option to control whether to
35 regenerate the modules identifier or not.
37 2008-09-01 Jb Evain <jbevain@novell.com>
39 * Mono.Linker/AssemblyResolver.cs: properly cache .exes.
41 2008-08-26 Zoltan Varga <vargaz@gmail.com>
43 * Descriptors/mscorlib.xml: Add EntryPointNotFoundException.
45 2008-03-28 Jb Evain <jbevain@novell.com>
47 * Mono.Linker/XApiReader.cs: deal better with complex names.
49 2008-03-28 Jb Evain <jbevain@novell.com>
51 * Mono.Linker/LinkContext.cs: do not force the loading of
52 debug symbols if not asked.
54 2007-12-28 Gert Driesen <drieseng@users.sourceforge.net>
56 * Descriptors/mscorlib.xml: Preserve all for CultureInfo to prevent
57 linker from removing CreateCulture method that is only used by the
60 2007-11-21 Jb Evain <jbevain@novell.com>
62 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
63 Implement resolving from xml patterns.
65 2007-10-25 Jb Evain <jbevain@novell.com>
67 * monolinker.exe.sources
68 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs
69 * Mono.Linker/Driver.cs
70 * Mono.Linker/XApiReader.cs
71 * Mono.Linker/ApiInfoService.cs
72 * Mono.Linker/IXApiVisitor.cs:
74 Big refactoring. Move logic to read Xml Api Info files
75 to XApiReader, so we can use that in the tuner to deal
76 with xapi files to inject attributes.
78 2007-08-27 Jb Evain <jbevain@novell.com>
80 * Mono.Linker/Driver.cs
81 Mono.Linker/Annotations.cs
82 Mono.Linker/LinkContext.cs
83 Mono.Linker.Steps/OutputStep.cs:
84 Implement symbols loading/saving.
86 2007-08-16 Jb Evain <jbevain@novell.com>
88 * Mono.Linker/Driver.cs
89 Mono.Linker/LinkContext.cs:
90 Add a way to specify parameters to the context.
92 2007-08-05 Jb Evain <jbevain@novell.com>
94 * Mono.Linker.Steps/ResolveFromXmlStep.cs:
95 Now the resolver deals only with assembly names
98 2007-07-25 Jb Evain <jbevain@novell.com>
100 * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
101 When linking from an executable, it's possible
102 to reduce the executable as well.
104 2007-07-23 Jb Evain <jbevain@novell.com>
106 * Mono.Linker/Driver.cs
107 Mono.Linker/LinkContext.cs:
108 Allow one to specify the action to apply to an assembly
109 from the command line.
111 2007-07-22 Jb Evain <jbevain@novell.com>
113 * Mono.Linker/LinkContext.cs:
114 If no file found with -a, try to resolve it.
116 * Mono.Linker/Driver.cs
117 Mono.Linker/Pipeline.cs:
118 Adjust the visibility only once, even with multiple -i.
120 2007-07-21 Jb Evain <jbevain@novell.com>
122 * Mono.Linker.Steps/SweepStep.cs:
123 Sweep memberrefs along with the typerefs.
125 2007-07-20 Jb Evain <jbevain@novell.com>
127 * Mono.Linker.Steps/AdjustVisibilityStep.cs:
128 Don't change the visibility of the members if the type
131 2007-07-18 Jb Evain <jbevain@novell.com>
133 * Mono.Linker/ResolutionException.cs:
134 Mono.Linker.Steps/MarkStep.cs:
135 Throw a resolution exception when a metadata item
136 can not be resolved in external assemblies.
138 * Mono.Linker/AssemblyResolver.cs:
139 Use the assembly name only as a key for the
142 2007-07-05 Jb Evain <jbevain@novell.com>
144 * Mono.Linker/Driver.cs
145 Mono.Linker/Pipeline.cs:
146 Add a way to install steps in the pipeline
149 2007-07-03 Jb Evain <jbevain@novell.com>
151 * Mono.Linker/Driver.cs:
152 Add support for @files
154 * Mono.Linker/Driver.cs:
155 Add a way to add search directories to the resolver.
157 2007-06-18 Jb Evain <jbevain@novell.com>
159 * Mono.Linker.Steps/MarkStep.cs:
160 Mark generic parameter constraints.
162 * Mono.Linker.Steps/MarkStep.cs:
163 Mark modifiers of modtype.
165 2007-06-15 Jb Evain <jbevain@novell.com>
167 * Mono.Linker/Driver.cs,
168 Mono.Linker/I18nAssemblies.cs,
169 Mono.Linker.Steps/LoadI18nAssemblies.cs:
170 Copy the i18n assemblies when running Mono.
172 * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
173 Mono.Linker/Annotations.cs,
174 Mono.Linker/LinkContext.cs,
175 Mono.Linker.Steps/ResolveFromXmlStep.cs:
176 Clean up the assembly reference system.
177 Fixes bug where the linker have multiple
178 time the same assembly in its cache.
180 2007-06-13 Jb Evain <jbevain@novell.com>
182 * Mono.Linker.Steps/OutputStep.cs:
183 Copy .config files alongs with assemblies.
185 * Mono.Linker.Steps/CleanStep.cs:
186 Clean memberref that are not used anymore.
188 2007-06-12 Jb Evain <jbevain@novell.com>
190 * Mono.Linker.Steps/AdjustVisibilityStep.cs,
191 Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
192 Mono.Linker/Drivers.cs:
193 Adjust the visibility depending on the data
194 gathered in the api-info.
196 * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
197 Mono.Linker/Driver.cs:
198 Started working on linking from api-info.
200 2007-06-08 Jb Evain <jbevain@novell.com>
202 * Descriptors/System.Drawing.xml,
203 Mono.Linker.Steps/BlackListStep.cs:
204 Add preserve infos for System.Drawing.
206 * Mono.Linker.Steps/MarkStep.cs:
207 Tests/TestsCases/Linker/Generics/*:
208 Also walk through generic instances to
211 2007-06-07 Jb Evain <jbevain@novell.com>
213 * Mono.Linker.Steps/MarkStep.cs:
214 Mark types used in some marshal specs.
216 * Mono.Linker.Tests/MarkStep.cs
217 Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
218 Tests/TestCases/Linker/ReferenceInAttributes/*:
219 Mark fields and setters used in custom attribute
220 instantiation. Mark also types used in custom attribute
225 Add a small profiler that outputs the xml format
226 that the linker can resolve.
228 By running an application with the profiler, one
229 can help the linker gather data. Especially for dynamic
230 cases like assembly loading an dynamic type resolving.
232 2007-06-06 Jb Evain <jbevain@novell.com>
234 * Mono.Linker.Steps/MarkStep.cs:
235 Mono.Linker/CustomResolvercs:
236 Try to find types in custom attributes to mark them.
238 * Mono.Linker.Steps/MarkStep.cs:
239 Mark default constructor for serializable types.
240 Mark the special serialization constructor as well.
242 * Mono.Linker/LinkContext.cs:
243 Mono.Linker.Steps/LoadReferences.cs:
244 Use the name of the assembly as a key
245 instead of the fullname.
247 * Mono.Linker/CustomResolver.cs:
248 When a method is not found, go down
249 the class hierarchy to find it.
251 2007-06-05 Jb Evain <jbevain@novell.com>
253 * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
254 Tests/TestCases/Integration/*
256 Start the integration tests.
258 2007-06-04 Jb Evain <jbevain@novell.com>
260 * Mono.Linker.Steps/MarkStep.cs
261 Mark the custom attributes on the assemblies
264 * Mono.Linker.Steps/ResolveFromXmlStep.cs
265 Descriptors/corlib.xml:
266 Preserve the whole S.S.Crypto namespace.
268 * rename back from mink to monolinker.
270 2007-06-01 Jb Evain <jbevain@novell.com>
272 * configure, config.make, mink.in: added
274 * AUTHORS, MIT.X11, man/mink.1: added
276 2007-05-31 Jb Evain <jbevain@novell.com>
279 monolinker.exe.sources: moved to mink.exe.sources
280 Makefile, Mono.Linker.csproj: emit a mink.exe
282 * Mono.Linker/LinkContext.cs:
283 A resolved assembly is not always the one requested,
286 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
287 Mono.Linker.Steps/OutputStep.cs
288 Mono.Linker.Steps/LoadReferencesStep.cs
289 Mono.Linker.Steps/CleanStep.cs
290 Mono.Linker.Steps/ResolveFromAssemblyStep.cs
291 Mono.Linker.Steps/SweepStep.cs
292 Mono.Linker.Steps/BlacklistStep.cs
293 Mono.Linker.Steps/MarkStep.cs
294 Mono.Linker.Steps/BaseStep.cs
296 Mono.Linker/Driver.cs:
297 Add a new abstract BaseStep to be extends by most
299 Add a new LoadReferences step to force all referenced
300 assemblies to be resolved before the mark step.
302 * Mono.Linker/CustomResolver.cs
303 Mono.Linker/LinkContext.cs:
304 Register entry assembly.
306 2007-05-30 Jb Evain <jbevain@novell.com>
308 * Mono.Linker/MarkStep.cs:
309 Fix regression: do not mark GenericParameters that are
310 part of a typespec, like T[] or T*.
312 2007-05-28 Jb Evain <jbevain@novell.com>
314 * Big refactoring. Get rid of the markers, use the annotations
317 * Mono.Linker/Marker.cs
318 Mono.Linker/MarkStep.cs
319 Mono.Linker/SweepStep.cs:
320 Use annotations to mark wether or not we should
323 2007-05-23 Jb Evain <jbevain@novell.com>
325 * Mono.Limker/CleanStep.cs:
326 Stop doing hackish stupid things because
327 Cecil suddenly handles MemberRef much better.
329 2007-05-19 Jb Evain <jb@nurv.fr>
331 * Mono.Linker/ResolveFromXmlStep.cs
332 Mono.Linker/AssemblyMarker.cs
333 Mono.Linker/MarkStep.cs
334 Mono.Linker/ResolveFromAssemblyStep.cs:
335 Process correctly the marker selected in the resolve phases.
337 2007-05-17 Jb Evain <jb@nurv.fr>
339 * Mono.Linker/CleanStep.cs
340 Mono.Linker/SweepStep.cs
341 Mono.Linker/MarkStep.cs:
342 Link only when necessary.
344 * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
345 Tests/Mono.Linker.Tests/AbstractTestFixture.cs
347 Mono.Linker/ResolveFromXmlStep.cs
348 Mono.Linker/AssemblyMarker.cs
349 Mono.Linker/Marker.cs
350 Mono.Linker/MarkStep.cs
351 Mono.Linker/TypePreserve.cs
352 Mono.Linker/Pipeline.cs:
353 Deal with preserve and required infos, make last test pass.
355 * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
356 Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
357 Tests/TestCases/Linker/PreserveFieldsRequired
358 Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
359 Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
360 Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
361 Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
362 Add a new (failing for now) test case for preserve and required.
364 2007-05-16 Jb Evain <jb@nurv.fr>
366 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
368 Mono.Linker/CoreAction.cs
369 Mono.Linker/Driver.cs
370 Mono.Linker/LinkContext.cs:
371 Simplify the command line options.
373 * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
375 Mono.Linker/CleanStep.cs
376 Mono.Linker/ResolveFromXmlStep.cs
377 Mono.Linker/Driver.cs
378 Mono.Linker/OutputStep.cs
379 Mono.Linker/ResolveFromAssemblyStep.cs
380 Mono.Linker/LinkContext.cs
381 Mono.Linker/BlacklistStep.cs
382 Mono.Linker/Pipeline.cs:
383 Working on black list support.
385 * Descriptors/corlib.xml
386 Descriptors/system.xml
387 Descriptors/system.web.xml:
388 First audit of the core.
390 2007-04-23 Jb Evain <jb@nurv.fr>
392 * Mono.Linker/CleanStep.cs:
393 Clean some special cases of MemberRef.
395 2007-03-19 Jb Evain <jbevain@gmail.com>
397 * Fix a bug when an assembly references two
398 versions of an assembly with the same name.
399 * do some refactorings
401 2007-03-16 Jb Evain <jbevain@gmail.com>
403 * rename linker.exe to monolinker.exe
405 2006-11-08 Jb Evain <jbevain@gmail.com>
407 * Mono.Linker/AssemblyMarker.cs:
408 Fix a bug in method resolution.
409 * Mono.Linker/Driver.cs:
410 Fix a bug in assembly action processing.
412 2006-11-02 Jb Evain <jbevain@gmail.com>
414 * check-in patches adapted from contributions by:
415 Alex Prudkiy <prudkiy@mail.ru>
417 2006-08-21 Jb Evain <jbevain@gmail.com>
419 * mark types used within the runtime
421 2006-08-20 Jb Evain <jbevain@gmail.com>
423 * mark the custom attributes from the assemblies, modules and
426 * mark the methods used by an event
428 * mark the custom attributes on the properties and the events
431 * preserve the fields of the value types
433 * clean also nested types in a proper way.
435 * clean events as well
437 2006-08-17 Jb Evain <jbevain@gmail.com>
441 2006-08-16 Jb Evain <jbevain@gmail.com>
443 * work on generics assemblies linking
445 * use the resolver from Cecil.
447 * when marking a type, also mark its virtual methods
449 2006-08-15 Jb Evain <jbevain@gmail.com>
453 * mark interfaces as well
455 * work in progress + unit tests.
457 2006-07-27 Jb Evain <jbevain@gmail.com>
459 * begin work on the sweep step.
461 2006-07-20 Jb Evain <jbevain@gmail.com>
464 draft implementation of the mark phase of the linker.