**** Merged from MCS ****
[mono-project.git] / mcs / class / PEAPI / ChangeLog
blobb2f20d6a283e0f503a4c7f36548bbe47f36e1529
1 2004-07-29  Martin Baulig  <martin@ximian.com>
3         * PEAPI.cs (Module.Guid): New public property.
5 2004-07-27  Martin Baulig  <martin@ximian.com>
7         * PEAPI.cs (CILInstructions.Offset): New public property.
9 2004-07-23  Jackson Harper  <jackson@ximian.com>
11         * PEAPI.cs: Make the type index modifiable so ClassRefInsts will
12         be emitted properly. This is in desperate need of some API love.
13         
14 2004-07-21  Jackson Harper  <jackson@ximian.com>
16         * PEAPI.cs: Do all the index size checks. I always wondered why
17         the code was like that and finally realized today that it was like
18         that because it was wrong. Wait until the opportune momement to
19         calculate the index sizes (after everything has been added to the
20         streams, and before writing anything).
21         
22 2004-07-21  Jackson Harper  <jackson@ximian.com>
24         * PEAPI.cs: Create ClassRefInsts with types not just
25         ClassRefs. This way modified types can be used. I am having alot
26         of trouble remembering why I actually even need this class though.
27         
28 2004-07-16  Jackson Harper  <jackson@ximian.com>
30         * PEAPI.cs: make sure small index sizes get set properly. Use a
31         continue to reduce nesting a little and make code almost mildly
32         readable. Add MDTable.Field to the list of tables that can
33         increase the CustomAttributeType shift. TODO: What else should be
34         here?
35         
36 2004-07-13  Jackson Harper  <jackson@ximian.com>
38         * PEAPI.cs: Use a byte array hash code provider and comprarer, so
39         checking the byte hashtable for duplicate entries actually
40         works. Old method was valid but created larger then needed binaries.
41         
42 2004-07-09  Jackson Harper  <jackson@ximian.com>
44         * PEAPI.cs: Don't build custom attributes twice.
45         
46 2004-07-08  Jackson Harper  <jackson@ximian.com>
48         * PEAPI.cs: Add custom attributes through the pefile so that we
49         can ensure they are emitted no matter what table they are
50         in. Previously not all custom attributes were getting emitted.
51         
52 2004-06-26  Jackson Harper  <jackson@ximian.com>
54         * PEAPI.cs: Add a method to set the fields list. This is needed so
55         that sequentially laid out fields are laid out in the right
56         order. When building custom attribute tables actually emit the
57         custom attribute data. When writing the .sdata section make sure
58         to pad to its size. The constants itself will not make up the
59         entire section because it is aligned on 512 byte blocks.
60         
61 2004-06-19  Jackson Harper  <jackson@ximian.com>
63         * PEAPI.cs: Make sure the sentinel is placed properly for vararg
64         method pointers.
65         
66 2004-06-19  Jackson Harper  <jackson@ximian.com>
68         * PEAPI.cs: Allow MethPtrTypes to be created from a signature
69         instead of from a method reference because it really doesn't make
70         sense to do it that way ;-).
71         
72 2004-06-14  Jackson Harper  <jackson@ximian.com>
74         * PEAPI.cs: Add IExternRef interface and modify sigs so it can be
75         used. So we can easily add stuff to modules and assemblies. Fix
76         the nometadata flag, it should be set when there is NO metadata
77         not when there is metadata.
78         
79 2004-06-14  Jackson Harper  <jackson@ximian.com>
81         * PEAPI.cs: Add new constructor so we can explicitly set the
82         module name.
83         
84 2004-06-03  Jackson Harper  <jackson@ximian.com>
86         * PEAPI.cs: Do not null terminate byte arrays when writing to the
87         blob stream.
88         
89 2004-05-25  Jackson Harper  <jackson@ximian.com>
91         * PEAPI.cs: When writing to the blob heap we always set a size.
92         
93 2004-05-25  Jackson Harper  <jackson@ximian.com>
95         * PEAPI.cs: Set the has default flag on fields when a default data
96         constant is assigned to them.
97         
98 2004-05-25  Jackson Harper  <jackson@ximian.com>
100         * PEAPI.cs: Encode string constants as unicode before putting them
101         in the blob.
102         
103 2004-05-25  Jackson Harper  <jackson@ximian.com>
105         * PEAPI.cs: zero RVAs for abstract, runtime, and internal call
106         methods.
107         
108 2004-04-30  Duncan Mak  <duncan@ximian.com>
110         * PEAPI.dll.sources: Added Assembly/AssemblyInfo.cs and 
111         Locale.cs to build.
113 2004-04-02  Jackson Harper  <jackson@ximian.com>
115         * PEAPI.cs: Allow hash algorithms to be any integer.
116         
117 2004-02-18  Jackson Harper <jackson@ximian.com>
119         * PEAPI.cs: Add a class for creating instances of class refs, this
120         is used for setting the class or valuetype of a types instance so the class
121         reference isn't modified. Allows things like 'valuetype [mscorlib]System.Object'.
122         
123 2003-11-18 Jackson Harper <jackson@ximian.com>
125         * PEAPI.cs: If the data length for a methods seh section is
126         greater then 255 use fat format headers.
127         
128 2003-11-17 Jackson Harper <jackson@ximian.com>
130         * PEAPI.cs: Allow strings to be loaded as bytearrays.
131         
132 2003-10-19 Jackson Harper <jackson@ximian.com>
134         * PEAPI.cs: Use bytes not bits for constant sizes.
135         
136 2003-10-18 Jackson Harper <jackson@ximian.com>
138         * PEAPI.cs: Add proper support for short instructions, removing
139         PEAPI's auto selection of short/long branch operations feature.
140         
141 2003-10-10 Jackson Harper <jackson@ximian.com>
143         * PEAPI.cs: New GenericMethodSig class for creating generic method
144         signatures. Use this class instead of GenericTypeInst for creating
145         generic methods. Fix Generic call conv. according to two of my
146         docs it is 0x10 and only one says 0x50 so I will go with 0x10.
147         
148 2003-10-09 Jackson Harper <jackson@ximian.com>
150         * PEAPI.cs: Add generic method Mvar type. Add MethodSpec table,
151         and an Api method for adding methods to the methodspec table.
152         
153 2003-10-08 Jackson Harper <jackson@ximian.com>
155         * PEAPI.cs: Remove some old hacks for adding methods to arrays,
156         typespecs are used for this now. Add Generic call conv.
157         
158 2003-10-08 Jackson Harper <jackson@ximian.com>
160         * PEAPI.cs: Remove methods for creating generic parameters without
161         a name, names are mandatory. Add method to add type parameters to
162         methods. Allow GenericParameters to have either a type or a
163         method as its owner. Also fix visibility of GenericParameters, a
164         GenericParameter should not be created outside of PEAPI.
165         
166 2003-10-07 Jackson Harper <jackson@ximian.com>
168         * PEAPI.cs: Add unbox.any instruction.
169         
170 2003-09-27 Jackson Harper <jackson@latitudegeo.com>
172         * PEAPI.cs: Fix pinvoke attributes, zero a methods RVA if it has
173         pinvoke info. This isn't entirely correct because native unmanaged
174         methods can have pinvoke info and not have 0 RVAs PEAPI can't
175         handle native unmanged code though. Expose the ModuleClass so
176         'global' items can be referenced like this '<Module>'::foo.
177         
178 2003-09-21 Jackson Harper <jackson@latitudegeo.com>
180         * PEAPI.cs: sigh, sometimes it is best to calculate variables
181         before using them. This fixes PEAPI creating broken images when
182         the sdata section is used.
183         
184 2003-09-20 Jackson Harper <jackson@latitudegeo.com>
186         * PEAPI.cs: Rework to allow multiple constraints to be added to a
187         single generic parameter.
188         
189 2003-08-19 Jackson Harper <jackson@latitudegeo.com>
191         * PEAPI.cs: Make no super method public so we can have types
192         with no super type.
193         
194 2003-08-03 Jackson Harper <jackson@latitudegeo.com>
196         * PEAPI.cs: New Sentinel type.
197         
198 2003-08-03 Jackson Harper <jackson@latitudegeo.com>
200         * PEAPI.cs: Only give method definitions 0 RVAs if they are
201         marked abstract.
202         
203 2003-08-03 Jackson Harper <jackson@latitudegeo.com>
205         * PEAPI.cs: Offsets are not explicit offsets, they are just
206         byte offsets from the current position.
208 2003-07-29 Jackson Harper <jackson@latitudegeo.com>
210         * PEAPI.cs: Allow labels to be created with an explicit offset
211         
212 Fri Jul 25 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
214         * PEAPI.cs: added coded index for the owner field in the GenericParam
215         table.
217 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
219         * PEAPI.cs: Add methods to PEFile to allow fields and methods to
220         be added to type specs. This fixing bah-zillions of little
221         problems in ilasm. We can now add fields and methods to arrays,
222         reference types, and most importantly generics.
224         Add the GenericTypeInst class. This is an instance of a generic
225         type. ie Hash<int32, string>. GenericTypeSpecs now write their id
226         number as a compressed number, this matches the way the runtime
227         loads them and will allow generic types to have more then 255 type
228         parameters.
229         
230 2003-07-17 Jackson Harper <jackson@latitudegeo.com>
232         * PEAPI.cs: Add GenericTypeSpec so generic members can be
233         referenced. Add the ldelem and stelem opcodes (these are part of
234         the new spec).
235         
236 2003-07-15 Jackson Harper <jackson@latitudegeo.com>
238         * PEAPI.cs: Allow generic constraints to be added, emit generic
239         constraints.
240                 
241 2003-07-14 Jackson Harper <jackson@latitudegeo.com>
243         * PEAPI.cs: Cleanup methods for generics, now that constraints and
244         params are seperated.
245                 
246 2003-05-31 Jackson Harper <jackson@latitudegeo.com>
248         * PEAPI.cs: Initial work on implementing custom
249         attributes. Attributes can now be added to ClassDefs and
250         MethodDefs. Still need to implement for other metadata elements.
251         Added the stele.r4 and stelem.r8 instructions, this should also
252         shift the stelem.ref instruction to the proper value (0xA2)
253                 
254 2003-05-25 Jackson Harper <jackson@latitudegeo.com>
256         * PEAPI.cs: Create a list of vararg signatures and add them all to
257         tables. this allows more then one vararg signature to be created
258         per method.
259                 
260 2003-05-18 Jackson Harper <jackson@latitudegeo.com>
262         * PEAPI.cs: Add methods to allow methods to be added to arrays.
263                 
264 2003-05-11 Jackson Harper <jackson@latitudegeo.com>
266         * PEAPI.cs: The class size in class layout metadata table is a
267         uint not a short.
268                 
269 2003-04-05 Jackson Harper <jackson@latitudegeo.com>
271         * PEAPI.cs: Add indexes to GenericParameters, make string index
272         always a full 4 bytes.
273                 
274 2003-04-05 Jackson Harper <jackson@latitudegeo.com>
276         * PEAPI.cs: Add GenericParameter table, and method to add generic
277         parameters.
278                 
279 2003-03-15 Daniel Morgan <danmorg@sc.rr.com>
281         * PEAPI.build: added file for windows build
283 2003-03-06 Jackson Harper <jackson@latitudegeo.com>
285         * PEAPI.cs: (ImplAttr) Add Optil implementation flag (not supported 
286         in first release of CLR)
287         (Class) And Name property
289 2003-03-06 Jackson Harper <jackson@latitudegeo.com>
291         * makefile.gnu: Add file
292         * list.unix: Add file
294 2003-03-02 Jackson Harper <jackson@latitudegeo.com>
296         * PEAPI.cs: Do not add file extensions to output names
297         
298 2003-03-02 Jackson Harper <jackson@latitudegeo.com>
300         * PEAPI.cs: Add file
301         * README.txt: Add file