bcc5824da42f9e4543473b3cda43842118b409e2
[mono.git] / mcs / class / PEAPI / ChangeLog
1 2009-03-31  Rodrigo Kumpera  <rkumpera@novell.com>
2
3         * Code.cs (CILLabel): Add new constructor to signal that
4         a label is an absolute il offset. This is required by exception
5         handling declarations that use offsets and not labels.
6
7 2008-06-02  Ankit Jain  <jankit@novell.com>
8
9         Fix bug #367114.
10         * Code.cs (TryBlock.ResolveCatchBlocks): New.
11         (CILInstructions.AddTryBlock): Resolve the catch blocks with the new
12         method.
13         (Catch..ctor): Add new .ctor to allow exceptions of any type.
14         (Catch.ResolveType): New. Add the exception type to the metadata.
15
16 2008-04-07  Rodrigo Kumpera  <rkumpera@novell.com>
17
18         * Code.cs: Removed Local::TypeSig() as it is not needed
19         for the previous patch.
20
21 2008-04-07  Erven Rohou <erven.rohou@st.com>
22
23         * Code.cs: Add new method: GetLocalVars() for ilasm support for
24         emitting local variable names.
25
26 2007-11-05  Jackson Harper  <jackson@ximian.com>
27
28         * LICENSE: Add long lost file.
29
30 2006-11-09  Ankit Jain  <jankit@novell.com>
31
32         * Metadata.cs (AssemAttr.Retargetable): New.
33         (AssemblyRef.AddAssemblyAttr): New.
34
35 2006-07-20  Ankit Jain  <jankit@novell.com>
36
37         * Metadata.cs (CustomAttribute.BuildTables): Value can be null.
38
39 2006-06-07  Ankit Jain  <jankit@novell.com>
40
41         * PEAPI.cs (PEFile.GetNextSectStart): Handle the case when (tide %
42         SectionAlignment) == 0 . Patch by Carlo Kok. Fixes bug #78182.
43
44 2006-06-01  Ankit Jain  <jankit@novell.com>
45
46         * PEAPI.cs (PEFile.AddMethod): Add overload for return type as Param
47         instead of PEAPI.Type .
48         * Metadata.cs (MetaDataElement.HasCustomAttr): New. Temporary hack.
49         (Param.HasMarshalInfo): New.
50         (ClassDef.AddMethod): Add overload for return type as Param.
51         (MethodDef.ctor): Change internal .ctor's sig to take Param instead of
52         PEAPI.Type for return type.
53         (MethodDef.retType): Remove.
54         (MethodDef.TypeSig): Update to use ret_param always.
55         (MethodDef.BuildTables): Add ret_param to Param table only if it has
56         marshal info or custom attributes.
57
58 2006-05-26  Ankit Jain  <jankit@novell.com>
59
60         * Metadata.cs (DeclSecurity): Rename to .. 
61         (BaseDeclSecurity): .. this.
62         (DeclSecurity): New. Derive from BaseDeclSecurity.
63         (DeclSecurity_20): Likewise. For 2.0 style declaritive security.
64         (PermissionSet): New.
65         (Permission): New.
66         (PermissionMember): New.
67         (MetaData.AddDeclSecurity): Update to use BaseDeclSecurity.
68         (MetaData.BuildMetaData): Likewise.     
69                            
70         * PEAPI.cs (PEFile.AddDeclSecurity): New overload for new PermissionSet
71         class.
72
73 2006-05-10  Ankit Jain  <jankit@novell.com>
74
75         * Metadata.cs (NativeType): Add LPStruct and Error.
76
77 2006-04-24  Ankit Jain  <jankit@novell.com>
78
79         * PEAPI.cs (PEFile.WritePEFile): ReserveStrongNameSignatureSpace only if
80         we have assembly manifest.
81
82 2006-02-22  Ankit Jain  <jankit@novell.com>
83
84         * Metadata.cs (TypeAttr): Add [Flags] attribute.
85
86 2006-02-20  Ankit Jain  <jankit@novell.com>
87
88         * PEAPI.cs (PEFileException): Update error message.
89         * Metadata.cs: Update to throw PEFileException instead of Exception.     
90
91 2006-02-19  Ankit Jain  <jankit@novell.com>
92
93         * Metadata.cs (Module): Implment IExternRef to allow reference to types
94         in 'this' module.
95
96 2006-02-15  Raja R Harinath  <rharinath@novell.com>
97
98         * Metadata.cs (BoundArray.CompressSignedNum): Document the
99         transformation.  Avoid a few casts.
100
101 2006-02-15  Ankit Jain  <jankit@novell.com>
102
103         * Metadata.cs (BoundArray.CompressSignedNum): New. Encode signed values,
104         used only for encoding lower bounds of arrays.
105         (BoundArray.TypeSig): Use new CompressSignedNum to encode lower bounds.
106
107 2006-02-08  Ankit Jain  <jankit@novell.com>
108
109         * Metadata.cs (BoundArray.ctor): Change param 'upBounds' to sizes.
110         (MetaData.CompressNum): Fix range check.
111
112 2006-01-31  Ankit Jain  <jankit@novell.com>
113
114         * Metadata.cs (Op.readonly_): New.
115
116 2006-01-19  Ankit Jain  <jankit@novell.com>
117
118         * Metadata.cs (GenericParameter.GetCodedIx): Override. Return coded index
119         for HasCustomAttr.
120         (MetaData.BuildMetaData): Sort CustomAttribute table at the end.
121
122 2006-01-16  Ankit Jain  <jankit@novell.com>
123
124         * Metadata.cs (PInvokeAttr): Add 'bestfit_on', 'bestfit_off', 'bestfit_mask',
125         'charmaperror_on' & 'charmaperror_off'.
126
127 2006-01-13  Ankit Jain  <jankit@novell.com>
128
129         * Metadata.cs (GenericMethodSig): Ensure sig is added to the blob only once.
130
131 2006-01-10  Ankit Jain  <jankit@novell.com>
132
133         * Metadata.cs (GenParam): Don't use GetTypeSpec to create typespec for GenParam. 
134         Adding required methods directly to GenParam.
135         * PEAPI.cs (PEFile.AddGenericParam): Add it to the TypeSpec table directly.
136
137 2006-01-09  Ankit Jain  <jankit@novell.com>
138
139         * PEAPI.cs (PEFile.AddGenricParam): New. Adds a GenParam to the TypeSpec
140         table.
141         * Metadata.cs (GenParam): Inherit from 'Class' instead of 'Type'.
142         (GenParam.name): Rename to param_name as it hides Class.name .
143         (GenParam.GetTypeSpec): Override to create TypeSpec for genparam.
144
145 2006-01-08  Ankit Jain  <jankit@novell.com>
146
147         * Metadata.cs (TypeOp): Add 'constrained' op.
148
149 2006-01-07  Ankit Jain  <jankit@novell.com>
150
151         * Metadata.cs (GenericParamAttributes): New.
152         (MetaDataElement.Row): Always set value.
153         (GenericParameter): Update to use GenericParameterAttributes.
154         (GenericParameterConstraint.SortKey): New. override to support sorting.
155         (ClassDef.AddGenericParameter):
156         (MethodDef.AddGenericParameter): New overloads for accepting attributes also.
157
158 2006-01-06  Ankit Jain  <jankit@novell.com>
159
160         * Metadata.cs (UIntConst): Change constructor param from signed int/sbyte/etc to
161         unsigned.
162         (UIntConst.GetBlobIndex):
163         (UIntConst.Write): Change use of signed types to unsigned ones.
164
165 2006-01-06  Ankit Jain  <jankit@novell.com>
166
167         * PEAPI.cs (PEFile.AddGenericClass): New. Adds a GenericTypeInst to the TypeSpec table.
168         * Metadata.cs (GenericTypeInst): Change base class from 'Type' to 'Class'.
169         (GenericTypeInst.GetTypeSpec):
170         (GenericTypeInst.BuildTables):
171         (GenericTypeInst.Size):
172         (GenericTypeInst.Write):
173         (GenericTypeInst.GetCodedIx): Implement these for GenericTypeInst.
174         (ClassDef.SetSuper): Set typeIndexChecked to false if 'super' is not GenericTypeInst.
175         Fixup of typeIndex is not required for GenericTypeInst .     
176         (ClassDef.CheckTypeIndex): Recursively fix typeIndex if superType is ClassDef.
177         (MetaData.BuildMetaData): BuildTable for TypeSpec.
178
179 2005-12-24  Jb Evain  <jbevain@gmail.com>
180
181         * Metadata.cs (Property): Add a new 'instance' field.
182         (Property.SetInstance): New mutator for the instance field.
183         (Property.BuildTables): Emit the correct property tag depending on the instance field.
184
185 2005-12-14  Ankit Jain  <jankit@novell.com>
186
187         * Metadata.cs (BoundArray.ctor): Don't calculate sizes if upBounds is
188         null.
189
190 2005-12-12  Ankit Jain  <jankit@novell.com>
191
192         * Metadata.cs (TypeAttr): Add VisibilityMask.
193
194 2005-12-09  Ankit Jain  <jankit@novell.com>
195
196         * Metadata.cs (Method.ctor): Remove rType parameter.
197         (Method.GetRetType): Remove.
198         (Method.AddCallConv): Make it abstract.
199         (Method.GetSigIx): Likewise.
200         (MethodDef): Override and implement abstract methods from Method class.
201         (MethodRef): Likewise.
202         (MethodSpec): Change base class from MetaDataElement to Method. Override 
203         abstract methods from Method but throw Exception as they are not meant to be used here.
204         (MethodDef.TypeSig): Write gen_param_count before num of params.
205         (ClassRef.AddMethod): New overload with an extra gen_param_count param.
206         * PEAPI.cs (PEFile.AddMethodToTypeSpec): New overload with an extra gen_param_count
207         param.
208         (PEFile.AddMethodSpec): Change return type from void to Method.
209
210 2005-12-05  Ankit Jain  <jankit@novell.com>
211
212         * Metadata.cs (GenParamType): New enum.
213         (CallConv): Add [Flags] attribute.
214         (GenParam): New. Replaces .. 
215         (MVar): .. this ..  
216         (GenericTypeSpec): .. and this.
217         (GenericTypeInst.ctor): Use PrimitiveType.GenericInst.GetTypeIndex () instead
218         of hard-coded 0x15.
219         (GenericTypeInst.TypeSig): First byte should the 0x0A (GENERIC_INST).
220         (Method.gen_param_count): New. Num of generic parameters.
221         (MethodDef.ctor): Use overload.
222         (MethodDef.TypeSig): Write gen_param_count if callConv is Generic.
223         (MethodRef.GenParamCount): New.
224         (MethodRef.TypeSig): Write gen_param_count if callConv is Generic.
225         (PrimitiveType.Var): New.
226         (PrimitiveType.MVar): New.
227         (PrimitiveType.GenericInst): New.
228
229 2005-11-21  Ankit Jain  <jankit@novell.com>
230
231         * Metadata.cs (MetaData.WriteCodedIndex): Fix indentation.
232
233 2005-11-21  Ankit Jain  <jankit@novell.com>
234
235         * Metadata.cs (GenericParameter.SortKey2): New. Use index as the secondary key.
236         (GenericParameter.Size): Set size correctly.
237         (GenericParameter.Write): Use StringsIndex to write the index.
238         (MetaData.WriteTildeStream): Emit 2,0 as version for NET_2_0 profile.
239         (MetaData.version): Use 'v2.0.50727' for NET_2_0 profile.
240         (MetaData.BuildMetaData): Build and sort GenericParam, MethodSpec and 
241         GenericParamConstraint tables only for NET_2_0 profile.
242
243 2005-09-16  Ankit Jain  <jankit@novell.com>
244
245         * PEAPI.cs: Clean up indentation. Split into ...
246           Metadata.cs, Code.cs, PEAPI.cs: ... these.
247
248 2005-09-08  Ankit Jain  <jankit@novell.com>
249
250         * PEAPI.cs (FileImage.stackReserve): New. Set to default value of 0x100000 (1Mb).
251           (FileImage.WritePEHeader): Write stackReserve instead of the default value.
252           (PEFile.SetStackReserve): Set stack reserve for fileImage.
253
254 2005-09-06  Ankit Jain  <jankit@novell.com>
255
256         * PEAPI.cs (MetaData.WriteTildeStream): Change minor version back to 0.
257
258 2005-08-30  Ankit Jain  <jankit@novell.com>
259
260         * PEAPI.cs (MetaData.WriteTildeStream): Change minor version to 1.
261
262 2005-08-29  Ankit Jain  <jankit@novell.com>
263
264         * PEAPI.cs (CustomMarshaller.ctor): New.
265           (CustomMarshaller.ToBlob): Emit marshallerName and cookie strings with
266           their lengths.
267
268 2005-08-26  Ankit Jain  <jankit@novell.com>
269
270         * PEAPI.cs (PEFile.ctor): Restore old constructor overload to avoid
271           changing public API.
272
273 2005-08-26  Ankit Jain  <jankit@novell.com>
274
275         * PEAPI.cs (IResolutionScope): New. Empty interface.
276           (ClassRef): Implement IResolutionScope.
277           (ClassRef.parent): Change type from ResolutionScope to IResolutionScope.
278           (ClassRef.AddClass): New. Add nested class.
279           (ClassRef.AddValueClass): New. Add nested value class.
280
281 2005-08-23  Ankit Jain  <jankit@novell.com>
282
283         * PEAPI.cs (MetaData.version): Change from 1.0.3705 to 1.1.4322.
284
285 2005-08-23  Ankit Jain  <jankit@novell.com>
286
287         * PEAPI.cs (MSCorLib.systemClasses): Change type from ClassRef[] to
288           Class[].
289           (MSCorLib.ctor): Add assembly ref to mscorlib for non-mscorlib assemblies
290           only.
291           (MSCorLib.AddClass): Use Class instead of ClassRef.
292           (MSCorLib.GetSpecialClass): Change return type to Class from ClassRef.
293           Don't instantiate object of SystemClass if this assembly is mscorlib.
294           (MSCorLib.SetSpecialSystemClass): New. Set a System.* class for primitive
295           types, used for compiling mscorlib.
296           (MSCorLib.GetValueClass): Change to handle new type of systemClasses.
297           (MSCorLib.ValueType),
298           (MSCorLib.EnumType): Don't instantiate ClassRef if this assembly is mscorlib.
299           (ClassDef.ctor): Don't superType to System.Object for System.Object and <Module>. 
300           (ClassDef.MakeValueClass): Set typeIndex to ValueType's typeIndex.
301           (ClassDef.IsValueType),
302           (ClassDef.IsEnum): Use "==" instead of .CompareTo for string comparison.
303           (ClassDef.AddNestedClass): Set typeIndexChecked = true for the nested class.
304           (PEFile.isMSCorlib): New. bool field.
305           (PEFile.ctor): Move all ctor logic into one overload and call that from others.
306           (PEFile.ctor): Add outputDir parameter.
307           (PEFile.SetName): Set name of the assembly and set isMSCorlib accordingly.
308           (PEFile.IsMSCorlib): New. bool Property.
309           (PEFile.AddClass): Call overload.
310           (PEFile.AddClass): Set superType and SetSpecialSystemClass if compiling mscorlib.
311           (PEFile.AddValueClass): Call MakeValueClass only if the class is not System.ValueType
312           or System.Enum itself, else set the supertype correctly.
313
314 2005-08-16  Ankit Jain  <jankit@novell.com>
315
316         * PEAPI.cs (FieldAttr): Move HasFieldMarshal from FieldDef to this.
317           (ParamAttr): Move HasDefault and HasFieldMarshal from Param to this.
318           (ManifestResource.ctor): Use 'mres' param to clone.
319           (MethodDef.ret_param): New.
320           (MethodDef.AddRetTypeMarshallInfo): New.
321           (MethodDef.TypeSig): Set seqNo for ret_param to zero.
322           (MethodDef.BuildTables): Add ret_param to Param table, and BuildTables
323           for it.
324           (FixedSysString): New. Class to represent Fixed SysString native type.
325           (NativeArray): Rename len to numElem. Init numElem, parNum and elemMult
326           to -1.
327           (NativeArray.ctor): Uncomment ctor with one param (elemType).
328           (NativeArray.ctor): Move ctor logic to the one with all params.
329           (NativeArray.ToBlob): Emit values in correct order.
330           (SafeArray.hasElemType): New. bool var to indicate presence of ElemType.
331           (SafeArray.ctor): New. Parameterless constructor.
332           (SafeArray.ToBlob): Emit correctly.
333           (FixedArray.ctor): Remove elemType param.
334           (FixedArray.ToBlob): Don't emit elemType.
335
336 2005-08-08  Ankit Jain  <jankit@novell.com>
337
338         * PEAPI.cs (CodeBlock): Set maxCodeSize to 255 instead of 256 for checking
339           Fat format.
340           (CILInstructions.CheckCode): Use 255 instead of 256 for checking Fat format.
341
342 2005-08-08  Ankit Jain  <jankit@novell.com>
343
344         * PEAPI.cs (FileImage.WriteCLIHeader): Move the check for no entrypoint
345           in case of an EXE to ilasm/codegen/CodeGen.cs to avoid creating unnecessary
346           .exe.
347
348 2005-08-05  Ankit Jain  <jankit@novell.com>
349
350         * PEAPI.cs (FileImage.WriteCLIHeader): Throw Exception if an EXE has been
351           requested but the source file has no entrypoint defined.
352
353 2005-08-05  Ankit Jain  <jankit@novell.com>
354
355         * PEAPI.cs (TypeAttr): Add HasSecurity.
356           (MethAttr): Likewise.
357           (SecurityAction): New enum.
358           (DeclSecurity.ctor): Add 'byte []' as the third parameter.
359           (DeclSecurity.BuildTables): Write the byte array to the blob.
360           (MetaData.AddDeclSecurity): Add DeclSecurity to declsec_list.
361           (MetaData.BuildMetaData): Call BuildTables for declsec_list members.
362           (PEFile.AddDeclSecurity): New. Add DeclSecurity to metaData.
363
364 2005-04-30  Ankit Jain  <ankit@corewars.org>
365
366         * PEAPI.cs (InterfaceImpl.SortKey): New.
367         (MetaData.BuildMetaData): Sort InterfaceImpl table.
368         (MethodSemantics.SortKey): Compute key correctly.
369
370 2005-04-18  Ankit Jain  <ankit@corewars.org>
371
372         * PEAPI.cs (ManifestResource.InitResource): New. Used by constructors
373         to initialize the resource. 
374         (ManifestResource.ctor): New. Constructor to accept resource as a 
375         byte array.
376         (ManifestResource.ctor): New. Constructor to accept an object of self. 
377         (ManifestResource.BuildTables): Update.
378         (MetaData.AddResource): New. Add the resource to the list, adjust 
379         resourcesSize.
380         (MetaData.WriteResource): New. Write resources to the FileImage.
381         (PEFile.AddExternalManagedResource): New. Add a new resource.
382         (PEFile.GetResource): New. Get resource by name.
383         (PEFile.GetResources): New. Get array of resources.
384
385 2005-04-12  Ankit Jain  <ankit@corewars.org>
386
387         * PEAPI.cs (CustomAttribute.ctor): Dont throw 
388         NotYetImplementedException.
389         (MethodSemantics.SortKey): Should be sorted by 
390         'Association' column.
391         
392 2005-04-08  Ankit Jain  <radical@corewars.org>
393
394         * PEAPI.cs (MSCorLib.GetSpecialClass): Don't encode
395         System.ValueType and System.Enum as value types.
396         (ValueClass): New enum.
397         (Class.MakeValueClass): Add a 'ValueClass' parameter.
398         (ClassDef.MakeValueClass): Set supertype to ValueType or Enum
399         according to ValueClass parameter.
400         (IsValueType,IsEnum): New.  Test if type is System.ValueType or
401         System.Enum.
402         (ClassDef.AddNestedClass): Don't encode System.ValueType and
403         System.Enum as value types.
404
405 2005-03-17  Ankit Jain  <radical@corewars.org>
406
407         * PEAPI.cs: Metadata tables that must be sorted are sorted now.
408         Fixes the code for ParamAttr.Opt. Fix bug #73517.
409                 
410 2004-12-08  Sebastien Pouliot  <sebastien@ximian.com>
411
412         * PEAPI.cs: Added support for allocating and storing strongname 
413         signatures when a .publickey directive is present in source. Fix bug
414         #69721.
415
416 2004-12-01  Jackson Harper  <jackson@ximian.com>
417
418         * PEAPI.cs: Allow underlying types of ByteArrConsts to be set when
419         they are used as field init data.
420
421 2004-07-29  Martin Baulig  <martin@ximian.com>
422
423         * PEAPI.cs (Module.Guid): New public property.
424
425 2004-07-27  Martin Baulig  <martin@ximian.com>
426
427         * PEAPI.cs (CILInstructions.Offset): New public property.
428
429 2004-07-23  Jackson Harper  <jackson@ximian.com>
430
431         * PEAPI.cs: Make the type index modifiable so ClassRefInsts will
432         be emitted properly. This is in desperate need of some API love.
433         
434 2004-07-21  Jackson Harper  <jackson@ximian.com>
435
436         * PEAPI.cs: Do all the index size checks. I always wondered why
437         the code was like that and finally realized today that it was like
438         that because it was wrong. Wait until the opportune momement to
439         calculate the index sizes (after everything has been added to the
440         streams, and before writing anything).
441         
442 2004-07-21  Jackson Harper  <jackson@ximian.com>
443
444         * PEAPI.cs: Create ClassRefInsts with types not just
445         ClassRefs. This way modified types can be used. I am having alot
446         of trouble remembering why I actually even need this class though.
447         
448 2004-07-16  Jackson Harper  <jackson@ximian.com>
449
450         * PEAPI.cs: make sure small index sizes get set properly. Use a
451         continue to reduce nesting a little and make code almost mildly
452         readable. Add MDTable.Field to the list of tables that can
453         increase the CustomAttributeType shift. TODO: What else should be
454         here?
455         
456 2004-07-13  Jackson Harper  <jackson@ximian.com>
457
458         * PEAPI.cs: Use a byte array hash code provider and comprarer, so
459         checking the byte hashtable for duplicate entries actually
460         works. Old method was valid but created larger then needed binaries.
461         
462 2004-07-09  Jackson Harper  <jackson@ximian.com>
463
464         * PEAPI.cs: Don't build custom attributes twice.
465         
466 2004-07-08  Jackson Harper  <jackson@ximian.com>
467
468         * PEAPI.cs: Add custom attributes through the pefile so that we
469         can ensure they are emitted no matter what table they are
470         in. Previously not all custom attributes were getting emitted.
471         
472 2004-06-26  Jackson Harper  <jackson@ximian.com>
473
474         * PEAPI.cs: Add a method to set the fields list. This is needed so
475         that sequentially laid out fields are laid out in the right
476         order. When building custom attribute tables actually emit the
477         custom attribute data. When writing the .sdata section make sure
478         to pad to its size. The constants itself will not make up the
479         entire section because it is aligned on 512 byte blocks.
480         
481 2004-06-19  Jackson Harper  <jackson@ximian.com>
482
483         * PEAPI.cs: Make sure the sentinel is placed properly for vararg
484         method pointers.
485         
486 2004-06-19  Jackson Harper  <jackson@ximian.com>
487
488         * PEAPI.cs: Allow MethPtrTypes to be created from a signature
489         instead of from a method reference because it really doesn't make
490         sense to do it that way ;-).
491         
492 2004-06-14  Jackson Harper  <jackson@ximian.com>
493
494         * PEAPI.cs: Add IExternRef interface and modify sigs so it can be
495         used. So we can easily add stuff to modules and assemblies. Fix
496         the nometadata flag, it should be set when there is NO metadata
497         not when there is metadata.
498         
499 2004-06-14  Jackson Harper  <jackson@ximian.com>
500
501         * PEAPI.cs: Add new constructor so we can explicitly set the
502         module name.
503         
504 2004-06-03  Jackson Harper  <jackson@ximian.com>
505
506         * PEAPI.cs: Do not null terminate byte arrays when writing to the
507         blob stream.
508         
509 2004-05-25  Jackson Harper  <jackson@ximian.com>
510
511         * PEAPI.cs: When writing to the blob heap we always set a size.
512         
513 2004-05-25  Jackson Harper  <jackson@ximian.com>
514
515         * PEAPI.cs: Set the has default flag on fields when a default data
516         constant is assigned to them.
517         
518 2004-05-25  Jackson Harper  <jackson@ximian.com>
519
520         * PEAPI.cs: Encode string constants as unicode before putting them
521         in the blob.
522         
523 2004-05-25  Jackson Harper  <jackson@ximian.com>
524
525         * PEAPI.cs: zero RVAs for abstract, runtime, and internal call
526         methods.
527         
528 2004-04-30  Duncan Mak  <duncan@ximian.com>
529
530         * PEAPI.dll.sources: Added Assembly/AssemblyInfo.cs and 
531         Locale.cs to build.
532
533 2004-04-02  Jackson Harper  <jackson@ximian.com>
534
535         * PEAPI.cs: Allow hash algorithms to be any integer.
536         
537 2004-02-18  Jackson Harper <jackson@ximian.com>
538
539         * PEAPI.cs: Add a class for creating instances of class refs, this
540         is used for setting the class or valuetype of a types instance so the class
541         reference isn't modified. Allows things like 'valuetype [mscorlib]System.Object'.
542         
543 2003-11-18 Jackson Harper <jackson@ximian.com>
544
545         * PEAPI.cs: If the data length for a methods seh section is
546         greater then 255 use fat format headers.
547         
548 2003-11-17 Jackson Harper <jackson@ximian.com>
549
550         * PEAPI.cs: Allow strings to be loaded as bytearrays.
551         
552 2003-10-19 Jackson Harper <jackson@ximian.com>
553
554         * PEAPI.cs: Use bytes not bits for constant sizes.
555         
556 2003-10-18 Jackson Harper <jackson@ximian.com>
557
558         * PEAPI.cs: Add proper support for short instructions, removing
559         PEAPI's auto selection of short/long branch operations feature.
560         
561 2003-10-10 Jackson Harper <jackson@ximian.com>
562
563         * PEAPI.cs: New GenericMethodSig class for creating generic method
564         signatures. Use this class instead of GenericTypeInst for creating
565         generic methods. Fix Generic call conv. according to two of my
566         docs it is 0x10 and only one says 0x50 so I will go with 0x10.
567         
568 2003-10-09 Jackson Harper <jackson@ximian.com>
569
570         * PEAPI.cs: Add generic method Mvar type. Add MethodSpec table,
571         and an Api method for adding methods to the methodspec table.
572         
573 2003-10-08 Jackson Harper <jackson@ximian.com>
574
575         * PEAPI.cs: Remove some old hacks for adding methods to arrays,
576         typespecs are used for this now. Add Generic call conv.
577         
578 2003-10-08 Jackson Harper <jackson@ximian.com>
579
580         * PEAPI.cs: Remove methods for creating generic parameters without
581         a name, names are mandatory. Add method to add type parameters to
582         methods. Allow GenericParameters to have either a type or a
583         method as its owner. Also fix visibility of GenericParameters, a
584         GenericParameter should not be created outside of PEAPI.
585         
586 2003-10-07 Jackson Harper <jackson@ximian.com>
587
588         * PEAPI.cs: Add unbox.any instruction.
589         
590 2003-09-27 Jackson Harper <jackson@latitudegeo.com>
591
592         * PEAPI.cs: Fix pinvoke attributes, zero a methods RVA if it has
593         pinvoke info. This isn't entirely correct because native unmanaged
594         methods can have pinvoke info and not have 0 RVAs PEAPI can't
595         handle native unmanged code though. Expose the ModuleClass so
596         'global' items can be referenced like this '<Module>'::foo.
597         
598 2003-09-21 Jackson Harper <jackson@latitudegeo.com>
599
600         * PEAPI.cs: sigh, sometimes it is best to calculate variables
601         before using them. This fixes PEAPI creating broken images when
602         the sdata section is used.
603         
604 2003-09-20 Jackson Harper <jackson@latitudegeo.com>
605
606         * PEAPI.cs: Rework to allow multiple constraints to be added to a
607         single generic parameter.
608         
609 2003-08-19 Jackson Harper <jackson@latitudegeo.com>
610
611         * PEAPI.cs: Make no super method public so we can have types
612         with no super type.
613         
614 2003-08-03 Jackson Harper <jackson@latitudegeo.com>
615
616         * PEAPI.cs: New Sentinel type.
617         
618 2003-08-03 Jackson Harper <jackson@latitudegeo.com>
619
620         * PEAPI.cs: Only give method definitions 0 RVAs if they are
621         marked abstract.
622         
623 2003-08-03 Jackson Harper <jackson@latitudegeo.com>
624
625         * PEAPI.cs: Offsets are not explicit offsets, they are just
626         byte offsets from the current position.
627
628 2003-07-29 Jackson Harper <jackson@latitudegeo.com>
629
630         * PEAPI.cs: Allow labels to be created with an explicit offset
631         
632 Fri Jul 25 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
633
634         * PEAPI.cs: added coded index for the owner field in the GenericParam
635         table.
636
637 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
638
639         * PEAPI.cs: Add methods to PEFile to allow fields and methods to
640         be added to type specs. This fixing bah-zillions of little
641         problems in ilasm. We can now add fields and methods to arrays,
642         reference types, and most importantly generics.
643
644         Add the GenericTypeInst class. This is an instance of a generic
645         type. ie Hash<int32, string>. GenericTypeSpecs now write their id
646         number as a compressed number, this matches the way the runtime
647         loads them and will allow generic types to have more then 255 type
648         parameters.
649         
650 2003-07-17 Jackson Harper <jackson@latitudegeo.com>
651
652         * PEAPI.cs: Add GenericTypeSpec so generic members can be
653         referenced. Add the ldelem and stelem opcodes (these are part of
654         the new spec).
655         
656 2003-07-15 Jackson Harper <jackson@latitudegeo.com>
657
658         * PEAPI.cs: Allow generic constraints to be added, emit generic
659         constraints.
660                 
661 2003-07-14 Jackson Harper <jackson@latitudegeo.com>
662
663         * PEAPI.cs: Cleanup methods for generics, now that constraints and
664         params are seperated.
665                 
666 2003-05-31 Jackson Harper <jackson@latitudegeo.com>
667
668         * PEAPI.cs: Initial work on implementing custom
669         attributes. Attributes can now be added to ClassDefs and
670         MethodDefs. Still need to implement for other metadata elements.
671         Added the stele.r4 and stelem.r8 instructions, this should also
672         shift the stelem.ref instruction to the proper value (0xA2)
673                 
674 2003-05-25 Jackson Harper <jackson@latitudegeo.com>
675
676         * PEAPI.cs: Create a list of vararg signatures and add them all to
677         tables. this allows more then one vararg signature to be created
678         per method.
679                 
680 2003-05-18 Jackson Harper <jackson@latitudegeo.com>
681
682         * PEAPI.cs: Add methods to allow methods to be added to arrays.
683                 
684 2003-05-11 Jackson Harper <jackson@latitudegeo.com>
685
686         * PEAPI.cs: The class size in class layout metadata table is a
687         uint not a short.
688                 
689 2003-04-05 Jackson Harper <jackson@latitudegeo.com>
690
691         * PEAPI.cs: Add indexes to GenericParameters, make string index
692         always a full 4 bytes.
693                 
694 2003-04-05 Jackson Harper <jackson@latitudegeo.com>
695
696         * PEAPI.cs: Add GenericParameter table, and method to add generic
697         parameters.
698                 
699 2003-03-15 Daniel Morgan <danmorg@sc.rr.com>
700
701         * PEAPI.build: added file for windows build
702
703 2003-03-06 Jackson Harper <jackson@latitudegeo.com>
704
705         * PEAPI.cs: (ImplAttr) Add Optil implementation flag (not supported 
706         in first release of CLR)
707         (Class) And Name property
708
709 2003-03-06 Jackson Harper <jackson@latitudegeo.com>
710
711         * makefile.gnu: Add file
712         * list.unix: Add file
713
714 2003-03-02 Jackson Harper <jackson@latitudegeo.com>
715
716         * PEAPI.cs: Do not add file extensions to output names
717         
718 2003-03-02 Jackson Harper <jackson@latitudegeo.com>
719
720         * PEAPI.cs: Add file
721         * README.txt: Add file