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