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