New test.
[mono.git] / mcs / class / corlib / System.Reflection.Emit / ChangeLog
1 2006-09-12  Mart Roosma  <roosma@gmail.com>
2
3         * DynamicMethod.cs: Allow empty name and null return type. 
4         Fixes bug #79367.
5
6 2006-09-05  Miguel de Icaza  <miguel@novell.com>
7
8         * TypeBuilder.cs (SetParent): Null parent is allowed for
9         interfaces. 
10
11 2006-09-02  Zoltan Varga  <vargaz@gmail.com>
12
13         * DynamicMethod.cs: Fix a warning.
14
15         * TypeBuilder.cs: Allow static methods on interfaces. Fixes #79249.
16
17 2006-08-18  Zoltan Varga  <vargaz@gmail.com>
18
19         * *.cs: Use String.Empty instead of "" in a lot of places.
20
21 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
22
23         * ConstructorBuilder.cs (GetILGenerator): Avoid creating a new ILGenerator each time
24         this is called. Fixes #78859.
25
26 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
27
28         * MethodBuilder.cs (SetCustomAttribute): Fix handling of SpecialNameAttribute.
29
30 2006-07-09  Gert Driesen  <drieseng@users.sourceforge.net>
31
32         * DynamicMethod.cs: Fix check for empty method body, avoids SIGSEV.
33
34 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
35
36         * DynamicMethod.cs: Create all other DynamicMethod's referenced by
37         this method as well. Check for an empty method body.
38
39         * ILGenerator.cs (Emit): Handle DynamicMethod's which might not have a
40         declaring type.
41
42 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
43
44         * AssemblyBuilder.cs (MonoResource): Add a 'stream' field.
45
46         * ModuleBuilder.cs (DefineManifestResource): Add new net 2.0 method.
47
48 2006-04-26  Miguel de Icaza  <miguel@novell.com>
49
50         * MethodBuilder.cs: better error messages when we close the
51         method. 
52
53 2006-03-28  Marek Safar  <marek.safar@seznam.cz>
54
55         * ILGenerator.cs: Delayed the exception stack creation. It saves ~1.5 MB
56         for corlib compilation.
57
58 2006-03-27  Marek Safar  <marek.safar@seznam.cz>
59
60         * ILGenerator.cs: Tune up label defaults, switched to double resizing.
61
62 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
63
64         * AssemblyBuilder.cs (AddTypeForwarder): New internal method for
65         adding type forwarders to an assembly.
66
67 2006-02-27  Gert Driesen  <drieseng@users.sourceforge.net>
68
69         * ConstructorBuilder.cs: In AddDeclarativeSecurity, throw an
70         ArgumentOutOfRangeException instead of an ArgumentException if action 
71         is a Request* action. Fixes bug #77640.
72         * MethodBuilder.cs: Same.
73         * TypeBuilder.cs: Same.
74
75 Mon Feb 27 17:12:40 CET 2006 Paolo Molaro <lupus@ximian.com>
76
77         * ModuleBuilder.cs: unlink the file before saving
78         otherwise we might overwrite a file mmapped by the runtime.
79
80 2006-02-17  Zoltan Varga  <vargaz@gmail.com>
81
82         * DynamicMethod.cs: Implement DefineParameter ().
83
84         * ParameterBuilder.cs: Add support for DynamicMethod parents.
85
86 2006-02-15  Martin Baulig  <martin@ximian.com>
87
88         * TypeBuilder.cs (TypeBuilder.DefineMethod): Also enable the
89         2-argument version in the `BOOTSTRAP_NET_2_0' profile.
90         (TypeBuilder.DefineGenericMethod): Removed.
91
92 2006-02-14  Martin Baulig  <martin@ximian.com>
93
94         * ConstructorBuilder.cs
95         (ConstructorBuilder.IsGenericMethod): Override this and return
96         false; the MS runtime doesn't throw an exception here.
97         (ConstructorBuilder.IsGenericMethodDefinition): Likewise.
98
99         * MethodBuilder.cs
100         (MethodBuilder.IsGenericMethod): Implement this.
101         (MethodBuilder.IsGenericMethodDefinition): Likewise.
102
103 2006-02-03  Zoltan Varga  <vargaz@gmail.com>
104
105         * TypeBuilder.cs (CreateType): Add a check for Sealed parents.
106
107 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
108
109         * OpCodes.cs: Readonly is a net 2.0 only field.
110
111 Tue Jan 31 13:37:02 CET 2006 Paolo Molaro <lupus@ximian.com>
112
113         * OpCodes.cs: Added Readonly field.
114
115 2006-01-29  Raja R Harinath  <harinath@gmail.com>
116
117         * GenericTypeParameterBuilder.cs (DeclaringType): Return the
118         declaring type of a generic method.
119
120 2005-12-15  Raja R Harinath  <rharinath@novell.com>
121
122         * TypeBuilder.cs (IsGenericType): Implement override.
123
124 2005-12-07  Martin Baulig  <martin@ximian.com>
125
126         * GenericTypeParameterBuilder.cs: Add support for custom attributes.
127         (GenericTypeParameterBuilder.cattrs): New field.
128         (GenericTypeParameterBuilder.SetCustomAttribute): Implement this.
129
130 Mon Dec 5 15:13:26 CET 2005 Paolo Molaro <lupus@ximian.com>
131
132         * ILGenerator.cs: fixed emitting doubles on ARM.
133
134 2005-12-02  Alp Toker  <alp@atoker.com>
135
136         * GenericTypeParameterBuilder.cs:
137         * TypeBuilder.cs: DeclaringMethod should return MethodBase, not MethodInfo
138
139 2005-11-19  Zoltan Varga  <vargaz@gmail.com>
140
141         * AssemblyBuilder.cs: Add support for setting FileVersion unmanaged 
142         resource. Fixes #64427.
143
144 2005-11-18  Zoltan Varga  <vargaz@gmail.com>
145
146         * ParameterBuilder.cs (SetCustomAttribute): Handle DefaultParameterValueAttribute as well.
147
148         * CustomAttributeBuilder.cs: Add support for decoding more types of
149         constructor parameters.
150
151 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
152
153         * TypeBuilder.cs (SetCustomAttribute): Handle ComImportAttribute as well.
154
155 2005-11-11  Marek Safar  <marek.safar@seznam.cz>
156
157         * EnumBuilder.cs, GenericTypeParameterBuilder.cs: Reflect Type changes.
158
159 2005-11-06  Zoltan Varga  <vargaz@freemail.hu>
160
161         * Label.cs: Add == and != operators.
162
163 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
164
165         * FieldBuilder.cs: Add implementation of new UMarshal property.
166
167 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
168
169         * FieldBuilder.cs MethodBuilder.cs ConstructorBuilder.cs: Add support for
170         returing custom attributes in created types. MS.NET supports this by
171         returning non-builder objects from GetMethod/GetField etc., but we return
172         builder objects in this case. Fixes #76521.
173
174 2005-10-24  Martin Baulig  <martin@ximian.com>
175
176         * TypeBuilder.cs (TypeBuilder.IsGenericTypeDefinition): Override this.
177
178 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
179
180         * CustomAttributeBuilder.cs : internal attributes should be allowed.
181           Fixed bug #75723.
182
183 2005-09-26  Marek Safar  <marek.safar@seznam.cz>
184
185         * PropertyBuilder.cs: Throw NotSupportedException for unsupported
186         methods.
187
188 2005-09-14  Martin Baulig  <martin@ximian.com>
189
190         * LocalBuilder.cs
191         (LocalBuilder.Mono_GetLocalIndex): New static internal method;
192         same as the .NET 2.0 property `LocalIndex'.
193
194 Mon Sep 5 18:08:09 CEST 2005 Paolo Molaro <lupus@ximian.com>
195
196         * EventBuilder.cs, FieldBuilder.cs, MethodBuilder.cs, TypeBuilder.cs,
197         PropertyBuilder.cs: take care of the SpecialName attribute (bug #75768).
198
199 2005-09-01  Raja R Harinath  <rharinath@novell.com>
200
201         * CustomAttributeBuilder.cs (get_umarshal): Don't cause a nullref
202         exception when passed a custom marshaller type that belongs to the
203         assembly being built.  When user specifies MarshalType rather than
204         MarshalTypeRef, don't attempt to resolve the type.
205
206 2005-08-31  Raja R Harinath  <rharinath@novell.com>
207
208         * CustomAttributeBuilder.cs (get_umarshal): Fix typo.  The name of
209         the field is "SizeParamIndex", not "SizeSizeParamIndex".
210
211         * ParameterBuilder.cs (SetCustomAttribute) [MarshalAsAttribute]:
212         Set ParameterAttributes.HasFieldMarshal flag.
213
214 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
215
216         * DynamicMethod.cs (CreateDelegate): Don't cache the delegate since it
217         needs to be different for each target.
218         
219         * DynamicMethod.cs (CreateDynMethod): Call ilgen.label_fixup ().
220
221         * DynamicMethod.cs (AddRef): Reserve every second ref slot for use by the
222         runtime.
223
224 2005-08-05  Gert Driesen  <drieseng@users.sourceforge.net>
225
226         * AssemblyBuilder.cs: Implement _AssemblyBuilder, CA fixes to 
227         correspond with MS.NET
228         * ConstructorBuilder.cs: Implement _ConstructorBuilder, CA fixes to 
229         correspond with MS.NET
230         * CustomAttributeBuilder.cs: Implement _CustomAttributeBuilder, CA 
231         fixes to correspond with MS.NET
232         * EnumBuilder.cs: Implement _EnumBuilder, CA fixes to correspond with 
233         MS.NET
234         * EventBuilder.cs: Implement _EventBuilder, CA fixes to correspond 
235         with MS.NET
236         * FieldBuilder.cs: Implement _FieldBuilder, CA fixes to correspond 
237         with MS.NET
238         * LocalBuilder.cs: Implement _LocalBuilder, CA fixes to correspond 
239         with MS.NET
240         * MethodBuilder.cs: Implement _MethodBuilder, CA fixes to correspond 
241         with MS.NET
242         * MethodRental.cs: CA fixes to correspond with MS.NET, implemented
243         _MethodRental.
244         * ModuleBuilder.cs: Implement _ModuleBuilder, CA fixes to correspond 
245         with MS.NET
246         * ILGenerator.cs: Implement _ILGenerator, CA fixes to correspond 
247         with MS.NET
248         * ParameterBuilder.cs Implement _ParameterBuilder, CA fixes to 
249         correspond with MS.NET
250         * PropertyBuilder.cs: Implement _PropertyBuilder, CA fixes to 
251         correspond with MS.NET
252         * SignatureHelper.cs: Implement _SignatureHelper, CA fixes to 
253         correspond with MS.NET
254         * TypeBuilder.cs: Implement _TypeBuilder, CA fixes to correspond 
255         with MS.NET
256
257 2005-07-21  Jb Evain  <jbevain@gmail.com>
258
259         * ILGenerator.cs: Implement filter blocks support.
260         Fixes bug #75010.
261
262 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
263
264         * ILGenerator.cs (BeginFaultBlock): Call InternalEndClause () here
265         too. Reported by Jeroen Frijters.
266
267 2005-07-11  Martin Baulig  <martin@ximian.com>
268
269         * TypeBuilder.cs (TypeBuilder.CreateType): Call
270         create_generic_class() here as well; fixes #75454.
271
272 2005-06-27  Marek Safar  <marek.safar@seznam.cz>
273
274         * TypeBuilder.cs (check_name): Wrong exception argument order.
275
276 2005-06-14  Sebastien Pouliot  <sebastien@ximian.com>
277
278         * AssemblyBuilder.cs: Override UnprotectedGetName to set the public 
279         key (if available).
280
281 2005-06-12  Gert Driesen <drieseng@users.sourceforge.net>
282
283         * MethodBuilder.cs: In CreateMethodBody, throw 
284         ArgumentOutOfRangeException instead of ArgumentException when count 
285         is not within range of array. Do not allow zero length method body 
286         to be emitted when using 2.0 profile. Fixes bug #75236.
287
288 2005-06-12  Gert Driesen <drieseng@users.sourceforge.net>
289
290         * FieldBuilder.cs: FieldBuilder.FieldHandle should throw
291         NotSupportedException to match MS.NET (both 1.x and 2.x). 
292         Fixes regression introduced in r45750.
293         * MethodBuilder.cs: MethodBuilder.MethodHandle should throw
294         NotSupportedException to match MS.NET (both 1.x and 2.x).
295         Fixes regression introduced in r45750.
296
297 2005-06-09  Kamil Skalski <nazgul@nemerle.org>
298         * ConstructorBuilder.cs FieldBuilders.cs MethodBuilder.cs: Return
299         RuntimeHandles when requested
300         
301         * TypeBuilder.cs: Add static Get{Method,Constructor,Field} methods
302         from .NET 2.0 beta 2 API for obtaining instanciated *Info objects
303         from non-instanciated counterparts 
304
305 2005-06-08  Zoltan Varga  <vargaz@freemail.hu>
306
307         * ConstructorBuilder.cs FieldBuilder.cs MethodBuilder.cs PropertyBuilder.cs:
308         Add 2.0 Module property.
309
310         * *.cs: Updates for net 2.0 beta 2.
311
312 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
313
314         * *Token.cs: Add net 2.0 Equals methods.
315
316         * *.cs: Updates for net 2.0 beta 2.
317
318         * *.cs: Updates for net 2.0 beta 2.
319
320 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
321
322         * AssemblyBuilder.cs: Update after PortableExecutableKinds name change.
323
324 2005-06-03  Zoltan Varga  <vargaz@freemail.hu>
325
326         * MethodBuilder.cs CustomAttributeBuilder.cs: Rework DllImportAttribute
327         decoding to improve compatibility with MS.NET.
328         
329         * MethodBuilder.cs (SetCustomAttribute): Set PinvokeImpl attribute if
330         a DllImportAttribute is present.
331
332 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
333
334         * MethodBuilder.cs (SetCustomAttribute): Handle the case when the
335         calling convention inside the DllImportAttribute is empty.
336
337 2005-06-01  Zoltan Varga  <vargaz@freemail.hu>
338
339         * MethodBuilder.cs (SetCustomAttribute): Handle DllImportAttribute
340         as well.
341
342         * CustomAttributeBuilder.cs: Add a decode_cattr helper method.
343
344 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
345
346         * MethodBuilder.cs: Add extra_flags field to encode P/Invoke
347         bits that can't be specified via MethodBuilder directly; fixes
348         #75060.
349
350 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
351
352         * GenericTypeParameterBuilder.cs: Return this in UnderlyingSystemType.
353
354 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
355
356         * ModuleBuilder.cs: Implemented DefineDocument(). Generate debug
357         info when saving the module.
358         * ILGenerator.cs: Keep marked sequence points in a list.
359         Added a GenerateDebugInfo method, which dumps the info collected
360         during code generation.
361         * TypeBuilder.cs:
362         * ConstructorBuilder.cs:
363         * MethodBuilder.cs: Added method for generating debug info.
364         * LocalBuilder.cs: Added StartOffset and EndOffset properties.
365         * CustomAttributeBuilder.cs: Use IsInstanceOfType instead of
366         IsAssignableFrom when possible.
367
368 2005-05-20  Miguel de Icaza  <miguel@novell.com>
369
370         * TypeBuilder.cs (UnderlyingSystemType): should always return this
371         according to Zoltan.  Old code left there, but should probably be removed.
372
373 2005-05-13  Zoltan Varga  <vargaz@freemail.hu>
374
375         * MethodBuilder.cs (fixup): Take into account CreateMethodBody as
376         well.
377
378         * ConstructorBuilder.cs MethodBuilder.cs: Check that elements of
379         parameterTypes are not null. Fixes #74928.
380
381 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
382
383         * ConstructorBuilder.cs MethodBuilder.cs (fixup): Fix this.
384         
385         * ConstructorBuilder.cs MethodBuilder.cs (fixup): Throw an exception if a
386         method body is empty. Fixes #74906.
387
388 2005-04-13  Marek Safar  <marek.safar@seznam.cz>
389
390         * TypeBuilder.cs (SetCustomAttribute): StructLayoutAttribute.CharSet
391         has to overwrite current settings.
392
393 2005-04-05  Sebastien Pouliot  <sebastien@ximian.com>
394
395         * AssemblyBuilder.cs: Don't call GetCurrentDirectory if building an 
396         assembly that will never be serialized to disk (because CAS may not
397         allow disk access but still allow generating a in-memory assembly).
398
399 2005-03-24  Miguel de Icaza  <miguel@novell.com>
400
401         * DynamicMethod.cs (CreateDelegate): Add second overload based on
402         the first one that allows for a `target' argument.
403
404 2005-03-24  Sebastien Pouliot  <sebastien@ximian.com>
405
406         * MethodRental.cs: Added Demand for UnmanagedCode on SwapMethodBody 
407         method.
408
409 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
410
411         * MethodBuilder.cs: Add internal BestFitMapping and 
412         ThrowOnUnmappableChar properties used by mcs.
413
414 2005-03-09  Marek Safar  <marek.safar@seznam.cz>
415
416         * ILGenerator.cs (DeclareLocal): Throw an exception for null argument.
417
418 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
419
420         * CustomAttributeBuilder.cs UnmanagedMarshal.cs: Allow sizeConst and
421         sizeParamIndex to be -1, which means they are not given.
422         
423         * CustomAttributeBuilder.cs (get_umarshal): Only call the internal
424         LPArray creation method if sizeConst of sizeParamIndex is given.
425
426         * UnmanagedMarshal.cs: Add has_size field.
427
428 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
429
430         * CustomAttributeBuilder.cs (get_umarshal): Marshal sizeConst and
431         sizeParamIndex fields as well.
432
433         * UnmanagedMarshal.cs: Add param_num field and a new internal creation
434         method which sets it.
435
436 2005-02-11  Zoltan Varga  <vargaz@freemail.hu>
437
438         * TypeBuilder.cs (IsAssignableTo): New helper method. Fixes #70838.
439         
440         * TypeBuilder.cs: Fix warning.
441
442 2005-01-21 Rafael Teixeira <rafaelteixeirabr@hotmail.com>
443         
444         * MethodBuilder.cs, TypeBuilder: missing 'params' in some method signature
445         patch by Kamil Skalski <nazgul@nemerle.org>
446
447 2005-01-18  Geoff Norton  <gnorton@customerdna.com>
448
449         * ModuleBuilder.cs: Interfaces should have null BaseType.
450         Fixes #71301.
451
452 2005-01-18  Miguel de Icaza  <miguel@ximian.com>
453
454         * TypeBuilder.cs: Add check for creation.  Fix from Geoff.
455
456 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
457
458         * CustomAttributeBuilder.cs: Fix a warning.
459
460 Wed Dec 15 11:34:13 CET 2004 Paolo Molaro <lupus@ximian.com>
461
462         * ModuleBuilder.cs, EnumBuilder.cs: actually add the enumbuilder
463         to the type list of the module (bug#70488).
464
465 2004-12-09  Martin Baulig  <martin@ximian.com>
466
467         * GenericTypeParameterBuilder.cs
468         (GenericTypeParameterBuilder.IsValueType): Fixed the FIXME.
469
470 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
471
472         * AssemblyBuilder.cs: Move corlib_internal field here from Assembly.
473         
474         * AssemblyBuilder.cs: Add corlib_internal to the ctor parameters.
475
476 2004-12-06  Ben Maurer  <bmaurer@ximian.com>
477
478         * TypeBuilder.cs (CreateType): Creating a type twice does not
479         throw in msft.
480
481 2004-11-22  Zoltan Varga  <vargaz@freemail.hu>
482
483         * ModuleBuilder.cs: Check that all types inside the module are created.
484         Fixes #69780.
485
486 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
487
488         * ModuleBuilder.cs (Save): Use new WriteToFile icall.
489
490 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
491
492         * TypeBuilder.cs: Make some members work if the type is created since
493         MS does this.
494
495 2004-10-30  Zoltan Varga  <vargaz@freemail.hu>
496
497         * CustomAttributeBuilder.cs: Check that arguments are not 
498         multi-dimensional arrays.
499
500 2004-10-12  Martin Baulig  <martin@ximian.com>
501
502         * TypeBuilder.cs (TypeBuilder.setup_generic_class): Renamed to
503         create_generic_class() and added a new setup_generic_class().
504         (TypeBuilder.DefineGenericParameters): Call setup_generic_class()
505         before creating the type parameters.
506
507 2004-10-11  Martin Baulig  <martin@ximian.com>
508
509         * TypeBuilder.cs (TypeBuilder.generic_container): New private field.
510
511         * MethodBuilder.cs (MethodBuilder.generic_container): New private field.
512
513         * GenericTypeParameterBuilder.cs
514         (GenericTypeParameterBuilder.GetGenericTypeParameterConstraints):
515         Return `Type.EmptyTypes' instead of an array of `typeof (object)'.      
516
517 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
518
519         * ModuleBuilder.cs: Create global type after creation.
520
521 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
522
523         * ModuleBuilder.cs (GetTypes): Fix length of returned array. Fixes
524         #65931.
525
526 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
527
528         * ModuleBuilder.cs (DefineType): Check for duplicate type names. Fixes
529         #65988.
530
531 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
532
533         * AssemblyBuilderAccess.cs: Remove [Flags].
534
535         * PackingSize.cs: Add new 2.0 members. Remove [Flags].
536
537         * AssemblyBuilder.cs: Add net 2.0 Save method.
538
539         * LocalBuilder.cs: Make this inherit from LocalVariableInfo under
540         net 2.0. Reorganize fields so the layout visible to the runtime is the
541         same under 1.0 and 2.0. Add 2.0 properties.
542
543 2004-10-02  Gert Driesen  <drieseng@users.sourceforge.net>
544
545         * TypeBuilder.cs: throw NotSupportedException when defining default
546         ctor if parent type does not have default ctor
547
548 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
549
550         * TypeBuilder.cs: Make 'created' field visible to the runtime.
551
552 2004-09-28  Martin Baulig  <martin@ximian.com>
553
554         * GenericTypeParameterBuilder.cs
555         (GenericTypeParameterBuilder.ContainsGenericParameters): Return
556         true here; System.Type.ContainsGenericParameters returns true when
557         called on a type parameter, so let's do the same here.
558
559 2004-09-27  Zoltan Varga  <vargaz@freemail.hu>
560
561         * ConstructorBuilder.cs: Add 2.0 GetILGenerator(size) method.
562
563 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
564
565         * UnmanagedMarshal.cs: Add ToMarshalAsAttribute method.
566
567 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
568
569         * TypeBuilder.cs: Add IsCreated method.
570
571 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
572
573         * FieldBuilder.cs: Add dummy GetFieldOffset method.
574
575 2004-09-24  Martin Baulig  <martin@ximian.com>
576
577         * GenericTypeParameterBuilder.cs
578         (GenericTypeParameterBuilder.GetGenericParameterConstraints): Override.
579
580 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
581
582         * DynamicMethod.cs: Add MetadataToken property and tweak Module property.
583
584 2004-09-23  Martin Baulig  <martin@ximian.com>
585
586         * GenericTypeParameterBuilder.cs
587         (GenericTypeParameterBuilder.SetGenericParameterAttributes): New
588         public method, replaces the old Mono_* hacks.
589
590 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
591
592         * AssemblyBuilder.cs: Fixed assembly-level permissions. I don't know 
593         why I splitted them all into individual entries when only a single set
594         is accepted for each security action :(.
595
596 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
597
598         * CustomAttributeBuilder.cs: Applied patch from Marcus Urban
599         (mathpup@mylinuxisp.com). Add support for defining custom
600         marshallers by calling SetCustomAttribute.      
601
602 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
603
604         * AssemblyBuilder.cs: Keep a copy of the 3 permission set as an array
605         of RefEmitPermissionSet. This will allow to reuse existing 
606         functionalities already present in the runtime.
607
608 2004-09-12  Marek Safar  <marek.safar@seznam.cz>
609
610         * TypeBuilder.cs: Do not create default constructor for
611         static classes.
612
613 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
614
615         * TypeBuilder.cs: Set the table_idx of the global type to 1.
616
617         * ModuleBuilder.cs: Save the main module of the assembly even if it is 
618         transient.
619
620 2004-09-02 Ben Maurer  <bmaurer@users.sourceforge.net>
621
622         * LocalBuilder.cs: another s.ioe
623
624 2004-09-02 Ben Maurer  <bmaurer@users.sourceforge.net>
625
626         * ModuleBuilder.cs: dont throw an S.IOE for debugging stuff.
627         makes sre apps work
628
629 2004-09-02  Martin Baulig  <martin@ximian.com>
630
631         * MethodBuilder.cs (MethodBuilder.GetParameters): Throw a
632         NotSupportedException() until the type has been fully created.
633
634 2004-09-01  Martin Baulig  <martin@ximian.com>
635
636         * IMonoSymbolWriter.cs: Removed.
637
638         * ModuleBuilder.cs, LocalBuilder.cs, ILGenerator.cs: Removed the
639         old debugging code.
640
641 2004-08-13  Sebastien Pouliot  <sebastien@ximian.com>
642
643         * AssemblyBuilder.cs: (Partly) Fix delay-signing issue (#56621) when 
644         MCS is used on the MS runtime (other part of the fix is for MCS).
645
646 2004-08-11  Marek Safar  <marek.safar@seznam.cz>
647
648         * AssemblyBuilder.cs: Added AddPermissionRequests method
649         used be mcs for SecurityPermissionAttribute handling.
650
651 2004-08-08  Zoltan Varga  <vargaz@freemail.hu>
652
653         * EnumBuilder.cs: Call setup_enum_type () in the constructor. Fixes
654         #62237.
655
656 2004-08-07  Jackson Harper  <jackson@ximian.com>
657
658         * AssemblyBuilder.cs: "neutral" culture is invariant culture
659         (String.Empty).
660
661 2004-08-07  Atsushi Enomoto  <atsushi@ximian.com>
662
663         * OpCodes.cs : csc complains CS1034 Line cannot exceed 2046 characters.
664
665 2004-08-05  Duncan Mak  <duncan@ximian.com>
666
667         * OpCodes.cs (TakesSingleByteArgument): Add this back.
668
669 2004-08-05  Duncan Mak  <duncan@ximian.com>     
670
671         This patch is based on an idea of Ben's to reduce the code size
672         in MCS. 
673
674         * OpCodes.cs: Instead pushing the data onto the stack when each
675         OpCode is initialized, pack the data into 2 ints and store only
676         that.  Furthermore, the names of each OpCode are stored in a
677         separate string array in the new OpCodeNames class.
678
679         * OpCodeNames.cs: The names of each OpCode are moved here to delay
680         the initialization of the strings, as they are not used frequently.
681
682         * OpCode.cs: Rewrote this to take in everything as 2 ints.
683
684 2004-07-29  Martin Baulig  <martin@ximian.com>
685
686         * ILGenerator.cs (ILGenerator.Mono_GetCurrentOffset): New static
687         internal method.
688
689         * ModuleBuilder.cs (ModuleBuilder.Mono_GetGuid): New static
690         internal method.
691
692 2004-07-24  Martin Baulig  <martin@ximian.com>
693
694         * TypeBuilder.cs (TypeBuilder.UnspecifiedTypeSize): Set this to 0
695         and initialize it to 0 everywhere.
696
697 2004-07-22  Martin Baulig  <martin@ximian.com>
698
699         * ILGenerator.cs (ILGenerator.BeginFaultBlock): Implemented.
700
701 2004-07-07  Miguel de Icaza  <miguel@ximian.com>
702
703         * LocalBuilder.cs: Remove MakePinned, we are now going to use
704         ILGenerator.DeclaraLocal that takes the `bool pinned' argument. 
705
706         * ILGenerator.cs (DeclareLocal): Add `pinned' version of the
707         method on the 2.0 profile.
708
709 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
710
711         * EnumBuilder.cs (CreateType): Call a new icall to set the internal
712         type field. Fixes #59833.
713
714 Thu Jun 24 15:33:04 CEST 2004 Paolo Molaro <lupus@ximian.com>
715
716         * ParameterBuilder.cs: implement SetConstant ().
717
718 Wed Jun 23 15:40:48 CEST 2004 Paolo Molaro <lupus@ximian.com>
719
720         * TypeBuilder.cs: handle properly the case when SetParent() 
721         is called (requires an updated runtime, too bug#60474).
722
723 Wed Jun 23 14:20:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
724
725         * EnumBuilder.cs, TypeBuilder.cs: patch from Gert Driesen
726         to implement EnumBuilder (slightly tweaked).
727
728 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
729
730         * MethodRental.cs: fixed value of JitOnDemand
731
732 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
733
734         * FieldBuilder.cs: fixed implementation to match MS.NET,
735         meaning throw InvalidOperationException for methods that
736         should not be allowed to execute when type has been
737         created, and throw NotSupportedException for methods and
738         properties that should not be called on FieldBuilder
739
740 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
741
742         * MethodBuilder.cs: move check to see if type has already 
743         been created up, to match MS.NET behaviour. Fix GetHashCode 
744         (removed TODO)
745
746 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
747
748         * MethodRental.cs: Added check for method size
749
750 2004-06-08  Martin Baulig  <martin@ximian.com>
751
752         * ILGenerator.cs (TokenGenerator.GetToken): Added overloaded
753         version which takes a MethodInfo and a Type[].
754         (IlGenerator.EmitCall): When emitting a call to a varargs method,
755         use the new GetToken() to pass the optional argument types to the
756         runtime.
757
758         * ModuleBuilder.cs (ModuleBuilder.getMethodToken): New interncall.
759
760 2004-05-29  Gert Driesen (drieseng@users.sourceforge.net)
761
762         * AssemblyBuilder.cs: removed extra method, fixes public API
763         compatibility with MS.NET
764         * TypeBuilder.cs: removed extra method, fixes public API
765         compatibility with MS.NET
766
767 2004-05-28  Jackson Harper  <jackson@ximian.com>
768
769         * CustomAttributeBuilder.cs: GetBlob now takes a ref to the
770         assembly so it can encode type names properly.
771         
772 2004-05-25  Sebastien Pouliot  <sebastien@ximian.com>
773
774         * MethodBuilder.cs: Now use FastNewGuidArray to create new random 
775         Guids without using CryptoConfig. Speed up for MCS.
776
777 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
778
779         * MethodBuilder.cs: Add Equals and GetHashCode.
780
781         * TypeBuilder.cs: Add IsSubclassOf.
782
783 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
784
785         * AssemblyBuilder.cs: Make extra methods internal. mcs was changed
786         to handle this a long time ago.
787
788         * TypeBuilder.cs: Add IsAssignableFrom and IsInstanceOfType.
789         
790         * TypeBuilder.cs MethodBuilder.cs ConstructorBuilder.cs: Implement
791         ToString ().
792
793         * TypeBuilder.cs (ToString): Make this consistent with MS.NET.
794
795 2004-05-11  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
796
797         * OpCodes.cs: Refactored to avoid the static constructor
798
799 2004-05-10  Gert Driesen (drieseng@users.sourceforge.net)
800         * AssemblyBuilder.cs: fixed warning
801         * MethodRental.cs: added private default ctror to match MS.NET
802
803 2004-05-03 Lluis Sanches Gual  <lluis@ximian.com>
804
805         * ModuleBuilder.cs: Use name const to load the debugger assembly.
806
807 2004-05-01  Todd Berman  <tberman@sevenl.net>
808
809         * ModuleBuilder.cs: Load the proper assembly for a gac-only install.
810
811 2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>
812
813         * ILGenerator.cs, ModuleBuilder.cs: readonlyificate.
814
815 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
816
817         * MethodRental.cs: New file.
818
819 2004-04-28  Raja R Harinath  <rharinath@novell.com>
820
821         * TypeBuilder.cs (SetCustomAttribute): Handle the presence of the
822         full type name in the data stream.  This is emitted for value
823         types by the Mono runtime.
824
825 2004-04-23  Atsushi Enomoto  <atsushi@ximian.com>
826
827         * ConstructorBuilder.cs, DynamicMethod.cs, EnumBuilder.cs,
828           GenericTypeParameterBuilder.cs, MethodBuilder.cs, ModuleBuilder.cs,
829           OpCodes.cs, TypeBuilder.cs :
830           The fix should be easier ;)
831
832 2004-04-23  Atsushi Enomoto  <atsushi@ximian.com>
833
834         * ConstructorBuilder.cs, DynamicMethod.cs, EnumBuilder.cs,
835           GenericTypeParameterBuilder.cs, MethodBuilder.cs, ModuleBuilder.cs,
836           OpCodes.cs, TypeBuilder.cs :
837           NET_2_0 related build fix.
838
839 2004-04-07  Martin Baulig  <martin@ximian.com>
840
841         * GenericTypeParameterBuilder.cs
842         (Mono_SetReferenceTypeConstraint): New public method.
843         (Mono_SetValueTypeConstraint): New public method.
844
845 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
846
847         * MethodBuilder.cs, TypeBuilder.cs: always have 
848         slot for generic_params for consistent offsets.
849
850 2004-04-07  Martin Baulig  <martin@ximian.com>
851
852         * GenericTypeParameterBuilder.cs
853         (Mono_SetConstructorConstraint): New public method.     
854
855 2004-04-07  Martin Baulig  <martin@ximian.com>
856
857         * GenericTypeParameterBuilder.cs: New file.
858
859         * TypeBuilder.cs (TypeBuilder.DefineGenericParameters): New public
860         method.  This is the new public API.
861         (TypeBuilder.DefineGenericParameter): Removed.
862         (TypeBuilder.SetGenericParameterConstraints): Removed.
863
864         * MethodBuilder.cs (MethodBuilder.DefineGenericParameters): New public
865         method.  This is the new public API.
866         (MethodBuilder.DefineGenericParameter): Removed.
867         (MethodBuilder.SetGenericParameterConstraints): Removed.
868
869 2004-04-01  Martin Baulig  <martin@ximian.com>
870
871         * OpCodes.cs (OpCodes.Constrained): New opcode.
872
873 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
874
875         * LocalBuilder.cs: Fix pinned support.
876
877 2004-03-30  Martin Baulig  <martin@ximian.com>
878
879         * TypeBuilder.cs (TypeBuilder.SetGenericParameterConstraints):
880         Added `bool has_ctor_constraint' argument.
881
882         * MethodBuilder.cs (MethodBuilder.SetGenericParameterConstraints):
883         Added `bool has_ctor_constraint' argument.
884
885 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
886
887         * LocalBuilder.cs: pinned support.
888
889 2004-03-29  Martin Baulig  <martin@ximian.com>
890
891         * TypeBuilder.cs (TypeBuilder.ContainsGenericParameters): Implemented.
892
893 2004-03-25  Sebastien Pouliot  <sebastien@ximian.com>
894
895         * AssemblyBuilder.cs: Changed strongname support to match MS 
896         implementation (i.e. attributes are used by the compiler - not by
897         AssemblyBuilder).
898
899 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
900
901         * TypeBuilder.cs (GetMethod): Implement.
902
903         * CustomAttributeBuilder.cs: Reenable argument checking with MS.NET
904         compatibility tweaks.
905
906 2004-03-23  Martin Baulig  <martin@ximian.com>
907
908         * TypeBuilder.cs (TypeBuilder.GetEvents_internal): New internal
909         method; this is basically GetEvents(), but see the FIXME in that method.
910
911 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
912
913         * CustomAttributeBuilder.cs: Disable argument checking since it causes
914         regressions.
915
916 2004-03-22  Zoltan Varga  <vargaz@freemail.hu>
917
918         * CustomAttributeBuilder.cs (Initialize): Add more argument checking. 
919         Fixes #55793.
920
921 2004-03-09  Jackson Harper  <jackson@ximian.com>
922
923         * CustomAttributeBuilder.cs: Add some argument checking. Handle
924         default arguments properly.
925
926 2004-03-09  Sebastien Pouliot  <spouliot@videotron.ca>
927
928         * AssemblyBuilder.cs: The strong name key file existance will now be
929         checked in the current compilation directory AND in the assembly
930         output directory. Fix bugzilla entry #55320.
931
932 2004-02-23  Martin Baulig  <martin@ximian.com>
933
934         * MethodBuilder.cs (MethodBuilder.SetGenericMethodSignature):
935         Added MethodAttributes and CallingConventions arguments.
936
937 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
938
939         * TypeBuilder.cs: Implement DefineUninitializedData and 
940         AddDeclarativeSecurity.
941
942 2004-01-27  Zoltan Varga  <vargaz@freemail.hu>
943
944         * AssemblyBuilder.cs (SetCustomAttribute): Move the reading of the
945         keyfile to the Save () method.
946
947 2004-01-26  Sebastien Pouliot  <spouliot@videotron.ca>
948
949         * AssemblyBuilder.cs: Save will now strongname the assembly is (a) a
950         StrongName is present and (b) the signature isn't delayed.
951
952 2004-01-24 David Sheldon <dave-mono@earth.li>
953
954         * AssemblyBuilder.cs: Added override for GetFiles() that throws
955           NotSupportedException. 
956
957 2004-01-15  Zoltan Varga  <vargaz@freemail.hu>
958
959         * AssemblyBuilder.cs (Save): Handle entry points with an int return
960         type as well.
961         
962         * AssemblyBuilder.cs (Save): If the entry point is in a module, create
963         a new entry point which calls the real one, since the entry point must
964         be in the module which contains the manifest.
965
966         * ModuleBuilder.cs (Save): Create the global type automatically if not
967         already done.
968
969 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
970
971         * AssemblyBuilder.cs (DefineVersionInfoResource): Set more 
972         version info properties.
973
974 2004-01-08  Zoltan Varga  <vargaz@freemail.hu>
975
976         * CustomAttributeBuilder.cs (string_arg): New helper method.
977
978         * AssemblyBuilder.cs (DefineVersionInfoResource): Implement.
979
980         * AssemblyBuilder.cs (SetCustomAttribute): Use the new helper method.
981
982         * AssemblyBuilder.cs (DefineUnmanagedResource): Implement.
983
984         * AssemblyBuilder.cs (DefineIconResource): New internal method to
985         support mcs.
986
987         * TypeBuilder.cs (IsDefined): Implement this, since some corlib classes
988         make calls to IsDefined.
989
990 2004-01-06  Zoltan Varga  <vargaz@freemail.hu>
991
992         * AssemblyBuilder.cs: Fix warning.
993
994 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
995
996         * AssemblyBuilder.cs (DefineVersionInfoResource): Implement.
997
998 2003-12-29 Ben Maurer  <bmaurer@users.sourceforge.net>
999
1000         * MethodBuilder.cs, ConstructorBuilder.cs: Override GetParameterCount.
1001         * ILGenerator.cs: Use GetParameterCount.
1002
1003 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
1004
1005         * AssemblyBuilder.cs (AddModule): New internal method to support 
1006         /addmodule in mcs.
1007
1008 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
1009
1010         * AssemblyBuilder.cs: New internal property to support /target:module in
1011         mcs.
1012
1013 2003-12-18  Zoltan Varga  <vargaz@freemail.hu>
1014
1015         * ILGenerator.cs: Applied patch from Ben Maurer 
1016         (bmaurer@users.sourceforge.net). Allocate arrays holding label data
1017         lazily and reduce their size.
1018
1019 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
1020
1021         * AssemblyBuilder.cs (MonoResource): New 'offset' field used by the
1022         runtime.
1023
1024         * ModuleBuilder: Implement DefineResource.
1025
1026 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
1027
1028         * AssemblyBuilder.cs (RefEmitPermissionSet): New helper structure.
1029         
1030         * MethodBuilder.cs (AddDeclarativeSecurity): Implement.
1031
1032         * ConstructorBuilder.cs (AddDeclarativeSecurity): Ditto.
1033
1034 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
1035
1036         * MethodBuilder.cs: Add stubs for missing methods.
1037
1038         * TypeBuilder.cs (GetEvents): Add new override.
1039
1040         * ModuleBuilder.cs: Implement some missing methods, add stubs for others.
1041
1042         * AssemblyBuilder.cs (GetFiles): Get rid of unneccessary override.
1043
1044         * AssemblyBuilder.cs (ImageRuntimeVersion): Add override to keep
1045         signature compatibility with MS.NET.
1046
1047         * TypeBuilder.cs (MemberType): Get rid of unneccessary override.
1048
1049 2003-12-08  Martin Baulig  <martin@ximian.com>
1050
1051         * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Removed; use the
1052         new `MonoGenericParam' class instead (in S.R/MonoGenericInst.cs).
1053
1054 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
1055
1056         * ModuleBuilder.cs: Double the size of the types array during insertion
1057         do avoid excessive memory allocation and copying. Track the number of
1058         types in a separate variable.
1059
1060         * TypeBuilder.cs: Same for the 'fields' and 'methods' arrays.
1061
1062 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
1063
1064         * ModuleBuilder.cs (DefinePInvokeMethod): Implement.
1065
1066         * ModuleBuilder.cs (DefineGlobalMethod): Implement the Net 1.2 variants.
1067
1068 2003-11-28  Dick Porter  <dick@ximian.com>
1069
1070         * ModuleBuilder.cs: Do string compares with the Invariant culture.
1071
1072 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
1073
1074         * AssemblyBuilder.cs (SetCustomAttribute): Implement automatic 
1075         generation of build and revision numbers. Fixes #46492.
1076
1077 2003-11-25  Zoltan Varga  <vargaz@freemail.hu>
1078
1079         * TypeBuilder.cs: Implement GetField.
1080
1081 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
1082
1083         * DynamicMethod.cs: New class.
1084
1085         * ILGenerator.cs MethodBuilder.cs ConstructorBuilder.cs: Retrieve 
1086         tokens from a token generator object instead of from the ModuleBuilder,
1087         to support the implementation of DynamicMethod. Also get rid of the 
1088         unused 'mbuilder' field.
1089
1090         * ModuleBuilder.cs: Create a token generator object which can be
1091         passed to ILGenerator.
1092
1093         * LocalBuilder.cs ILGenerator.cs: Get rid of 'module' field, obtain 
1094         needed objects from the ilgen object instead.
1095
1096 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
1097
1098         * TypeBuilder.cs FieldBuilder.cs MethodBuilder.cs ConstructorBuilder.cs:  Add support for custom modifiers from NET 1.2.
1099
1100         * ILGenerator.cs: Remove unused abuilder member.
1101
1102 2003-11-19  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1103
1104         * OpCodes.cs: Remove Boxval for v1.1+
1105
1106 2003-11-19  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1107
1108         * OpCodes.cs: Small rearrange to fix csc compiler warning about obsolete member used
1109
1110 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
1111
1112         * AssemblyBuilderAccess.cs PackingSize: Add [Flags].
1113
1114         * AssemblyBuilder.cs (DefineDynamicModule): Make internal method
1115         private.
1116
1117         * AssemblyBuilder.cs (Save): Write out the main module at the end.
1118         
1119 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
1120         
1121         * ConstructorBuilder.cs (.ctor): Automatically add RTSpecialName flag
1122         as MS does.
1123
1124 2003-11-06  Martin Baulig  <martin@ximian.com>
1125
1126         * ModuleBuilder.cs (ModuleBuilder.Save): Call `build_metadata'
1127         before writing the symbol file.
1128
1129 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
1130
1131         * AssemblyBuilder.cs (.ctor): Initialize the 'dir' field to something
1132         sensible.
1133         
1134         * AssemblyBuilder.cs (Save): Set 'created' flag.
1135
1136         * AssemblyBuilder.cs (get_next_table_index): Moved to ModuleBuilder,
1137         since table indexes are per-module.
1138
1139 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
1140
1141         * TypeBuilder.cs (DefineDefaultConstructor): Pass an array instead of 
1142         null to DefineConstructor, to avoid NullReferenceExceptions in the 
1143         binder code.
1144
1145         * AssemblyBuilder.cs ModuleBuilder.cs ILGenerator.cs: Move getUSIndex 
1146         and getToken methods, and the associated icalls to ModuleBuilder, 
1147         since tokens are per-module.
1148
1149         * AssemblyBuilder.cs ModuleBuilder.cs: Partially revert the previous
1150         patch, since having the 'is_main' field is useful in the unmanaged 
1151         code.
1152
1153         * AssemblyBuilder.cs ModuleBuilder.cs: Move the metadata creation and
1154         file creation logic to ModuleBuilder:Save (), since this needs to be
1155         done for every module. Also move the corresponding icalls to 
1156         ModuleBuilder.
1157
1158 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
1159
1160         * AssemblyBuilder.cs ModuleBuilder.cs: First steps toward a fix for
1161         #48700 (proper module support in Ref.Emit). Remove is_main field from
1162         ModuleBuilder and add a mainModule field to AssemblyBuilder instead.
1163         This is neccesary, since the main module is determined during the 
1164         Save () call: the module with the same file name as the assembly is
1165         the main module. Also create a default main module, if one is not
1166         existing.
1167
1168 2003-11-03  Martin Baulig  <martin@ximian.com>
1169
1170         * OpCodes.cs: Added Ldelem_Any, Stelem_Any and Unbox_Any from .NET 1.2.
1171
1172 2003-10-18  Sebastien Pouliot  <spouliot@videotron.ca>
1173
1174         * AssemblyBuilder.cs (SetCustomAttribute): Changed PK extraction to
1175         use Mono.Security.StrongName (#49785).
1176
1177 2003-10-18  Zoltan Varga  <vargaz@freemail.hu>
1178
1179         * AssemblyBuilder.cs (SetCustomAttribute): Extract the public key from
1180         the keyfile.
1181
1182 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
1183
1184         * AssemblyBuilder.cs (SetCustomAttribute): Ignore empty keyfile name.
1185         
1186         * AssemblyBuilder.cs: Moved loading of the public key file into
1187         managed code from reflection.c. 
1188
1189         * AssemblyBuilder.cs: Set cultureInfo and version from the AssemblyName
1190         passed to the constructor.
1191
1192 2003-10-13  Martin Baulig  <martin@ximian.com>
1193
1194         * MethodBuilder.cs (MethodBuilder): Added
1195         `TypeBuilder.MonoGenericParam[] generic_params' field.
1196         (DefineGenericParameter, SetGenericMethodSignature): New public methods.
1197
1198         * TypeBuilder.cs (DefineGenericMethod): New public method.
1199
1200 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
1201
1202         * OpCode.cs: Fix Value property. Fixes #49328.
1203
1204 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
1205
1206         * TypeBuilder.cs (CreateType): Fire TypeResolve events for unfinished 
1207         nested value types. Fixes #47022.
1208
1209 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
1210
1211         * TypeBuilder.cs: Really fix #48695.
1212
1213 Sat Sep 27 16:17:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
1214
1215         * ILGenerator.cs: instance fields are loaded from this.
1216
1217 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
1218
1219         * TypeBuilder.cs (DefineDefaultConstructor): Make this work on types
1220         without a parent. Fixes #48695.
1221
1222 2003-09-17  Martin Baulig  <martin@ximian.com>
1223
1224         * TypeBuilder.cs (TypeBuilder.CreateType): Don't append the type
1225         parameters to the type name; ie. use `Stack' instead of `Stack<T>'.
1226
1227 2003-09-06  Martin Baulig  <martin@ximian.com>
1228
1229         * TypeBuilder.cs (TypeBuilder.IsUnboundGenericParameter): Implemented.
1230
1231 2003-09-04  Martin Baulig  <martin@ximian.com>
1232
1233         * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Make this nested
1234         class internal, not protected.
1235
1236 2003-08-29  Martin Baulig  <martin@ximian.com>
1237
1238         * TypeBuilder.cs (TypeBuilder.DefineGenericParameter): New public
1239         method.  We can now create generic types.
1240         (TypeBuilder.GetGenericTypeDefinition): Override this; call the
1241         `setup_internal_class' interncall before calling our base impl.
1242
1243 Sat Aug  2 13:04:55 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
1244
1245         * ILGenerator.cs: Emission of doubles now utilise the Double.AssertEndianity
1246         icall to assert double word endianity on ARM.
1247
1248 2003-07-25  Duncan Mak  <duncan@ximian.com>
1249
1250         * OpCodes.cs (Boxval): Marked with ObsoleteAttribute.
1251
1252 2003-07-24  Miguel de Icaza  <miguel@ximian.com>
1253
1254         * TypeBuilder.cs: Added generics stubs.
1255
1256         * EnumBuilder.cs: Added generics  stubs, changed bracing style for
1257         routines.
1258
1259 2003-07-23  Duncan Mak  <duncan@ximian.com>
1260
1261         * SignatureHelper.cs: This class does not have the
1262         SerializableAttribute.
1263
1264 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
1265
1266         * AssemblyBuilder.cs: Added argument checking to all methods according
1267         to the MSDN docs. Also marked DefineUnmanagedResource and its friends
1268         as not implemented.
1269         * ModuleBuilder.cs: Added new property FileName used by AssemblyBuilder.
1270         * ModuleBuilder.cs AssemblyBuilder.cs: Implemented IsTransient ().
1271
1272 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
1273
1274         * EventBuilder.cs: Add argument checking to methods.
1275
1276 Thu Jun 5 20:18:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
1277
1278         * AssemblyBuilder.cs: implemented DefineResource ().
1279
1280 Thu Jun 5 12:36:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
1281
1282         * OpCode.cs: implemented Equals/GetHashCode.
1283
1284 Tue Jun 3 11:14:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
1285
1286         * ILGenerator.cs, OpCode.cs: optimize opcode space usage.
1287
1288 Tue Jun 3 11:13:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
1289
1290         * UnmanagedMarshal.cs: add ability to define custom attributes (the MS
1291         runtime doesn't support this).
1292
1293 2003-05-30  Zoltan Varga  <vargaz@freemail.hu>
1294
1295         * TypeBuilder.cs: Implement DefineTypeInitializer.
1296
1297 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
1298
1299         * ModuleBuilder.cs: 
1300         - Implement DefineInitializedData in terms of DefineUninitializedData
1301         - Name the types of global fields $ArrayType$<len> to cut back on the
1302         number of types created
1303         - Add argument checking
1304
1305 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
1306
1307         * AssemblyBuilder.cs: Implement GetDynamicModule. "Implement" various
1308         methods not supported under MS.NET.
1309
1310 2003-05-18  Martin Baulig  <martin@ximian.com>
1311
1312         * AssemblyBuilder.cs (corlib_void_type): New internal field.
1313         (SetCorlibTypeBuilders): Added overloaded version which takes 4
1314         arguments to set the `corlib_void_type'.
1315
1316         * TypeBuilder.cs: Use `pmodule.assemblyb.corlib_void_type' instead
1317         of `typeof (void)' to make this work when compiling corlib.
1318
1319 Thu May 15 19:16:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
1320
1321         * MethodBuilder.cs: off by one in CreateMethodBody().
1322         * TypeBuilder.cs: if the return type for a method is null, use void.
1323
1324 2003-04-28  Miguel de Icaza  <miguel@ximian.com>
1325
1326         * MethodBuilder.cs: Mono allows the parameter position to be zero
1327         to indicate the "returns:" attribute.
1328
1329 2003-04-20  Miguel de Icaza  <miguel@ximian.com>
1330
1331         * ILGenerator.cs (EmitCall): Implement.
1332
1333         Flag a few unimplemented methods with MonoTODO, make coding style
1334         for method definitions Mono consistent.
1335
1336 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
1337
1338         * ILGenerator.cs: Implement EmitWriteLine methods.
1339
1340         * TypeBuilder.cs (CreateType): Avoid creating a default constructor
1341         for the global type.
1342
1343 2003-04-15  Miguel de Icaza  <miguel@ximian.com>
1344
1345         * TypeBuilder.cs (DefineDefaultConstructor): Make it generate code
1346         by default for a default constructor.  This is what the MS runtime
1347         does.  The PythonNet code expected this.
1348
1349         (TypeBuilder.GetConstructorImpl): Implement this.
1350
1351         (TypeBuilder.CreateType): If there are no constructors defined, we
1352         create one.
1353
1354 Tue Apr 15 13:50:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
1355
1356         * ModuleBuilder.cs, TypeBuilder.cs: set nesting_type before
1357         calling setup_internal_class ().
1358
1359 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
1360
1361         * AssemblyBuilder.cs: Added 'access' member, which is needed by the
1362         runtime.
1363
1364 2003-03-26  Zoltan Varga  <vargaz@freemail.hu>
1365
1366         * ILGenerator.cs: Implemented ThrowException.
1367
1368 2003-03-10  Zoltan Varga  <vargaz@freemail.hu>
1369
1370         * ILGenerator.cs: Propagate maxstack info along branches.
1371
1372 2003-03-06  Zoltan Varga  <vargaz@freemail.hu>
1373
1374         * ILGenerator.cs (Emit): Do not pop the arguments off the stack for
1375         ldftn etc. Fixes bug #39196.
1376
1377 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
1378
1379         * ILGenerator.cs (Emit): Add fixup for already created methods and
1380         fields. Do not add fixup for types since their table index do not 
1381         change any more.
1382
1383 2003-02-26  Zoltan Varga  <vargaz@freemail.hu>
1384
1385         * TypeBuilder.cs (DefineInitializedData): Removed unnecessary assignments.
1386
1387         * ModuleBuilder.cs (DefineInitializedData): Do not call 
1388         TypeBuilder::DefineInitializedData since that would mean defining a
1389         nested type of the global type, which is wrong. Instead define a
1390         new public type as MS does.
1391
1392         * ModuleBuilder.cs (DefineUninitializedData): Ditto.
1393
1394 Thu Feb 13 18:40:52 CET 2003 Paolo Molaro <lupus@ximian.com>
1395
1396         * ModuleBuilder.cs: add the basic initialization call.
1397
1398 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
1399
1400         * AssemblyBuilder.cs: Added basic error checking to some methods
1401         according to the MSDN docs.
1402
1403 2003-02-10  Zoltan Varga  <vargaz@freemail.hu>
1404
1405         * ConstructorBuilder.cs: 
1406         - Added basic error checking to all methods according to the MSDN docs.
1407         - modified a lot of methods to throw NotSupportedException, to comply
1408           with MS.NET.
1409
1410 2003-02-09  Zoltan Varga  <vargaz@freemail.hu>
1411
1412         * TypeBuilder.cs:
1413         - Added basic error checking to all methods according to the MSDN docs.
1414         - fixed AssemblyQualifiedName.
1415         - implemented 'Size'.
1416         - modified a lot of methods to throw NotSupportedException, to comply
1417           with MS.NET.
1418         - changes tested by running a full bootstrap.
1419
1420 2003-02-09  Martin Baulig  <martin@ximian.com>
1421
1422         * AssemblyBuilder.cs (AssemblyBuilder.methods): Removed.  This was
1423         a hack for the symbol writer which is no longer needed.
1424
1425 2003-02-09  Martin Baulig  <martin@ximian.com>
1426
1427         * IMonoSymbolWriter.cs (DefineNamespace, OpenMethod): New methods.
1428
1429 2003-02-09  Martin Baulig  <martin@ximian.com>
1430
1431         * IMonoSymbolWriter.cs (MarkSequencePoint): New method which takes
1432         just the required arguments as scalars, not arrays.
1433
1434         * ILGenerator.cs (ILGenerator.MarkSequencePoint): Use that new
1435         interface method; unnecessarily creating such a large number of
1436         arrays is both slow and too memory consuming.   
1437
1438 2003-02-08  Zoltan Varga  <vargaz@freemail.hu>
1439
1440         * MethodBuilder.cs: Added error checking to methods so they conform to
1441         MSDN docs. Implemented 'GetModule' and 'CallingConvention' members. 
1442         Some other tweaks to improve compatibility with MS .NET.
1443
1444         * TypeBuilder.cs: Added 'is_created' property which will be used for
1445         checking 'type is already created' errors.
1446
1447 2003-02-07  Martin Baulig  <martin@ximian.com>
1448
1449         * ModuleBuilder.cs (.ctor): Added `bool IsMainModule' argument.
1450         (Save): New internal method; creates the module's symbol file if
1451         we're compiling with debugging information.
1452
1453         * AssemblyBuilder.cs (EmbedResource): Added internal overloaded
1454         version of this method which takes a `byte[] blob' instead of a file.
1455         (DefineDynamicMethod): If this is the first module, tell the
1456         ModuleBuilder that this is the main module.
1457         (Save): Call a new interncall `build_metadata' to create the final
1458         metadata and save all the symbol files before creating the actual
1459         output.
1460
1461         * IMonoSymbolWriter.cs: New public class; it is in the namespace
1462         Mono.CSharp.Debugger.  The Mono symbol writer implements this interface.
1463
1464 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
1465
1466         * AssemblyBuilder.cs: added GetToken (SignatureHelper).
1467
1468         * ILGenerator.cs: implemented EmitCalli() methods
1469
1470         * SignatureHelper.cs: implemented GetMethoSigHelper() methods.
1471
1472 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1473
1474         * MethodBuilder.cs: GetBaseDefinition () returns this.
1475
1476 Mon Jan 27 17:07:38 CET 2003 Paolo Molaro <lupus@ximian.com>
1477
1478         * CustomAttributeBuilder.cs, FieldBuilder.cs: applied
1479         (reformatted) patch from "Jerome Laban" <jlaban@wanadoo.fr>
1480         to fix ByValStr and ByValArray encodings.
1481
1482 2003-01-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1483
1484         * AssemblyBuilder.cs: fixed compilation with csc.
1485
1486 2003-01-26  Miguel de Icaza  <miguel@ximian.com>
1487
1488         * AssemblyBuilder.cs (Save): Set the executable bit at the end.
1489         This uses a non-official enumeration value to call SetFileAttributes.
1490
1491 2003-01-17  Zoltan Varga  <vargaz@freemail.hu>
1492
1493         * MethodBuilder.cs ConstructorBuilder.cs: modify GetParameters() so it
1494         returns information even when the app did not use DefineParameter() to
1495         define the parameters.
1496
1497         * ConstructorBuilder.cs (ctor): allways define SpecialName attribute
1498         for constructors as done by MS.
1499
1500 Mon Jan 13 11:37:14 CET 2003 Paolo Molaro <lupus@ximian.com>
1501
1502         * TypeBuilder.cs, ModuleBuilder.cs: better type name cache.
1503
1504 2003-01-10  Zoltan Varga  <vargaz@freemail.hu>
1505
1506         * ILGenerator.cs: Implemented EmitWriteLine(string).
1507
1508         * TypeBuilder.cs (DefineInitializedData): Call DefineNestedType() 
1509         instead of DefineType() so the auxiliary types do not pollute the 
1510         global namespace. This is consistent with the behaviour of MS .NET.
1511
1512 Fri Jan 10 16:03:30 CET 2003 Paolo Molaro <lupus@ximian.com>
1513
1514         * ILGenerator.cs, MethodBuilder.cs, TypeBuilder.cs,
1515         ConstructorBuilder.cs: some tweaks to reduce memory usage.
1516
1517 Thu Jan 2 18:46:09 CET 2003 Paolo Molaro <lupus@ximian.com>
1518
1519         * ModuleBuilder.cs, TypeBuilder.cs: support global fields and methods.
1520
1521 Thu Dec 19 00:06:57 CET 2002 Paolo Molaro <lupus@ximian.com>
1522
1523         * AssemblyBuilder.cs: remove duplicated user string entries.
1524
1525 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
1526
1527         * FieldBuilder.cs: added 'handle' field which is needed by some new
1528         code in reflection.c.
1529
1530 2002-12-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1531
1532         * TypeBuilder.cs: implemented GetInterfaceMap () when the Type has been
1533         created.
1534
1535 Fri Nov 8 14:53:03 CET 2002 Paolo Molaro <lupus@ximian.com>
1536
1537         * ILGenerator.cs: account for the exception object being passed to the
1538         catch handler to calc max_stack.
1539
1540 2002-09-21  Martin Baulig  <martin@gnome.org>
1541
1542         * ModuleBuilder.cs (ModuleBuilder.symbol_writer): Make this
1543         field internal, not private.
1544         (ModuleBuilder.SymWriter_DefineLocalVariable): Removed.
1545
1546         * LocalBuilder.cs (LocalBuilder.SetLocalSymInfo): Use the
1547         ISymbolWriter's DefineLocalVariable() method instead of the
1548         IMonoSymbolWriter hack.
1549
1550 Mon Sep 16 19:02:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
1551
1552         * AssemblyBuilder.c: special case some custom attributes.
1553
1554 2002-09-12  Dick Porter  <dick@ximian.com>
1555
1556         * TypeBuilder.cs: Say _which_ Type has already been created
1557
1558 2002-09-11  Miguel de Icaza  <miguel@ximian.com>
1559
1560         * ModuleBuilder.cs (GetTypes): Implement.
1561
1562 Tue Sep 10 12:12:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
1563
1564         * ConstructorBuilder.cs: added a field to hold the handle.
1565
1566 Mon Sep 9 17:31:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
1567
1568         * TypeBuilder.cs: prepare for the real CreateType implementation.
1569
1570 Tue Aug 27 16:57:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
1571
1572         * TypeBuilder.cs: remove duplicate code and fix
1573         named field reading in custom attr.
1574
1575 2002-08-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1576
1577         * TypeBuilder.cs: UnspecifiedTypeSize is 0.
1578
1579 Wed Aug 14 17:38:41 CEST 2002 Paolo Molaro <lupus@ximian.com>
1580
1581         * TypeBuilder.cs: ReflectedType and CreateType fixes.
1582
1583 Thu Aug 8 10:25:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
1584
1585         * AssemblyBuilder.cs: added API to embed managed resources.
1586
1587 2002-08-03  Martin Baulig  <martin@gnome.org>
1588
1589         * TypeBuilder.cs (TypeBuilder.DeclaringType): Implemented.
1590
1591 Thu Jul 25 13:57:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
1592
1593         * AssemblyBuilder.cs: support linking external resources.
1594
1595 2002-07-19  Martin Baulig  <martin@gnome.org>
1596
1597         * ILGenerator.cs (Emit (OpCode, LocalBuilder)): Throw an exception
1598         when trying to emit a local that was defined in a different ILGenerator.
1599
1600         * LocalBuilder.cs (LocalBuilder): Added `ILGenetator' argument to
1601         the constructor.
1602
1603 Tue Jul 16 19:32:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
1604
1605         * ILGenerator.cs: stack size check fix.
1606
1607 Sat Jul 13 17:30:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
1608
1609         * AssemblyBuilder.cs: add also the enum_type for compiling corlib.
1610         * TypeBuilder.cs: complete IsValueType.
1611
1612 Sat Jul 13 15:08:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
1613
1614         * TypeBuilder.cs: better IsValueType.
1615
1616 2002-07-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1617
1618         * CustomAttributeBuilder.cs: removed compile warning.
1619
1620 Fri Jul 12 11:34:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
1621
1622         * ILGenerator.cs: fixup typebuilder tokens as well.
1623
1624 Tue Jul 9 19:03:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
1625
1626         * TypeBuilder.cs: special case SerializarionAttribute.
1627         Tweaks to get correct code in corlib.
1628
1629 2002-07-06  Miguel de Icaza  <miguel@ximian.com>
1630
1631         * ILGenerator.cs (ILGenerator.Emit): For doubles and floats, swap
1632         the bytes on big endian systems. 
1633
1634 2002-07-03  Martin Baulig  <martin@gnome.org>
1635
1636         * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): Moved
1637         these fields up after the last entry in MonoReflectionAssemblyBuilder
1638         in reflection.h.
1639
1640         * TypeBuilder.cs (IsValueTypeImpl): Use the AssemblyBuilder's
1641         `corlib_value_type' instead of `typeof (System.ValueType)'.
1642         (DefineNestedType): Use the AssemblyBuilder's `corlib_object_type'
1643         instead of `typeof (object)'.
1644
1645 2002-07-02  Martin Baulig  <martin@gnome.org>
1646
1647         * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): New
1648         internal fields.  When compiling corlib, they point to the newly
1649         created System.Object and System.ValueType types.
1650         (SetCorlibTypeBuilders): New public function.  This will be
1651         dynamically called from MCS when compiling corlib.
1652
1653         * TypeBuilder.cs (DefineInitializedData): Use the AssemblyBuilder's
1654         `corlib_value_type' as parent type instead of `typeof (System.ValueType)'
1655         to make it work when compiling corlib.
1656
1657         * ModuleBuilder.cs (assemblyb): Made this field internal, not private.
1658
1659 Tue Jul 2 18:34:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
1660
1661         * TypeBuilder.cs: implemented AssemblyQualifiedName.
1662         * MethodBuilder.cs, ConstructorBuilder.cs: special case custom attr.
1663
1664 Mon Jul 1 16:17:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
1665
1666         * TypeBuilder.cs: implemented AddInterfaceImplementation().
1667
1668 2002-06-28  Martin Baulig  <martin@gnome.org>
1669
1670         * MethodBuilder.cs (GetParameters): Return all parameters, not all
1671         but the last one.
1672
1673 2002-06-27  Martin Baulig  <martin@gnome.org>
1674
1675         * ConstructorBuilder.cs (GetParameters): Implemented.
1676
1677 Mon Jun 17 14:55:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
1678
1679         * ModuleBuilder.cs, TypeBuilder.cs: fixes for nested types handling.
1680
1681 Fri Jun 14 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
1682
1683         * CustomAttributeBuilder.cs: added custom attribute related internal
1684         helper methods.
1685         * FieldBuilder.cs, ParameterBuilder.cs: handle MarshalAs attribute.
1686         * UnmanagedMarshal.cs: implemented.
1687
1688 Mon Jun 10 18:58:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
1689
1690         * PropertyBuilder.cs: implemented ReflectedType and DeclaringType
1691         properties.
1692
1693 2002-06-07  Martin Baulig  <martin@gnome.org>
1694
1695         * TypeBuilder.cs (TypeBuilder): Added `PackingSize packing_size' and
1696         `int type_size' fields to the constructor.
1697         (DefineNestedType): Pass packing_size and type_size to the constructor.
1698
1699         * ModuleBuilder.cs (DefineType): Pass the packing_size and type_size
1700         fields to the TypeBuilder's constructor.
1701
1702 2002-06-07  Martin Baulig  <martin@gnome.org>
1703
1704         * TypeBuilder.cs (DefineNestedType): There is no overload for this
1705         method which takes 5 args in the specs, removed it.
1706
1707 Fri Jun 7 17:04:06 CEST 2002 Paolo Molaro <lupus@ximian.com>
1708
1709         * AssemblyBuilder.cs: updates for PE/COFF rewrite.
1710
1711 2002-05-30  Martin Baulig  <martin@gnome.org>
1712
1713         * AssemblyBuilder.cs (methods): Made this internal and don't
1714         initialize it.  It will be initialized by the ModuleBuilder's
1715         GetSymbolWriter() method.
1716         (get_next_table_index): Only store the method in the `methods'
1717         array if it's not null.
1718
1719         * ModuleBuilder.cs (GetSymbolWriter): Initialize the AssemblyBuilder's
1720         `methods' field if necessary and pass it as third argument to the
1721         symbol writer's constructor.
1722
1723 2002-05-25  Martin Baulig  <martin@gnome.org>
1724
1725         * TypeBuilder.cs (TypeToken): Implemented.
1726
1727 2002-05-24  Martin Baulig  <martin@gnome.org>
1728
1729         * ModuleBuilder.cs (symwriter_define_local): New private variable.
1730         (GetSymbolWriter): Look for a custom version of "DefineLocalVariable"
1731         and store it in `symwriter_define_local'.
1732         (SymWriter_DefineLocalVariable): New internal method to call the
1733         symbol writer's custom DefineLocalVariable() method.  It is safe to
1734         call this method if there's no symbol writer.
1735
1736         * LocalBuilder.cs (SetLocalSymInfo): Use the MethodBuilder'snew
1737         SymWriter_DefineLocalVariable().
1738
1739         * MethodBuilder.cs (GetParameters): Implemented.
1740
1741 2002-05-22  Martin Baulig  <martin@gnome.org>
1742
1743         * ModuleBuilder.cs (GetSymbolWriter): Pass the this pointer to the
1744         symbol writer's constructor.
1745
1746 2002-05-22  Martin Baulig  <martin@gnome.org>
1747
1748         * AssemblyBuilder.cs (methods): New field.
1749         (get_next_table_index): Record all methods and constructors
1750         (table 0x06) in the `methods' array.  This is read by the
1751         Mono.CSharp.Debugger.MonoSymbolWriter::get_method interncall to
1752         get the MethodBuilder / ConstructorBuilder back from the token.
1753
1754         * *Builder.cs (get_next_table_index): Added `object obj' argument.
1755         (<constructors>): pass the this pointer to get_next_table_index ().
1756
1757 2002-05-20  Martin Baulig  <martin@gnome.org>
1758
1759         * TypeBuilder.cs (DefineField): Call the new `create_internal_class'
1760         interncall after adding the first field.  This is used when creating
1761         enum types to set `klass->enum_basetype'.
1762
1763 Thu May 16 16:09:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
1764
1765         * TypeBuilder.cs: complete special acse support for CharSet, Size and
1766         Pack named args in StructLayout attribute.
1767
1768 Tue May 14 17:13:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
1769
1770         * MethodBuilder.cs: revert change in accessibility of
1771         GetILGenerator(int).
1772
1773 Tue May 14 13:31:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
1774
1775         * FieldBuilder.cs, ParameterBuilder.cs: more special-casing of
1776         attributes.
1777
1778 Fri May 10 20:57:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
1779
1780         * CustomAttributeBuilder.cs: expose internal data for use in
1781         reflection.
1782         * FieldBuilder.cs, TypeBuilder.cs: special case FieldOffset and
1783         StructLayout attributes.
1784
1785 Fri May 10 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
1786
1787         * MethodBuilder.cs, ConstructorBuilder.cs: implemented InitLocals
1788         property.
1789
1790 2002-04-26  Martin Baulig  <martin@gnome.org>
1791
1792         * ModuleBuilder.cs (DefineDocument): Implemented.
1793
1794 Tue Apr 16 13:02:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
1795
1796         * AssemblyBuilder.cs: pad output file to file alignment.
1797         * FieldBuilder.cs: ReflectedType.
1798         * ModuleBuilder.cs: added guid generation and array method creation.
1799         * MonoArrayMethod.cs: array method support code.
1800         
1801 Wed Apr 10 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
1802
1803         * ILGenerator.cs: use a stack to keep track of exception blocks.
1804
1805 Mon Apr  8 06:19:01  2002 Piers Haken <piersh@friskit.com>
1806
1807         * ILGenerator.cs: added LabelField.label_base to allow for
1808         arbitrary offsets (for switch statement)
1809
1810 Fri Apr 5 15:41:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
1811
1812         * AssemblyBuilder.cs: simpler protocol wih the runtime to
1813         get the assembly data.
1814
1815 Tue Mar 26 20:10:24 CET 2002 Paolo Molaro <lupus@ximian.com>
1816
1817         * AssemblyBuilder.cs: use FileMode.Create.
1818         * ILGenerator.cs: optimize localbuilder related opcodes.
1819         Track parameters to adjust maxstack.
1820         * LocalBuilder.cS: use unsigned for position.
1821
1822 2002-03-23  Miguel de Icaza  <miguel@ximian.com>
1823
1824         * LocalBuilder.cs: Drop the symbol_writer as LocalBuilder fields.
1825         Do this lazily in SetLocalSymInfo.
1826         
1827 2002-03-24  Martin Baulig  <martin@gnome.org>
1828
1829         * ModuleBuilder.cs (GetSymbolWriter): The MonoSymbolWriter's constructor
1830         now takes a `string assembly_filename' argument, pass it our fully
1831         qualified assembly name.
1832
1833 2002-03-24  Nick Drochak  <ndrochak@gol.com>
1834
1835         * ILGenerator.cs: Use #if-#endif instead of if(false){} to disable
1836         code.  This way there is no compiler warning.
1837
1838         * TypeBuilder.cs: Removed the returns that came after the throws.
1839         This removes a few more compiler warnings. Also marked with MonoTODO
1840         all places where we throw NotImplemented exceptions.
1841
1842 2002-03-23  Martin Baulig  <martin@gnome.org>
1843
1844         * SignatureHelper.cs (GetFieldSignatureHelper, GetLocalSignatureHelper):
1845         Implemented.
1846
1847         * LocalBuilder.cs (LocalBuilder): This internal constructor now takes
1848         a ModuleBuilder argument instead of a ISymbolWriter one.
1849         (SetLocalSymInfo): Create and pass type signature to DefineLocalVariable.
1850
1851 2002-03-23  Martin Baulig  <martin@gnome.org>
1852
1853         * ILGenerator.cs (BeginScope, EndScope): Implemented.
1854
1855 2002-03-20  Martin Baulig  <martin@gnome.org>
1856
1857         * ModuleBuilder.cs (GetSymbolWriter): New internal function. Dynamically
1858         loads the default symbol writer, catch all possible exceptions and return
1859         null on failure.
1860         (ModuleBuilder): Added `bool emitSymbolInfo' argument to this internal
1861         constructor; if set, call GetSymbolWriter ().
1862         (GetSymWriter): Implemented.
1863
1864         * LocalBuilder.cs (LocalBuilder): Added ISymbolWriter argument to this
1865         internal method.
1866         (SetLocalSymInfo): Implemented, call ISymbolWriter.DefineLocalVariable ()
1867         if the symbol writer is not null.
1868
1869         * ILGenerator.cs (ILGenerator): Call ModuleBuilder.GetSymWriter () to get
1870         and store the symbol writer.
1871         (DeclareLocal): Pass the symbol writer to LocalBuilder's constructor.
1872         (MarkSequencePoint): Implemented, call ISymbolWriter.DefineSequencePoints ()
1873         if the symbol writer is not null.
1874
1875         * AssemblyBuilder.cs (DefineDynamicModule): Pass the `bool emitSymbolInfo'
1876         to ModuleBuilder's constructor.
1877
1878 Sat Mar 16 19:11:47 CET 2002 Paolo Molaro <lupus@ximian.com>
1879
1880         * ModuleBuilder.cs: handle modified types correctly.
1881
1882 Thu Mar 7 17:10:42 CET 2002 Paolo Molaro <lupus@ximian.com>
1883
1884         * AssemblyBuilder.cs: allow saving bigger assemblies.
1885         * ILGenerator.cs: add fixup table for fields and methods, since
1886         at the end of the compile they may end up with a different table
1887         index.
1888         * ModuleBuilder.cs: add cache for type names to speed up the type
1889         lookups from the compiler.
1890         * TypeBuilder.cs: GetInterfaces () returns only interfaces in the
1891         current type, not in parents (the docs are wrong).
1892
1893 Tue Mar 5 18:09:34 CET 2002 Paolo Molaro <lupus@ximian.com>
1894
1895         * EventBuilder.cs: implemented.
1896         * TypeBuilder.cs: implemented DefineEvent() method and UnderlyingSystemType
1897         property.
1898
1899 Mon Mar 4 20:34:52 CET 2002 Paolo Molaro <lupus@ximian.com>
1900
1901         * ILGenerator.cs: make enough room in the byte array for string
1902         tokens.
1903         * TypeBuilder.cs: fixed GetInterfaces().
1904
1905 Mon Mar 4 11:30:40 CET 2002 Paolo Molaro <lupus@ximian.com>
1906
1907         * TypeBuilder.cs: implemented GetConstructors(), GetFields(),
1908         GetMethods(), GetProperties().
1909
1910 Thu Feb 28 19:15:10 CET 2002 Paolo Molaro <lupus@ximian.com>
1911
1912         * AssemblyBuilder.cs: call into the runtime to init some basic
1913         assembly stuff. Reserve slot 1 of typedef table for .<Module>.
1914         * ModuleBuilder.cs: call into the runtime if we need to create a
1915         modief type, such as arrays, byref etc.
1916         * TypeBuilder.cs: call into the runtime to create the MonoClass
1917         representation for the type. Throw exceptions with not implemented
1918         stuff.
1919
1920 Wed Feb 27 18:48:47 CET 2002 Paolo Molaro <lupus@ximian.com>
1921
1922         * ILGenerator.cs: fix nested exception blocks.
1923
1924 Wed Feb 20 22:30:49 CET 2002 Paolo Molaro <lupus@ximian.com>
1925
1926         * AssemblyBuilder.cs: upped compiled assembly size limit.
1927         Implemented SetCustomAttribute () methods.
1928         * CustomAttributeBuilder.cs: implemented the needed constructor
1929         stuff.
1930         * Cosntructorbuilder.cs, EnumBuilder.cs, FieldBuilder.cs,
1931         MethodBuilder.cs, ModuleBuilder.cs, ParameterBuilder.cs,
1932         PropertyBuilder.cs, TypeBuilder.cs: Implemented SetCustomAttribute () methods.
1933
1934 Wed Feb 20 14:54:01 CET 2002 Paolo Molaro <lupus@ximian.com>
1935
1936         * AssemblyBuilder.cs: add SetCustomAttribute () to keep the compiler
1937         going.
1938
1939 Fri Feb 15 18:15:04 CET 2002 Paolo Molaro <lupus@ximian.com>
1940
1941         * ILGenerator.cs: finally block support and fixes.
1942
1943 Thu Feb 14 18:55:52 CET 2002 Paolo Molaro <lupus@ximian.com>
1944
1945         * FieldBuilder.cs: Add SetRVAData().
1946         * ILGenerator.cs: speed up code array growth.
1947         * TypeBuilder.cs: fix IsValueTypeImpl(). Add class_size member.
1948         Implement DefineInitializedData().
1949
1950 Tue Jan 22 23:01:11 CET 2002 Paolo Molaro <lupus@ximian.com>
1951
1952         * EnumBuilder.cs, TypeBuilder.cs: updates for changes in Type.cs.
1953         * ModuleBuilder.cs: fix lookup of nested types.
1954
1955 Tue Jan 15 22:46:21 CET 2002 Paolo Molaro <lupus@ximian.com>
1956
1957         * ILGenerator.cs: implement some of the exception support methods.
1958
1959 Mon Jan 14 17:07:32 CET 2002 Paolo Molaro <lupus@ximian.com>
1960
1961         * ModulerBuilder.cs: search also for subtypes in GetTypes().
1962         * TypeBuilder.cs: bugfix in FullName. Implemented DefineNestedType().
1963
1964 Fri Jan 11 19:00:29 CET 2002 Paolo Molaro <lupus@ximian.com>
1965
1966         * MethodBuilder.cs, ConstructorBuilder.cs: save parameter info.
1967
1968 Thu Jan 10 21:07:54 CET 2002 Paolo Molaro <lupus@ximian.com>
1969
1970         * ILGenerator.cs: handle type tokens (used for box opcode).
1971
1972 Wed Jan 9 19:37:55 CET 2002 Paolo Molaro <lupus@ximian.com>
1973
1974         * ILGenerator.cs: emit float and doubles.
1975         * ModuleBuilder.cs: off-by-one error fix and GetType()
1976         implementations.
1977         * TypeBuilder.cs: AttributesImpl added.
1978         * UnmanagedMarshal.cs: stubbed out class.
1979
1980 Sat Jan 5 15:59:05 CET 2002 Paolo Molaro <lupus@ximian.com>
1981
1982         * ILGenerator.cs: fix emission of two-bytes opcodes.
1983         Missing slot for locals array. Throw exceptions on unimplemented
1984         methods.
1985         * OpCode.cs: add a comment: the Value property is useless.
1986         * OpCodes.cs: fix name of tail opcode (Tail -> Tailcall).
1987
1988 2002-01-05  Ravi Pratap  <ravi@ximian.com>
1989
1990         * ConstructorBuilder.cs : Use the MonoTODO attribute.
1991
1992         * ILGenerator.cs, Label.cs, MethodBuilder.cs, ModuleBuilder.cs,
1993         ParameterBuilder.cs, TypeBuilder.cs : Ditto.
1994         
1995 Thu Jan 3 23:26:15 CET 2002 Paolo Molaro <lupus@ximian.com>
1996
1997         * ILGenerator.cs: typo fix.
1998
1999 Mon Dec 24 17:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
2000
2001         * TypeBuilder.cs: added DefineMethodOverride().
2002         * MethodBuilder.cs: add override_method member and setter.
2003
2004 Mon Nov 19 13:58:01 CET 2001 Paolo Molaro <lupus@ximian.com>
2005
2006         * AssemblyBuilder.cs: add method to register a string in the "#US"
2007         stream.
2008         * EnumBuilder.cs, SignatureHelper.cs: added stubs.
2009         * ILGenerator.cs: more stuff implemented.
2010         * LocalBuilder.cs: keep track of local var index.
2011
2012 Thu Nov 15 18:11:23 CET 2001 Paolo Molaro <lupus@ximian.com>
2013
2014         * ConstructorBuilder.cs: implement the interesting methods.
2015         * ILGenerator.cs: adapt for use with both a MethodBuilder and a
2016         ConstructorBuilder.
2017         * MethodBuilder.cs: add ImplAttributes.
2018         * ParameterBuilder.cs: adapt for ConstructorBuilder.
2019         * TypeBuilder.cs: add constructors handling.
2020
2021 Wed Nov 14 17:01:45 CET 2001 Paolo Molaro <lupus@ximian.com>
2022
2023         * ConstructorBuilder.cs: added missing stubs and some implementation.
2024         * CustomAttributeBuilder.cs: added.
2025         * EventBuilder.cs: added.
2026         * FieldBuilder.cs: updates.
2027         * MethodBuilder.cs: stuff to implement P/Invoke methods.
2028         * ModuleBuilder.cs: added GetArrayMethod() stub.
2029         * ParameterBuilder.cs, PropertyBuilder.cs: updates.
2030         * TypeBuilder.cs: updates and stubs.
2031
2032 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
2033
2034         * TypeBuilder.cs: Added implementation for TypeHandle.
2035
2036 Tue Nov 6 09:13:45 CET 2001 Paolo Molaro <lupus@ximian.com>
2037
2038         * AssemblyBuilder.cs: define an internal constructor.
2039
2040 2001-10-07  Miguel de Icaza  <miguel@ximian.com>
2041
2042         * AssemblyBuilder.cs: Reformatted.
2043
2044         Added override keywords to those that needed them.
2045
2046         Removed methods that we do not override, but just inherit
2047
2048 Tue Sep 25 16:53:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
2049
2050         * TypeBuilder.cs, ConstructorBuilder.cs, ModuleBuilder.cs: added.