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