2007-07-03 Jonathan Chambers <joncham@gmail.com>
[mono.git] / mcs / tools / linker / ChangeLog
1 2007-07-25  Jb Evain  <jbevain@novell.com>
2
3         * Mono.Linker.Steps/ResolveFromAssemblyStep.cs:
4                 When linking from an executable, it's possible
5                 to reduce the executable as well.
6
7 2007-07-23  Jb Evain  <jbevain@novell.com>
8
9         * Mono.Linker/Driver.cs
10           Mono.Linker/LinkContext.cs:
11                 Allow one to specify the action to apply to an assembly
12                 from the command line.
13
14 2007-07-22  Jb Evain  <jbevain@novell.com>
15
16         * Mono.Linker/LinkContext.cs:
17                 If no file found with -a, try to resolve it.
18
19         * Mono.Linker/Driver.cs
20           Mono.Linker/Pipeline.cs:
21                 Adjust the visibility only once, even with multiple -i.
22
23 2007-07-21  Jb Evain  <jbevain@novell.com>
24
25         * Mono.Linker.Steps/SweepStep.cs:
26                 Sweep memberrefs along with the typerefs.
27
28 2007-07-20  Jb Evain  <jbevain@novell.com>
29
30         * Mono.Linker.Steps/AdjustVisibilityStep.cs:
31                 Don't change the visibility of the members if the type
32                 is marked internal.
33
34 2007-07-18  Jb Evain  <jbevain@novell.com>
35
36         * Mono.Linker/ResolutionException.cs:
37           Mono.Linker.Steps/MarkStep.cs:
38                 Throw a resolution exception when a metadata item
39                 can not be resolved in external assemblies.
40
41         * Mono.Linker/AssemblyResolver.cs:
42                 Use the assembly name only as a key for the
43                 assembly cache.
44
45 2007-07-05  Jb Evain  <jbevain@novell.com>
46
47         * Mono.Linker/Driver.cs
48           Mono.Linker/Pipeline.cs:
49                 Add a way to install steps in the pipeline
50                 from the outside.
51
52 2007-07-03  Jb Evain  <jbevain@novell.com>
53
54         * Mono.Linker/Driver.cs:
55                 Add support for @files
56
57         * Mono.Linker/Driver.cs:
58                 Add a way to add search directories to the resolver.
59
60 2007-06-18  Jb Evain  <jbevain@novell.com>
61
62         * Mono.Linker.Steps/MarkStep.cs:
63                 Mark generic parameter constraints.
64
65         * Mono.Linker.Steps/MarkStep.cs:
66                 Mark modifiers of modtype.
67
68 2007-06-15  Jb Evain  <jbevain@novell.com>
69
70         * Mono.Linker/Driver.cs,
71           Mono.Linker/I18nAssemblies.cs,
72           Mono.Linker.Steps/LoadI18nAssemblies.cs:
73                 Copy the i18n assemblies when running Mono.
74
75         * Mono.Linker/CustomResolver.cs => AssemblyResolver.cs,
76           Mono.Linker/Annotations.cs,
77           Mono.Linker/LinkContext.cs,
78           Mono.Linker.Steps/ResolveFromXmlStep.cs:
79                 Clean up the assembly reference system.
80                 Fixes bug where the linker have multiple
81                 time the same assembly in its cache.
82
83 2007-06-13  Jb Evain  <jbevain@novell.com>
84
85         * Mono.Linker.Steps/OutputStep.cs:
86                 Copy .config files alongs with assemblies.
87
88         * Mono.Linker.Steps/CleanStep.cs:
89                 Clean memberref that are not used anymore.
90
91 2007-06-12  Jb Evain  <jbevain@novell.com>
92
93         * Mono.Linker.Steps/AdjustVisibilityStep.cs,
94           Mono.Linker.Steps/ResolveFromApiInfoStep.cs,
95           Mono.Linker/Drivers.cs:
96                 Adjust the visibility depending on the data
97                 gathered in the api-info.
98
99         * Mono.Linker.Steps/ResolveFromApiInfoStep.cs:
100           Mono.Linker/Driver.cs:
101                 Started working on linking from api-info.
102
103 2007-06-08  Jb Evain  <jbevain@novell.com>
104
105         * Descriptors/System.Drawing.xml,
106           Mono.Linker.Steps/BlackListStep.cs:
107                 Add preserve infos for System.Drawing.
108
109         * Mono.Linker.Steps/MarkStep.cs:
110           Tests/TestsCases/Linker/Generics/*:
111                 Also walk through generic instances to
112                 mark arguments.
113
114 2007-06-07  Jb Evain  <jbevain@novell.com>
115
116         * Mono.Linker.Steps/MarkStep.cs:
117                 Mark types used in some marshal specs.
118
119         * Mono.Linker.Tests/MarkStep.cs
120           Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
121           Tests/TestCases/Linker/ReferenceInAttributes/*:
122                 Mark fields and setters used in custom attribute
123                 instantiation. Mark also types used in custom attribute
124                 instantiation.
125
126         * profiler/Makefile,
127           profiler/link.c:
128                 Add a small profiler that outputs the xml format
129                 that the linker can resolve.
130
131                 By running an application with the profiler, one
132                 can help the linker gather data. Especially for dynamic
133                 cases like assembly loading an dynamic type resolving.
134
135 2007-06-06  Jb Evain  <jbevain@novell.com>
136
137         * Mono.Linker.Steps/MarkStep.cs:
138           Mono.Linker/CustomResolvercs:
139                 Try to find types in custom attributes to mark them.
140
141         * Mono.Linker.Steps/MarkStep.cs:
142                 Mark default constructor for serializable types.
143                 Mark the special serialization constructor as well.
144
145         * Mono.Linker/LinkContext.cs:
146           Mono.Linker.Steps/LoadReferences.cs:
147                 Use the name of the assembly as a key
148                 instead of the fullname.
149
150         * Mono.Linker/CustomResolver.cs:
151                 When a method is not found, go down
152                 the class hierarchy to find it.
153
154 2007-06-05  Jb Evain  <jbevain@novell.com>
155
156         * Tests/Mono.Linker.Tests/IntegrationTestFixture.cs:
157           Tests/TestCases/Integration/*
158           Tests/Makefile:
159                 Start the integration tests.
160
161 2007-06-04  Jb Evain  <jbevain@novell.com>
162
163         * Mono.Linker.Steps/MarkStep.cs
164                 Mark the custom attributes on the assemblies
165                 on initialize.
166
167         * Mono.Linker.Steps/ResolveFromXmlStep.cs
168           Descriptors/corlib.xml:
169                 Preserve the whole S.S.Crypto namespace.
170
171         * rename back from mink to monolinker.
172
173 2007-06-01  Jb Evain  <jbevain@novell.com>
174
175         * configure, config.make, mink.in: added
176
177         * AUTHORS, MIT.X11, man/mink.1: added
178
179 2007-05-31  Jb Evain  <jbevain@novell.com>
180
181         * README: added
182           monolinker.exe.sources: moved to mink.exe.sources
183           Makefile, Mono.Linker.csproj: emit a mink.exe
184
185         * Mono.Linker/LinkContext.cs:
186                 A resolved assembly is not always the one requested,
187                 cache the good name.
188
189         * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
190           Mono.Linker.Steps/OutputStep.cs
191           Mono.Linker.Steps/LoadReferencesStep.cs
192           Mono.Linker.Steps/CleanStep.cs
193           Mono.Linker.Steps/ResolveFromAssemblyStep.cs
194           Mono.Linker.Steps/SweepStep.cs
195           Mono.Linker.Steps/BlacklistStep.cs
196           Mono.Linker.Steps/MarkStep.cs
197           Mono.Linker.Steps/BaseStep.cs
198           Mono.Linker.csproj
199           Mono.Linker/Driver.cs:
200                 Add a new abstract BaseStep to be extends by most
201                 of the steps.
202                 Add a new LoadReferences step to force all referenced
203                 assemblies to be resolved before the mark step.
204
205         * Mono.Linker/CustomResolver.cs
206           Mono.Linker/LinkContext.cs:
207                 Register entry assembly.
208
209 2007-05-30  Jb Evain  <jbevain@novell.com>
210
211         * Mono.Linker/MarkStep.cs:
212                 Fix regression: do not mark GenericParameters that are
213                 part of a typespec, like T[] or T*.
214
215 2007-05-28  Jb Evain  <jbevain@novell.com>
216
217         * Big refactoring. Get rid of the markers, use the annotations
218                 of Cecil instead.
219
220         * Mono.Linker/Marker.cs
221           Mono.Linker/MarkStep.cs
222           Mono.Linker/SweepStep.cs:
223                 Use annotations to mark wether or not we should
224                 sweep an item.
225
226 2007-05-23  Jb Evain  <jbevain@novell.com>
227
228         * Mono.Limker/CleanStep.cs:
229                 Stop doing hackish stupid things because
230                 Cecil suddenly handles MemberRef much better.
231
232 2007-05-19  Jb Evain  <jb@nurv.fr>
233
234         * Mono.Linker/ResolveFromXmlStep.cs
235           Mono.Linker/AssemblyMarker.cs
236           Mono.Linker/MarkStep.cs
237           Mono.Linker/ResolveFromAssemblyStep.cs:
238                 Process correctly the marker selected in the resolve phases.
239
240 2007-05-17  Jb Evain  <jb@nurv.fr>
241
242         * Mono.Linker/CleanStep.cs
243           Mono.Linker/SweepStep.cs
244           Mono.Linker/MarkStep.cs:
245                 Link only when necessary.
246
247         * Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
248           Tests/Mono.Linker.Tests/AbstractTestFixture.cs
249           Mono.Linker.csproj
250           Mono.Linker/ResolveFromXmlStep.cs
251           Mono.Linker/AssemblyMarker.cs
252           Mono.Linker/Marker.cs
253           Mono.Linker/MarkStep.cs
254           Mono.Linker/TypePreserve.cs
255           Mono.Linker/Pipeline.cs:
256                 Deal with preserve and required infos, make last test pass.
257
258         * Tests/Mono.Linker.Tests/XmlLinkingTestFixture.cs
259           Tests/Mono.Linker.Tests/AbstractLinkingTestFixture.cs
260           Tests/TestCases/Linker/PreserveFieldsRequired
261           Tests/TestCases/Linker/PreserveFieldsRequired/Library.cs
262           Tests/TestCases/Linker/PreserveFieldsRequired/desc.xml
263           Tests/TestCases/Linker/PreserveFieldsRequired/Makefile
264           Tests/TestCases/Linker/PreserveFieldsRequired/Library.dll:
265                 Add a new (failing for now) test case for preserve and required.
266
267 2007-05-16  Jb Evain  <jb@nurv.fr>
268
269         * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
270           Mono.Linker.csproj
271           Mono.Linker/CoreAction.cs
272           Mono.Linker/Driver.cs
273           Mono.Linker/LinkContext.cs:
274                 Simplify the command line options.
275
276         * Tests/Mono.Linker.Tests/AbstractTestFixture.cs
277           Mono.Linker.csproj
278           Mono.Linker/CleanStep.cs
279           Mono.Linker/ResolveFromXmlStep.cs
280           Mono.Linker/Driver.cs
281           Mono.Linker/OutputStep.cs
282           Mono.Linker/ResolveFromAssemblyStep.cs
283           Mono.Linker/LinkContext.cs
284           Mono.Linker/BlacklistStep.cs
285           Mono.Linker/Pipeline.cs:
286                 Working on black list support.
287
288         * Descriptors/corlib.xml
289           Descriptors/system.xml
290           Descriptors/system.web.xml:
291                 First audit of the core.
292
293 2007-04-23  Jb Evain  <jb@nurv.fr>
294
295         * Mono.Linker/CleanStep.cs:
296                 Clean some special cases of MemberRef.
297
298 2007-03-19  Jb Evain  <jbevain@gmail.com>
299
300         * Fix a bug when an assembly references two
301         versions of an assembly with the same name.
302         * do some refactorings
303
304 2007-03-16  Jb Evain  <jbevain@gmail.com>
305
306         * rename linker.exe to monolinker.exe
307
308 2006-11-08  Jb Evain  <jbevain@gmail.com>
309
310         * Mono.Linker/AssemblyMarker.cs:
311                 Fix a bug in method resolution.
312         * Mono.Linker/Driver.cs:
313                 Fix a bug in assembly action processing.
314
315 2006-11-02  Jb Evain  <jbevain@gmail.com>
316
317         * check-in patches adapted from contributions by:
318                 Alex Prudkiy <prudkiy@mail.ru>
319
320 2006-08-21  Jb Evain  <jbevain@gmail.com>
321
322         * mark types used within the runtime
323
324 2006-08-20  Jb Evain  <jbevain@gmail.com>
325
326         * mark the custom attributes from the assemblies, modules and
327                 generic parameters
328
329         * mark the methods used by an event
330
331         * mark the custom attributes on the properties and the events
332                 which are used.
333
334         * preserve the fields of the value types
335
336         * clean also nested types in a proper way.
337
338         * clean events as well
339
340 2006-08-17  Jb Evain  <jbevain@gmail.com>
341
342         * provide a Makefile
343
344 2006-08-16  Jb Evain  <jbevain@gmail.com>
345
346         * work on generics assemblies linking
347
348         * use the resolver from Cecil.
349
350         * when marking a type, also mark its virtual methods
351
352 2006-08-15  Jb Evain  <jbevain@gmail.com>
353
354         * clean properties
355
356         * mark interfaces as well
357
358         * work in progress + unit tests.
359
360 2006-07-27  Jb Evain  <jbevain@gmail.com>
361
362         * begin work on the sweep step.
363
364 2006-07-20  Jb Evain  <jbevain@gmail.com>
365
366         * very first commit.
367           draft implementation of the mark phase of the linker.