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