2010-01-30 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mcs / class / corlib / System.Reflection.Emit / ChangeLog
1 2010-01-30  Zoltan Varga  <vargaz@gmail.com>
2
3         * CustomAttributeBuilder.cs (Initialize): Add more argument checking to avoid
4         assertions in the runtime. Fixes #574353.
5
6 2010-01-19 Rodrigo Kumpera  <rkumpera@novell.com>
7
8         * EventOnTypeBuilderInst.cs: Fix build.
9
10 2010-01-03  Zoltan Varga  <vargaz@gmail.com>
11
12         * ILGenerator.cs (Emit): Disallow byref types. Fixes #564411.
13
14 2009-12-16 Rodrigo Kumpera  <rkumpera@novell.com>
15
16         * FieldOnTypeBuilderInst.cs: Add more CompilerContext hacks.
17
18 2009-12-14 Rodrigo Kumpera  <rkumpera@novell.com>
19
20         * TypeBuilder.cs (GetConstructor/GetMethod): Fail with a NRE if method/ctor
21         is null.
22
23 2009-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
24
25         * AssemblyBuilder.cs (MakeGenericType): Accept a Type as argument.
26
27         * ConstructorOnTypeBuilderInst.cs: Change it to support an underlying
28         non-sre constructor.
29
30         * MethodOnTypeBuilderInst.cs: Change it to support an underlying
31         non-sre method.
32
33         * FieldOnTypeBuilderInst.cs: Change it to support an underlying
34         non-sre field.
35
36         * EventOnTypeBuilderInst.cs: Change it to support an underlying
37         non-sre event.
38
39 2009-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
40
41         * AssemblyBuilder.cs: Add MakeGenericType method while takes care of doing
42         generic instance canonicalization under compiler context.
43
44         * DerivedTypes.cs: Add ArrayType::GetEffectiveRank to make it possible to
45         distinguish between [] and [*].
46
47         * TypeBuilder.cs: Implement MakeGenericType in managed code.
48
49 2009-12-09  Jb Evain  <jbevain@novell.com>
50
51         * ILGenerator.cs (Emit(OpCode,LocalBuilder)): deal with
52         opcodes not related to locals.
53
54 2009-12-08 Rodrigo Kumpera  <rkumpera@novell.com>
55
56         * MethodOnTypeBuilderInst.cs: Add new constructor that takes a MethodInfo
57         as base method. Change how compiler context is calculated to take the
58         instantiation vector into account.
59
60 2009-12-08 Rodrigo Kumpera  <rkumpera@novell.com>
61
62         * MethodOnTypeBuilderInst.cs: Change base_method type from MethodBuilder to
63         MethodInfo.
64
65 2009-12-08 Rodrigo Kumpera  <rkumpera@novell.com>
66
67         * DerivedTypes.cs: Implement IsCompilerContext property and replace
68         all checks to use it.
69
70         * EnumBuilder.cs: Ditto.
71
72         * GenericTypeParameterBuilder.cs: Ditto.
73
74         * TypeBuilder.cs: Ditto.
75
76         * FieldOnTypeBuilderInst.cs: Replace ad-hoc check for compiler context
77         with proper call to generic instance type.
78
79         * MethodOnTypeBuilderInst.cs: Ditto.
80
81         * ConstructorOnTypeBuilderInst.cs: Ditto.
82
83 2009-12-04 Rodrigo Kumpera  <rkumpera@novell.com>
84
85         * MethodBuilder.cs (MakeGenericMethod): Don't rely on the runtime to
86         inflate a MethodBuilder. Create directly an instance of MethodOnTypeBuilderInst.
87
88         * MethodOnTypeBuilderInst.cs (MakeGenericMethod): Cleanup this method and support
89         inflating already inflated methods under compiler context.
90
91 2009-12-04 Rodrigo Kumpera  <rkumpera@novell.com>
92
93         * MethodOnTypeBuilderInst.cs: Change instantiation field type to System.Type.
94
95         * MethodOnTypeBuilderInst.cs (MetadataToken): Explicitly throw if not under
96         compiler context.
97
98 2009-12-04 Rodrigo Kumpera  <rkumpera@novell.com>
99
100         * MethodOnTypeBuilderInst.cs: Rename mb to base_method to better reflect
101         it's meaning. Introduce IsCompilerContext method and apply it's usage.
102
103 2009-11-16  Marek Safar  <marek.safar@gmail.com>
104
105         * ILGenerator.cs, DynamicMethod.cs, MethodBuilder.cs,
106         ConstructorBuilder.cs: Some 4.0 changes.
107
108 2009-10-30  Sebastien Pouliot  <sebastien@ximian.com>
109
110         * MethodBuilder.cs: Add missing 'names' validations in 
111         DefineGenericParameters
112
113 2009-10-29  Sebastien Pouliot  <sebastien@ximian.com>
114
115         * ModuleBuilder.cs: Add missing 'className' validations in GetType
116         * TypeBuilder.cs: Add missing 'names' validations in 
117         DefineGenericParameters
118
119 2009-10-27  Marek Safar  <marek.safar@gmail.com>
120
121         * GenericTypeParameterBuilder.cs: Attributes work under NET_4_0.
122
123 2009-10-24  Sebastien Pouliot  <sebastien@ximian.com>
124
125         * AssemblyBuilder.cs: For Silverlight only AssemblyBuilderAccess.Run
126         is supported (browser-side) but we still allow other values when
127         compiling (e.g. smcs) outside the browser (wo coreclr)
128         * TypeBuilder.cs (GetConstructor): Fix validations
129
130 2009-09-18  Sebastien Pouliot  <sebastien@ximian.com>
131
132         * AssemblyBuilder.cs, ConstructorBuilder.cs, MethodBuilder.cs, 
133         TypeBuilder.cs: Don't process PermissionSet under NET_2_1
134
135 2009-09-06 Rodrigo Kumpera  <rkumpera@novell.com>
136
137         * ConstructorOnTypeBuilderInst.cs (GetParameters): Make it work for
138         finished types.
139
140 2009-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
141
142         * ILGenerator.cs (label_fixup): Check for unmarked labels.
143         Fixes #536243.
144
145 2009-08-06 Rodrigo Kumpera  <rkumpera@novell.com>
146
147         * MethodBuilder.cs: Mark generic_params internal.
148
149         * MethodOnTypeBuilderInst.cs: Add fields to support
150         inflated generic methods. Implement generics related
151         methods.
152
153 2009-08-06  Marek Safar  <marek.safar@gmail.com>
154
155         * ILGenerator.cs: Add 4.0 ILOffset.
156
157 2009-08-04 Rodrigo Kumpera  <rkumpera@novell.com>
158
159         * DerivedTypes.cs (DerivedType): Implement ToString ().
160
161 2009-08-03 Rodrigo Kumpera  <rkumpera@novell.com>
162
163         * EventBuilder.cs: Make some fields internal.
164
165         * TypeBuilder.cs: Make events field internal.
166         Remove some MonoTODOs that are already done.
167
168         * EventOnTypeBuilderInst.cs: New file which implements
169         the required functionality by compiler context.
170
171 2009-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
172
173         * TypeBuilder.cs (IsDefined): Throw if not
174         created and not in compiler context.
175
176 2009-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
177
178         * TypeBuilder.cs (GetNestedTypes): Throw if not
179         created and not in compiler context.
180
181 2009-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
182
183         * TypeBuilder.cs (GetEvents): Throw if not created
184         and not in compiler context.
185
186         * TypeBuilder.cs (GetNestedType): Don't rely on
187         MonoType implementation as it doesn't work if the
188         nested type is defined after the TypeBuilder is
189         created.
190
191 2009-07-29 Rodrigo Kumpera  <rkumpera@novell.com>
192
193         * TypeBuilder.cs (GetConstructors): Throw if
194         TypeBuilder is incomplete.
195
196 2009-07-29 Rodrigo Kumpera  <rkumpera@novell.com>
197
198         * TypeBuilder.cs (DefineMethodOverride): Throw if
199         method body doesn't belong to the TypeBuilder.
200
201 2009-07-29 Rodrigo Kumpera  <rkumpera@novell.com>
202
203         * TypeBuilder.cs (GetInterfaces): Return the expanded
204         interface list if the type has been created.
205
206 2009-07-29 Rodrigo Kumpera  <rkumpera@novell.com>
207
208         * TypeBuilder.cs (GetGenericArguments): Returns null for
209          non generic TypeBuilders.
210
211 2009-07-29 Rodrigo Kumpera  <rkumpera@novell.com>
212
213         * TypeBuilder.cs (GenericParameterAttributes): Return none.
214
215 2009-07-29 Rodrigo Kumpera  <rkumpera@novell.com>
216
217         * TypeBuilder.cs (GetElementType): Throw always.
218
219 2009-07-29 Rodrigo Kumpera  <rkumpera@novell.com>
220
221         * TypeBuilder.cs (GetGenericTypeDefinition): Either
222         throw or return itself.
223
224 2009-07-29 Rodrigo Kumpera  <rkumpera@novell.com>
225
226         * TypeBuilder.cs (GenericParameterPosition): Return 0
227         instead of throwing.
228
229 2009-07-29 Rodrigo Kumpera  <rkumpera@novell.com>
230
231         * TypeBuilder.cs (DeclaringMethod): Return null
232         instead of throwing.
233
234 2009-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
235
236         * TypeBuilder.cs (CreateType): Throw if concrete
237         type has abstract method.
238
239 2009-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
240
241         * GenericTypeParameterBuilder.cs: SetBaseTypeConstraint with
242         null argument is the same as passing typeof (object).
243
244 2009-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
245
246         * DerivedTypes.cs (ArrayType): Special case vector arrays using zero
247          as rank. This is required because we need to make the distinction
248         between a vector and a one dimension SZARRAY.
249
250         * EnumBuilder.cs: Create vectors as rank-zero ArrayType objects.
251
252         * TypeBuilder.cs: Same.
253
254         * GenericTypeParameterBuilder.cs: Same.
255
256 2009-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
257
258         DerivedTypes.cs: ByRef and Pointer types return Array as base
259         type.
260
261 2009-07-28  Marek Safar  <marek.safar@gmail.com>
262
263         * DynamicMethod.cs: Pass skipVisibility.
264
265 2009-07-27 Rodrigo Kumpera  <rkumpera@novell.com>
266
267         OpCode.cs: HashCode is meant to be calculated based on Name. 
268
269         OpCodeNames.cs: Fix some names.
270
271         OpCodes.cs: Fix Stelem, Constrained and Readonly specs.
272
273 2009-07-26  Miguel de Icaza  <miguel@novell.com>
274
275         * ILGenerator.cs: Fix the exception thrown when LocalBuilders are
276         mixed between ILGenerators.
277
278 2009-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
279
280         * TypeBuilder.cs: Make the interfaces field internal.
281
282 2009-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
283
284         * FieldOnTypeBuilderInst.cs: Add a ToString() to help debugging.
285         Make fields internal.
286
287         * MethodOnTypeBuilderInst.cs: Build it under BOOTSTRAP_NET_2_0.
288
289 2009-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
290
291         * ConstructorBuilder.cs: Make parameters and pinfo fields internal.
292
293         * ConstructorOnTypeBuilderInst.cs: Build it under BOOTSTRAP_NET_2_0.
294         Properly implement GetParameters under compiler context.
295
296         * TypeBuilder.cs: Make ctors field internal.
297
298 2009-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
299
300         * FieldOnTypeBuilderInst.cs: Implement MetadataToken and FieldToken
301         for compiler context.
302
303         * TypeBuilder.cs: Make FieldBuilder related fields internal.
304
305 2009-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
306
307         * PropertyOnTypeBuilderInst.cs: Use TypeBuilder::GetMethod instead of
308         MonoGenericClass::GetCorrespondingInflatedMethod. This is possible
309         since the returned methods of MonoGenericClass::GetMethods have been
310         unified with TypeBuilder::GetMethod.
311
312         * TypeBuilder.cs: Make property related fields internal.
313
314 2009-07-22 Rodrigo Kumpera  <rkumpera@novell.com>
315
316         * MethodOnTypeBuilderInst.cs: Implement ToString to help debugging.
317
318         * TypeBuilder.cs: Make the properties field internal.
319
320         * PropertyOnTypeBuilderInst.cs: New type implementing a property of an
321         inflated TypeBuilder.
322
323 2009-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
324
325         * EnumBuilder.cs: Use new derived types for array, pointer and byref.
326
327 2009-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
328
329         * GenericTypeParameterBuilder.cs (MakeByRefType): Return an instance
330         of PointerType instead of relying on the runtime for it.
331
332 2009-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
333
334         * GenericTypeParameterBuilder.cs (MakeByRefType): Return an instance
335         of ByRefType instead of relying on the runtime for it.
336
337 2009-07-14 Rodrigo Kumpera  <rkumpera@novell.com>
338
339         * DerivedTypes.cs (DerivedType): Implement IsAssignableFrom
340         and ContainsGenericParameters
341
342         * DerivedTypes.cs (DerivedType::UnderlyingSystemType): Create 
343         the unmanaged type before returning so the resulting object is
344         understood as a SystemType.
345
346         * DerivedTypes.cs (DerivedType::AssemblyQualifiedName): Return null
347         if element's FullName is null as well.
348
349         * DerivedTypes.cs (ArrayType::GetAttributeFlagsImpl): Return proper
350         array flags if under compiler context.
351         
352         * DerivedTypes.cs (*::FormatName): Return null if elementName is.
353
354         * GenericTypeParameterBuilder.cs: Improve compatibility when not
355         under compler context.
356
357         * GenericTypeParameterBuilder.cs (MakeArrayType): Return an instance
358         of ArrayType instead of relying on the runtime for it.
359
360         * TypeBuilder.cs: Add error checking to MakeArrayType and remove some
361         MonoTODO.
362
363 2009-07-14  Zoltan Varga  <vargaz@gmail.com>
364
365         * AssemblyBuilder.cs: Applied patch from <Dax@daxxfiles.net>. Save
366         the public key token to a field where the runtime can access it.
367
368 2009-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
369
370         * DerivedTypes.cs: Implemented PointerType.
371
372         * TypeBuilder.cs (MakePointerType): Return an
373         instance of PointerType.
374
375 2009-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
376
377         * DerivedTypes.cs: Implemented ByRefType.
378
379         * TypeBuilder.cs (MakeByRefType): Return an
380         instance of ByRefType.
381
382 2009-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
383
384         * DerivedTypes.cs: Refactor the types here to move
385         a lot of code to the base DerivedType in preparation
386         for upcomming ByRefType and PointerType puppies.
387
388 2009-07-07 Rodrigo Kumpera  <rkumpera@novell.com>
389
390         * TypeBuilder.cs (IsArrayImpl): Return false always as a
391         typebuilder will never represent an array.
392
393         * TypeBuilder.cs (MakeArrayType): Return a new instance of
394         ArrayType instead of calling into MonoType machinery.
395
396         * DerivedTypes.cs: New file with all the internal types
397         used by SRE to represent derived types from TypeBuilder:
398         arrays, pointers and byrefs'.
399
400 2009-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
401
402         * AssemblyBuilder.cs: Add IsRun property that returns true if
403         any execute mode is enabled.
404
405         * ModuleBuilder.cs: Add set_wrappers_type icall to define which type
406         is to be bound to wrappers. Create a new abstract type and call it
407         when the assembly is build this way.
408
409         Replace explicit checks for global_type with calls to CreateGlobalType.
410
411         * TypeBuilder.cs: Internal ctor now takes an extra table_idx argument.
412
413 2009-06-25  Sylvain Dupont <duposyl@gmail.com>
414
415         * CustomAttributeBuilder.cs: Properly handle element type for safe 
416           arrays (SafeArraySubType marshal attribute option).
417
418         Code is contributed under MIT/X11 license.
419
420 2009-06-12  Jb Evain  <jbevain@novell.com>
421
422         * AssemblyBuilder.cs (Save): throw a NotImplementedException
423         when asked to emit a pe32+ binary for a AMD64 or IA64
424         specific assembly.
425
426 2009-06-05  Jb Evain  <jbevain@novell.com>
427
428         * ModuleBuilder.cs (DefineManifestResource): expose during
429         BOOTSTRAP_NET_2_0 as well.
430
431 2009-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
432
433         * ILGenerator.cs (EmitCall): Under 2.0 profile ignore optional
434         arguments if the method call conv is not vararg.
435
436 2009-05-22  Zoltan Varga  <vargaz@gmail.com>
437
438         * AssemblyBuilder.cs (.ctor): Error out if the not yet supported 
439         RunAndCollect flag was given.
440
441         * AssemblyBuilderAccess.cs: Add RunAndCollect flag for net 4.0.
442
443 2009-03-20  Sebastien Pouliot  <sebastien@ximian.com>
444
445         * DynamicMethod.cs (Invoke): Wrap a MethodAccessException inside a
446         TargetInvocationException (required for Moonlight 2).
447
448 2009-03-18  Zoltan Varga  <vargaz@gmail.com>
449
450         * TypeBuilder.cs (GetGenericTypeDefinition): Call the icall instead of
451         the base method which now throws an exception.
452
453 2009-02-23  Zoltan Varga  <vargaz@gmail.com>
454
455         * ILGenerator.cs SignatureHelper.cs: Add checks for user types.
456
457 2008-02-21  Jb Evain  <jbevain@novell.com>
458
459         * ModuleBuilder.cs: override GetModuleVersionId
460         so that we can get the module guid from Module.ModuleVersionId.
461         Part of the fix for #471302.
462
463 2009-01-24  Zoltan Varga  <vargaz@gmail.com>
464
465         * SignatureHelper.cs: Fix warnings.
466
467         * ILGenerator.cs: Fix warnings.
468
469 2008-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
470
471         * AssemblyBuilder.cs: When assembly is strongnamed, then explicitly
472         set PublicKey flag. Do not allow AssemblyFlagsAttribute to overwrite
473         flags value, and ignore PublicKey flag if assembly is not strongnamed.
474         Fixes bug #432423.
475
476 2008-11-11 Rodrigo Kumpera  <rkumpera@novell.com>
477
478         * ConstructorOnTypeBuilderInst.cs (MetadataToken): Make this property
479         work under compiler context. Same hack as the one applied to
480         MethodOnTypeBuilderInst.
481
482         Fixes #442610.
483
484 2008-09-23  Marek Safar  <marek.safar@gmail.com>
485
486         * ModuleBuilder.cs: Fixed NRE when default symbol writer cannot be
487         loaded. 
488  
489 2008-09-16  Jb Evain  <jbevain@novell.com>
490
491         * AssemblyBuilder.cs (AddTypeForwarder): correctly grow the
492         type_forwarders array, to make that work for more than one
493         type forwarder. Managed part of the fix for #422929.
494
495 2008-09-04  Marek Safar  <marek.safar@gmail.com>
496
497         * TypeBuilder.cs: Add mcs specific SetCharSet method.
498
499 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
500
501         * TypeBuilder.cs (CreateType): Avoid creating a default ctor if the
502         type has a constructor defined using DefineMethod. Fixes #416632.
503
504 2008-07-25  Rodrigo Kumpera  <rkumpera@novell.com>
505
506         * TypeBuilder.cs (GetMethod): Allow created TypeBuilders
507         to be used.
508
509 2008-07-23  Marek Safar  <marek.safar@gmail.com>
510                         Rodrigo Kumpera  <rkumpera@novell.com>
511
512         * TypeBuilder.cs (GetMethod): A fix for #408933
513
514 2008-07-22  Rodrigo Kumpera  <rkumpera@novell.com>
515
516         * MethodOnTypeBuilderInst.cs: Change visibility of the parent
517         MethodBuilder to internal.
518
519 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
520
521         * CustomAttributeBuilder.cs (get_umarshal): Add support for all 
522         MarshalAsAttribute fields to fix the build.
523         
524         * CustomAttributeBuilder.cs (get_umarshal): Decode enums properly.
525
526 2008-07-21  Marek Safar  <marek.safar@gmail.com>
527
528         * ParameterBuilder.cs, CustomAttributeBuilder.cs: Check for
529         UnmanagedType.ByValArray to be used only on fields.
530
531 2008-07-16  Rodrigo Kumpera  <rkumpera@novell.com>
532
533         * MethodOnTypeBuilderInst.cs: Special case all methods
534         under compiler context as needed by mcs. 
535
536         * MethodBuilder.cs: Change the visibility of some fields
537         to internal so MethodOnTypeBuilderInst can use it.
538
539 2008-07-11  Marek Safar  <marek.safar@gmail.com>
540
541         * ModuleBuilder.cs: Couple of micro optimizations.
542
543 2008-07-03  Andreas Nahr  <ClassDevelopment@A-SoftTech.com>
544
545         * SignatureHelper.cs: Fix parameter names
546         * ModuleBuilder.cs: Fix parameter names
547
548 2008-06-18 Rodrigo Kumpera <rkumpera@novell.com>
549
550         * TypeBuilder.cs (IsAssignableTo): Fixed check for interfaces
551         defined on parent. Based on Geoff's Norton patch.
552         Fixes #349194.
553
554 2008-06-12  Marek Safar  <marek.safar@gmail.com>
555
556         * MethodBuilder.cs: Removed SetGenericMethodSignature.
557
558 2008-06-06  Jb Evain  <jbevain@novell.com>
559
560         * OpCodes.cs: OpCode constrained. is of type InlineType.
561
562 2008-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
563
564         * TypeBuilder.cs (IsAssignableTo): When an interface is passed as
565         argument and the TypeBuilder has been created, also check if parent
566         can be assigned to type.
567
568 2008-05-15  Zoltan Varga  <vargaz@gmail.com>
569
570         * TypeBuilder.cs (.ctor): Convert a null parent to typeof (object) here, not just
571         in CreateType (). Fixes #389171.
572
573 2008-05-11  Gert Driesen  <drieseng@users.sourceforge.net>
574
575         * FieldBuilder.cs: Added null check for type.
576         * TypeBuilder.cs: For enums, construct UnderlyingSystemType when
577         first instance field is defined instead of having to lookup it up on
578         demand. Avoid cast in IsCompilerContext.
579
580 2008-05-11  Gert Driesen  <drieseng@users.sourceforge.net>
581
582         * TypeBuilder.cs: Use Assembly.FullName instead of AssemblyName.
583         In UnderlyingSystemType, return UnderlyingSystemType of created type
584         when available. For an enum, UnderlyingSystemType is the type of the
585         first instance field. If no instance field is available, throw an
586         InvalidOperationException. Retain original behavior when operating in
587         compiler context.
588         * ConstructorBuilder.cs: Moved implementation of GetParameters to
589         GetParametersInternal to allow it to be used internally when type is
590         not yet created.
591         * CustomAttributeBuilder.cs: Added GetParameters method that uses
592         GetParametersInternal on ConstructorBuilder, and use it where
593         necessary.      
594
595 2008-05-03  Zoltan Varga  <vargaz@gmail.com>
596
597         * ConstructorBuilder.cs: Revert the throw not_created () change as it causes
598         vbnc bootstrap to fail. Fixes #386419.
599
600 2008-05-01  Gert Driesen  <drieseng@users.sourceforge.net>
601
602         * ConstructorBuilder.cs: Switch arguments for AORE.
603
604 2008-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
605
606         * ModuleBuilder.cs (DefineType): Do not perform lookup of in cache if
607         name is null to allow correct exception to be thrown (in TypeBuilder
608         ctor).
609         * TypeBuilder: Moved name argument check to TypeBuilder ctor. Modified
610         ArgumentException parameter names to match MS. Removed duplicate check
611         for data length from DefineInitializedData. Modified check_name to
612         only throw when first character is null char.
613         * ConstructorBuilder.cs (GetParameters): Throw NotSupportedException
614         (2.0) or InvalidOperationException (1.0) when type is not yet created
615         and we're not in compiler context. Return empty array when no
616         parameters are defined.
617         (MethodHandle): Always throw NotSupportedException.
618         (DefineParameter): Prevent NRE when parameters is null.
619         (GetCustomAttributes): When not in compiler context, always throw
620         NotSupportedException.
621         * ConstructorOnTypeBuilderInst.cs: Delegate to ConstructorBuilder
622         where possible. Fixed ContainsGenericParameters and IsGenericMethod
623         to always return false. In MethodBase.Invoke, throw an
624         InvalidOperationException instead of NIE.
625
626 2008-04-26  Gert Driesen  <drieseng@users.sourceforge.net>
627
628         * MethodOnTypeBuilderInst.cs: Added overrides for ReturnType and 
629         GetGenericMethodDefinition. Implement GetGenericArgument,
630         IsGenericMethod(Definition). Throw NotSupportedException instead of
631         NotImplementedException.
632
633 2008-04-26  Jb Evain  <jbevain@novell.com>
634
635         * ILGenerator.cs, AssemblyBuilder.cs, TypeBuilder.cs:
636         replace usages of new Type [0] by Type.EmptyTypes.
637         Found with Gendarme.
638
639 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
640
641         * MethodOnTypeBuilderInst.cs ConstructorOnTypeBuilderInst: New files.
642
643 2008-03-29  Gert Driesen  <drieseng@users.sourceforge.net>
644
645         * AssemblyBuilder.cs: Added enum that determines the type of the
646         native (version) resource. Added fields for holding the native
647         resource type and the version culture. The versioninfo_culture was
648         introduced to hold the original culture of the assembly, since
649         the AssemblyCultureAttribute should only affect the language of the
650         versioninfo block when not used in compiler context. Move constructin
651         of native version info to DefineVersionInfoResourceImpl to allow
652         attributes to affect the versioninfo after DefineVersionInfoResource
653         has been invoked. Allow ArgumentException for invalid culture string
654         to bubble up. In compiler context, use FileVersion as default value
655         for ProductionVersion.
656
657 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
658
659         * FieldOnTypeBuilderInst.cs: New file.
660
661 2008-03-11  Marek Safar  <marek.safar@gmail.com>
662
663         * MethodBuilder.cs (GetGenericArguments): Returns Type.EmptyType.
664
665 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
666
667         * AssemblyBuilder.cs: Define GetManifestModule () for net 2.0 bootstrap too.
668
669         * DynamicMethod.cs: Create a dynamic assembly to hold the anon hosted methods.
670         
671         * DynamicMethod.cs: Add net 3.5 ctor overloads.
672
673         * ModuleBuilder.cs (RegisterToken): New icall.
674
675         * MethodBuilder.cs (ctor): Call ModuleBuilder.RegisterToken (), so the token gets
676         added to the internal hash table. Fixes #367668.
677
678         * ConstructorBuilder.cs: Ditto.
679         
680 2008-03-06  Jb Evain  <jbevain@novell.com>
681
682         * SignatureHelper.cs (GetMethodSigHelper): if returnType
683         is null, use typeof (void) instead. Fixes #367663.
684
685 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
686
687         * MethodBuilder.cs (check_override): Added, verify if this method has explicit
688         override set and doesn't follow virtual settings of overriden method.
689
690         * TypeBuilder.cs (CreateType): Call MethodBuilder::check_override before
691         creating the type.
692
693         Fixes #361689.
694
695 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
696
697         * ModuleBuilder.cs: Fix build.
698
699         * AssemblyBuilder.cs (GetTypes): Implement this entirely in managed code.
700
701         * ModuleBuilder.cs (GetTypes): Replace TypeBuilders with their created types to
702         match MS.
703
704         * AssemblyBuilder.cs: Override GetModulesInternal () so we can return
705         ModuleBuilders.
706
707 2008-01-25  Zoltan Varga  <vargaz@gmail.com>
708
709         * TypeBuilder.cs (GenerateDebugInfo): Emit debug info for nested types as well.
710         Fixes #356316.
711
712 2008-01-21  Gert Driesen  <drieseng@users.sourceforge.net>
713
714         * AssemblyBuilder.cs: Introduce magic value for AssemblyBuilderAccess
715         to signal usage from a compiler. On 2.0 profile, perform argument
716         check for access. Use AssemblyFlags passed in through AssemblyName
717         arguments. Modified SetCustomAttribute to only use the Assembly*
718         attribute for constructing the assembly name when used in compiler
719         context. Fixes corlib part of bug #354970.
720
721 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
722
723         * TypeBuilder.cs (GetConstructorImpl): Add back the code removed by the last
724         patch since it is needed when building mscorlib.
725
726 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
727
728         * TypeBuilder.cs (GetConstructorImpl): Use GetConstructor on created
729         type. Original implementation did not take into account the binding
730         flags and failed with a NotSupportedException if the default binder
731         checked if a ParamArrayAttribute was defined. It also does not make
732         sense to return a ConstructorBuilder once the type is emitted.
733         (GetConstructors): When the type is emitted, use GetConstructors
734         on the created type.
735         (GetFields): Removed duplicate code.
736         (GetMethodsByName): Fixed matching of methods in the parent class
737         depending on their accessibility:
738         - Private: never include private methods of parent
739         - Public: ignore if Public flag is not set
740         - Assembly: ignore if NonPublic is not set or when on the 1.0 profile
741         - Rest (Family, FamANDAssem, FamORAssem): ignore if NonPublic flag is
742           not set
743         Static methods of the parent are ignored unless the FlattenHierarchy
744         flag is set.
745         (GetProperties): When the type is emitted, use GetProperties on the
746         created type as the TypeBuilder implementation itself does not include
747         properties from the parent class.
748
749 2007-12-31  Gert Driesen  <drieseng@users.sourceforge.net>
750
751         * AssemblyBuilder.cs (UnprotectedGetName): Set the public key token
752         as well.
753
754 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
755
756         * FieldBuilder.cs (GetToken): Use the MetadataToken property.
757
758 2007-11-20  Atsushi Enomoto  <atsushi@ximian.com>
759
760         * GenericTypeParameterBuilder.cs : fixed regression.
761           GenericParameterAttributes also needs some special care.
762
763 2007-11-20  Atsushi Enomoto  <atsushi@ximian.com>
764
765         * MethodBuilder.cs : implemented ContainsGenericParameters().
766         * GenericTypeParameterBuilder.cs : removed most of extra members
767           and added missing members for 2.0 API.
768
769 2007-11-18  Miguel de Icaza  <miguel@novell.com>
770
771         * SignatureHelper.cs: Implement Equals and GetHashCode
772
773 2007-11-17  Miguel de Icaza  <miguel@novell.com>
774
775         * SignatureHelper.cs: Preparational tasks to support the
776         AddArgument overloads that allow the specification of modopts and
777         modreqs. 
778
779         Refactor code, add new parameters. 
780
781         * SignatureHelper.cs (AddArguments): Add new 2.0 API, used by
782         new versions of the DLR.   Currently does not have support for
783         modreq, modopts.   Just a simple wrapper as consumed by the DLR.
784
785 2007-11-16  Atsushi Enomoto  <atsushi@ximian.com>
786
787         * AssemblyBuilder.cs : added missing 2.0 member.
788         * DynamicMethod.cs : removed extra stuff.
789         * DynamicILInfo.cs : no public .ctor().
790         * ILGenerator.cs : fixed 2.0 member signatures.
791
792 2007-11-16  Atsushi Enomoto  <atsushi@ximian.com>
793
794         * EnumBuilder.cs, TypeBuilder.cs : implemented missing 2.0
795           stuff, in harmless manner.
796
797 2007-11-16  Atsushi Enomoto  <atsushi@ximian.com>
798
799         * ConstructorBuilder.cs : added CallingConvention.
800
801 2007-11-16  Atsushi Enomoto  <atsushi@ximian.com>
802
803         * SignatureHelper.cs : Module can be null, and for non-
804           ModuleBuilder argument, throw ArgumentException.
805           Added missing 2.0 stuff.
806
807 2007-11-08  Rodrigo Kumpera <rkumpera@novell.com>
808
809         * TypeBuilder.cs: Workaround for #82625 not needed anymore.
810         GetFields() returns the created type fields.
811
812 2007-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
813
814         * ILGenerator.cs: Added missing null checks. Removed extra tabs.
815
816 2007-09-23  Gert Driesen  <drieseng@users.sourceforge.net>
817
818         * AssemblyBuilder.cs: Added missing paramname to ArgumentExceptions.
819         Use String.Length to check for zero-length string.
820
821 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
822
823         * AssemblyBuilder.cs (GetManifestModule): Return a ModuleBuilder here to
824         match MS.NET.
825
826 2007-09-22  Gert Driesen  <drieseng@users.sourceforge.net>
827
828         * TypeBuilder.cs: Do not include static methods of base class in
829         GetMethod(s). Fixes bug #327482.
830
831 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
832
833         * AssemblyBuilder.cs (DefineVersionInfoResource): Allow the arguments to be
834         null. Fixes #82832.
835
836 2007-09-11  Jb Evain  <jbevain@novell.com>
837
838         * DynamicMethod.cs: store the owner of the DynamicMethod.
839
840 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
841
842         * AssemblyBuilder.cs (DefineUnmanagedResource): Open file read-only. Fixes
843         #72764.
844
845 2007-09-02  Zoltan Varga  <vargaz@gmail.com>
846
847         * TypeBuilder.cs: Add a workaround for #82625 to make nemerle work again.
848
849 2007-08-29  Gert Driesen  <drieseng@users.sourceforge.net>
850
851         * AssemblyBuilder.cs: In DefineIconResource, open icon in read-only
852         mode. Fixes bug #82617.
853
854 2007-08-17  Rolf Bjarne Kvinge  <RKvinge@novell.com>
855
856         * ILGenerator.cs: Change BeginCatchBlock to end the current filter block if called with a null exceptionType. Added ILExceptionBlock.FILTER_START to be able to track if we're in a filter block or not. Renamed PatchLastClauseStart to PatchFilterClause to match better what it does, and make it update the handler's type to FILTER. Fixes #81431.
857
858 2007-08-10  Zoltan Varga  <vargaz@gmail.com>
859
860         * DynamicILInfo.cs: New file.
861
862         * DynamicMethod.cs (GetDynamicILInfo): New 2.0 method.
863
864 2007-07-11  Rodrigo Kumpera <rkumpera@novell.com>
865
866         * TypeBuilder.cs (CreateType): method did not check for enum type with defined methods and fixed compatibility issue in case of calling CreateType again after the first one failed, it now returns null as well.
867
868 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
869
870         * OpCodeType.cs EventToken.cs FieldToken.cs SignatureToken.cs PackingSize.cs
871         StringToken.cs AssemblyBuilderAccess.cs FlowControl.cs MethodToken.cs
872         ParameterToken.cs TypeToken.cs PropertyToken.cs OperandType.cs PEFileKinds.cs
873         StackBehaviour.cs: 2.0 updates.
874         
875 2007-07-07  Gert Driesen  <drieseng@users.sourceforge.net>
876
877         * MethodBuilder.cs: Code formatting. Spaces to tabs.
878         * TypeBuilder.cs: Same.
879
880 2007-07-06  Gert Driesen  <drieseng@users.sourceforge.net>
881
882         * TypeBuilder.cs: Throw InvalidOperationException when attempting to
883         construct non-abstract interface without base type. Modified SetParent
884         to match MS: in 2.0 profile, throw InvalidOperationException when 
885         parent is null and TypeBuilder is non-abstract interface. When
886         parent is null and TypeBuilder is not an interface, then set object
887         as parent. In 1.0 profile, throw ArgumentNullException when parent is
888         null.
889
890 2007-07-06  Gert Driesen  <drieseng@users.sourceforge.net>
891
892         * TypeBuilder.cs: Implemented IsCOMObjectImpl.
893
894 2007-07-04  Atsushi Enomoto  <atsushi@ximian.com>
895
896         * DynamicMethod.cs : 2.0 API fix.
897
898 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
899
900         * DynamicMethod.cs: Applied patch from Robert Jordan (robertj@gmx.net). Add
901         a destructor which frees the runtime data for the method.
902
903 2007-05-21  Gert Driesen  <drieseng@users.sourceforge.net>
904
905         * TypeBuilder.cs: Changed HasElementTypeImpl to return false on 2.0
906         profile when type is not baked.
907
908 2007-05-21  Jb Evain  <jb@nurv.fr>
909
910         * TypeBuilder.cs
911           MethodBuilder.cs:
912                 Tag methods and types as HasSecurity when adding a
913                 SuppressUnmanagedCodeSecurityAttribute on them.
914                 Makes peverify happy.
915
916 2007-05-16  Gert Driesen  <drieseng@users.sourceforge.net>
917
918         * TypeBuilder.cs (GetField): Return MonoField instance if the type is
919         already created. Fixed other part of bug #81368.
920
921 2007-05-16  Zoltan Varga  <vargaz@gmail.com>
922
923         * TypeBuilder.cs (GetFields): Return MonoField objects if the type is already
924         created.
925
926         * FieldBuilder.cs (SetValue): Make this not supported again.
927         
928         * FieldBuilder.cs: Support calling SetValue (). Fixes #81638.
929
930 2007-05-06  Zoltan Varga  <vargaz@gmail.com>
931
932         * TypeBuilder.cs (CreateType): Fix build.
933         
934         * TypeBuilder.cs (.ctor): Convert null parent to typeof (object). Fixes #81530.
935
936         * TypeBuilder.cs (UnderlyingSystemType): Remove commented out code.
937
938 2007-04-15  Alp Toker  <alp@atoker.com>
939
940         * ConstructorBuilder.cs: Make use of
941         ConstructorInfo.TypeConstructorName/ConstructorName.
942
943 2007-04-09  Alp Toker  <alp@atoker.com>
944
945         * ConstructorBuilder.cs: Remove redundant overrides.
946
947 2007-04-03  Marek Safar  <marek.safar@gmail.com>
948
949         * OpCodes.cs: Removed obsolete opcodes.
950
951 2007-04-03  Alp Toker  <alp@atoker.com>
952
953         * GenericTypeParameterBuilder.cs: SetInterfaceConstraints(Type[]) is
954         params.
955         * MethodBuilder.cs: MakeGenericMethod(Type[]) is params.
956
957 2007-03-19  Marek Safar  <marek.safar@gmail.com>
958
959         * MethodBuilder.cs: MethodImplAttribute cannot be destructive and overwrite
960         existing flags.
961
962 2007-03-17  Marek Safar  <marek.safar@gmail.com>
963
964         * MethodBuilder.cs: Implemented conversion of PreserveSigAttribute pseudo
965         attribute.
966
967 2007-03-17  Zoltan Varga  <vargaz@gmail.com>
968
969         * ILGenerator.cs (Emit): Disallow ldtoken on a DynamicMethod as well.
970         
971         * ILGenerator.cs (Emit): Do not allow ldftn on a DynamicMethod to be
972         compatible with MS.NET. Fixes #81157.
973
974 2007-03-13  Miguel de Icaza  <miguel@novell.com>
975
976         * OpCode.cs: Add a couple of operators for jsc.sf.net
977
978 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
979
980         * DynamicMethod.cs: Add a field used by unmanaged code.
981
982 2007-03-06  Rolf Bjarne Kvinge  <RKvinge@novell.com>
983
984         * MonoArrayMethod.cs: Use 'void' as return type in ToString when 
985         the return type is null. Fixes #80435.
986
987 2007-03-06  Gert Driesen  <drieseng@users.sourceforge.net>
988
989         * EnumBuilder.cs: On 2.0 profile, using current EnumBuilder as
990         field type in DefinedLiteral. Fixes bug #81007.
991
992 2007-02-25  Marek Safar  <marek.safar@gmail.com>
993
994         * MethodBuilder.cs: Empty string is not allowed for DllImport name.
995
996 2007-02-13  Marek Safar  <marek.safar@gmail.com>
997
998         * ModuleBuilder.cs: Add GetRegisteredType to expose name_cache for internal
999         usage.
1000
1001         * TypeBuilder.cs: Optimized generation of unmanaged data helpers.
1002         An unmanaged data class helper can be re-used when its size matches to
1003         size of requested class.
1004
1005 2007-01-25  Radek Doulik  <rodo@novell.com>
1006
1007         * ModuleBuilder.cs: return created type from GetType in case the
1008         type builder type was already created. Added test-555.cs as
1009         regression test.
1010
1011 Tue Jan 23 17:45:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1012
1013         * ModuleBuilder.cs, AssemblyBuilder.cs: mark the GC-tracked field
1014         with UIntPtr.
1015
1016 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1017
1018         * EnumBuilder.cs: value__ must have RTSpecialName flag set.
1019         Fixes #80396
1020
1021 Fri Dec 22 19:42:56 CET 2006 Paolo Molaro <lupus@ximian.com>
1022
1023         * ModuleBuilder.cs: associate a resource writer with its
1024         actual resource (bug #80339).
1025
1026 2006-10-06  Miguel de Icaza  <miguel@novell.com>
1027
1028         * AssemblyBuilder.cs: Am doing a try/catch for pulling the LCID
1029         from the AssemblyCulture that is provided, as Microsoft allows
1030         arbitrary locales (even non-existing ones) to be specified.
1031
1032         The .locale information is actually pulled from the AssemblyName,
1033         not from this lcid.  But this LCID is used to encode the
1034         resource.  In my exploration of this, we are setting this field,
1035         even if CSC never sets the field itself (its always zero).
1036
1037         Maybe we should completely remove this.
1038
1039 2006-09-12  Mart Roosma  <roosma@gmail.com>
1040
1041         * DynamicMethod.cs: Allow empty name and null return type. 
1042         Fixes bug #79367.
1043
1044 2006-09-05  Miguel de Icaza  <miguel@novell.com>
1045
1046         * TypeBuilder.cs (SetParent): Null parent is allowed for
1047         interfaces. 
1048
1049 2006-09-02  Zoltan Varga  <vargaz@gmail.com>
1050
1051         * DynamicMethod.cs: Fix a warning.
1052
1053         * TypeBuilder.cs: Allow static methods on interfaces. Fixes #79249.
1054
1055 2006-08-18  Zoltan Varga  <vargaz@gmail.com>
1056
1057         * *.cs: Use String.Empty instead of "" in a lot of places.
1058
1059 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
1060
1061         * ConstructorBuilder.cs (GetILGenerator): Avoid creating a new ILGenerator each time
1062         this is called. Fixes #78859.
1063
1064 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
1065
1066         * MethodBuilder.cs (SetCustomAttribute): Fix handling of SpecialNameAttribute.
1067
1068 2006-07-09  Gert Driesen  <drieseng@users.sourceforge.net>
1069
1070         * DynamicMethod.cs: Fix check for empty method body, avoids SIGSEV.
1071
1072 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
1073
1074         * DynamicMethod.cs: Create all other DynamicMethod's referenced by
1075         this method as well. Check for an empty method body.
1076
1077         * ILGenerator.cs (Emit): Handle DynamicMethod's which might not have a
1078         declaring type.
1079
1080 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
1081
1082         * AssemblyBuilder.cs (MonoResource): Add a 'stream' field.
1083
1084         * ModuleBuilder.cs (DefineManifestResource): Add new net 2.0 method.
1085
1086 2006-04-26  Miguel de Icaza  <miguel@novell.com>
1087
1088         * MethodBuilder.cs: better error messages when we close the
1089         method. 
1090
1091 2006-03-28  Marek Safar  <marek.safar@seznam.cz>
1092
1093         * ILGenerator.cs: Delayed the exception stack creation. It saves ~1.5 MB
1094         for corlib compilation.
1095
1096 2006-03-27  Marek Safar  <marek.safar@seznam.cz>
1097
1098         * ILGenerator.cs: Tune up label defaults, switched to double resizing.
1099
1100 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
1101
1102         * AssemblyBuilder.cs (AddTypeForwarder): New internal method for
1103         adding type forwarders to an assembly.
1104
1105 2006-02-27  Gert Driesen  <drieseng@users.sourceforge.net>
1106
1107         * ConstructorBuilder.cs: In AddDeclarativeSecurity, throw an
1108         ArgumentOutOfRangeException instead of an ArgumentException if action 
1109         is a Request* action. Fixes bug #77640.
1110         * MethodBuilder.cs: Same.
1111         * TypeBuilder.cs: Same.
1112
1113 Mon Feb 27 17:12:40 CET 2006 Paolo Molaro <lupus@ximian.com>
1114
1115         * ModuleBuilder.cs: unlink the file before saving
1116         otherwise we might overwrite a file mmapped by the runtime.
1117
1118 2006-02-17  Zoltan Varga  <vargaz@gmail.com>
1119
1120         * DynamicMethod.cs: Implement DefineParameter ().
1121
1122         * ParameterBuilder.cs: Add support for DynamicMethod parents.
1123
1124 2006-02-15  Martin Baulig  <martin@ximian.com>
1125
1126         * TypeBuilder.cs (TypeBuilder.DefineMethod): Also enable the
1127         2-argument version in the `BOOTSTRAP_NET_2_0' profile.
1128         (TypeBuilder.DefineGenericMethod): Removed.
1129
1130 2006-02-14  Martin Baulig  <martin@ximian.com>
1131
1132         * ConstructorBuilder.cs
1133         (ConstructorBuilder.IsGenericMethod): Override this and return
1134         false; the MS runtime doesn't throw an exception here.
1135         (ConstructorBuilder.IsGenericMethodDefinition): Likewise.
1136
1137         * MethodBuilder.cs
1138         (MethodBuilder.IsGenericMethod): Implement this.
1139         (MethodBuilder.IsGenericMethodDefinition): Likewise.
1140
1141 2006-02-03  Zoltan Varga  <vargaz@gmail.com>
1142
1143         * TypeBuilder.cs (CreateType): Add a check for Sealed parents.
1144
1145 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
1146
1147         * OpCodes.cs: Readonly is a net 2.0 only field.
1148
1149 Tue Jan 31 13:37:02 CET 2006 Paolo Molaro <lupus@ximian.com>
1150
1151         * OpCodes.cs: Added Readonly field.
1152
1153 2006-01-29  Raja R Harinath  <harinath@gmail.com>
1154
1155         * GenericTypeParameterBuilder.cs (DeclaringType): Return the
1156         declaring type of a generic method.
1157
1158 2005-12-15  Raja R Harinath  <rharinath@novell.com>
1159
1160         * TypeBuilder.cs (IsGenericType): Implement override.
1161
1162 2005-12-07  Martin Baulig  <martin@ximian.com>
1163
1164         * GenericTypeParameterBuilder.cs: Add support for custom attributes.
1165         (GenericTypeParameterBuilder.cattrs): New field.
1166         (GenericTypeParameterBuilder.SetCustomAttribute): Implement this.
1167
1168 Mon Dec 5 15:13:26 CET 2005 Paolo Molaro <lupus@ximian.com>
1169
1170         * ILGenerator.cs: fixed emitting doubles on ARM.
1171
1172 2005-12-02  Alp Toker  <alp@atoker.com>
1173
1174         * GenericTypeParameterBuilder.cs:
1175         * TypeBuilder.cs: DeclaringMethod should return MethodBase, not MethodInfo
1176
1177 2005-11-19  Zoltan Varga  <vargaz@gmail.com>
1178
1179         * AssemblyBuilder.cs: Add support for setting FileVersion unmanaged 
1180         resource. Fixes #64427.
1181
1182 2005-11-18  Zoltan Varga  <vargaz@gmail.com>
1183
1184         * ParameterBuilder.cs (SetCustomAttribute): Handle DefaultParameterValueAttribute as well.
1185
1186         * CustomAttributeBuilder.cs: Add support for decoding more types of
1187         constructor parameters.
1188
1189 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
1190
1191         * TypeBuilder.cs (SetCustomAttribute): Handle ComImportAttribute as well.
1192
1193 2005-11-11  Marek Safar  <marek.safar@seznam.cz>
1194
1195         * EnumBuilder.cs, GenericTypeParameterBuilder.cs: Reflect Type changes.
1196
1197 2005-11-06  Zoltan Varga  <vargaz@freemail.hu>
1198
1199         * Label.cs: Add == and != operators.
1200
1201 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
1202
1203         * FieldBuilder.cs: Add implementation of new UMarshal property.
1204
1205 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
1206
1207         * FieldBuilder.cs MethodBuilder.cs ConstructorBuilder.cs: Add support for
1208         returing custom attributes in created types. MS.NET supports this by
1209         returning non-builder objects from GetMethod/GetField etc., but we return
1210         builder objects in this case. Fixes #76521.
1211
1212 2005-10-24  Martin Baulig  <martin@ximian.com>
1213
1214         * TypeBuilder.cs (TypeBuilder.IsGenericTypeDefinition): Override this.
1215
1216 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
1217
1218         * CustomAttributeBuilder.cs : internal attributes should be allowed.
1219           Fixed bug #75723.
1220
1221 2005-09-26  Marek Safar  <marek.safar@seznam.cz>
1222
1223         * PropertyBuilder.cs: Throw NotSupportedException for unsupported
1224         methods.
1225
1226 2005-09-14  Martin Baulig  <martin@ximian.com>
1227
1228         * LocalBuilder.cs
1229         (LocalBuilder.Mono_GetLocalIndex): New static internal method;
1230         same as the .NET 2.0 property `LocalIndex'.
1231
1232 Mon Sep 5 18:08:09 CEST 2005 Paolo Molaro <lupus@ximian.com>
1233
1234         * EventBuilder.cs, FieldBuilder.cs, MethodBuilder.cs, TypeBuilder.cs,
1235         PropertyBuilder.cs: take care of the SpecialName attribute (bug #75768).
1236
1237 2005-09-01  Raja R Harinath  <rharinath@novell.com>
1238
1239         * CustomAttributeBuilder.cs (get_umarshal): Don't cause a nullref
1240         exception when passed a custom marshaller type that belongs to the
1241         assembly being built.  When user specifies MarshalType rather than
1242         MarshalTypeRef, don't attempt to resolve the type.
1243
1244 2005-08-31  Raja R Harinath  <rharinath@novell.com>
1245
1246         * CustomAttributeBuilder.cs (get_umarshal): Fix typo.  The name of
1247         the field is "SizeParamIndex", not "SizeSizeParamIndex".
1248
1249         * ParameterBuilder.cs (SetCustomAttribute) [MarshalAsAttribute]:
1250         Set ParameterAttributes.HasFieldMarshal flag.
1251
1252 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
1253
1254         * DynamicMethod.cs (CreateDelegate): Don't cache the delegate since it
1255         needs to be different for each target.
1256         
1257         * DynamicMethod.cs (CreateDynMethod): Call ilgen.label_fixup ().
1258
1259         * DynamicMethod.cs (AddRef): Reserve every second ref slot for use by the
1260         runtime.
1261
1262 2005-08-05  Gert Driesen  <drieseng@users.sourceforge.net>
1263
1264         * AssemblyBuilder.cs: Implement _AssemblyBuilder, CA fixes to 
1265         correspond with MS.NET
1266         * ConstructorBuilder.cs: Implement _ConstructorBuilder, CA fixes to 
1267         correspond with MS.NET
1268         * CustomAttributeBuilder.cs: Implement _CustomAttributeBuilder, CA 
1269         fixes to correspond with MS.NET
1270         * EnumBuilder.cs: Implement _EnumBuilder, CA fixes to correspond with 
1271         MS.NET
1272         * EventBuilder.cs: Implement _EventBuilder, CA fixes to correspond 
1273         with MS.NET
1274         * FieldBuilder.cs: Implement _FieldBuilder, CA fixes to correspond 
1275         with MS.NET
1276         * LocalBuilder.cs: Implement _LocalBuilder, CA fixes to correspond 
1277         with MS.NET
1278         * MethodBuilder.cs: Implement _MethodBuilder, CA fixes to correspond 
1279         with MS.NET
1280         * MethodRental.cs: CA fixes to correspond with MS.NET, implemented
1281         _MethodRental.
1282         * ModuleBuilder.cs: Implement _ModuleBuilder, CA fixes to correspond 
1283         with MS.NET
1284         * ILGenerator.cs: Implement _ILGenerator, CA fixes to correspond 
1285         with MS.NET
1286         * ParameterBuilder.cs Implement _ParameterBuilder, CA fixes to 
1287         correspond with MS.NET
1288         * PropertyBuilder.cs: Implement _PropertyBuilder, CA fixes to 
1289         correspond with MS.NET
1290         * SignatureHelper.cs: Implement _SignatureHelper, CA fixes to 
1291         correspond with MS.NET
1292         * TypeBuilder.cs: Implement _TypeBuilder, CA fixes to correspond 
1293         with MS.NET
1294
1295 2005-07-21  Jb Evain  <jbevain@gmail.com>
1296
1297         * ILGenerator.cs: Implement filter blocks support.
1298         Fixes bug #75010.
1299
1300 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
1301
1302         * ILGenerator.cs (BeginFaultBlock): Call InternalEndClause () here
1303         too. Reported by Jeroen Frijters.
1304
1305 2005-07-11  Martin Baulig  <martin@ximian.com>
1306
1307         * TypeBuilder.cs (TypeBuilder.CreateType): Call
1308         create_generic_class() here as well; fixes #75454.
1309
1310 2005-06-27  Marek Safar  <marek.safar@seznam.cz>
1311
1312         * TypeBuilder.cs (check_name): Wrong exception argument order.
1313
1314 2005-06-14  Sebastien Pouliot  <sebastien@ximian.com>
1315
1316         * AssemblyBuilder.cs: Override UnprotectedGetName to set the public 
1317         key (if available).
1318
1319 2005-06-12  Gert Driesen <drieseng@users.sourceforge.net>
1320
1321         * MethodBuilder.cs: In CreateMethodBody, throw 
1322         ArgumentOutOfRangeException instead of ArgumentException when count 
1323         is not within range of array. Do not allow zero length method body 
1324         to be emitted when using 2.0 profile. Fixes bug #75236.
1325
1326 2005-06-12  Gert Driesen <drieseng@users.sourceforge.net>
1327
1328         * FieldBuilder.cs: FieldBuilder.FieldHandle should throw
1329         NotSupportedException to match MS.NET (both 1.x and 2.x). 
1330         Fixes regression introduced in r45750.
1331         * MethodBuilder.cs: MethodBuilder.MethodHandle should throw
1332         NotSupportedException to match MS.NET (both 1.x and 2.x).
1333         Fixes regression introduced in r45750.
1334
1335 2005-06-09  Kamil Skalski <nazgul@nemerle.org>
1336         * ConstructorBuilder.cs FieldBuilders.cs MethodBuilder.cs: Return
1337         RuntimeHandles when requested
1338         
1339         * TypeBuilder.cs: Add static Get{Method,Constructor,Field} methods
1340         from .NET 2.0 beta 2 API for obtaining instanciated *Info objects
1341         from non-instanciated counterparts 
1342
1343 2005-06-08  Zoltan Varga  <vargaz@freemail.hu>
1344
1345         * ConstructorBuilder.cs FieldBuilder.cs MethodBuilder.cs PropertyBuilder.cs:
1346         Add 2.0 Module property.
1347
1348         * *.cs: Updates for net 2.0 beta 2.
1349
1350 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
1351
1352         * *Token.cs: Add net 2.0 Equals methods.
1353
1354         * *.cs: Updates for net 2.0 beta 2.
1355
1356         * *.cs: Updates for net 2.0 beta 2.
1357
1358 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
1359
1360         * AssemblyBuilder.cs: Update after PortableExecutableKinds name change.
1361
1362 2005-06-03  Zoltan Varga  <vargaz@freemail.hu>
1363
1364         * MethodBuilder.cs CustomAttributeBuilder.cs: Rework DllImportAttribute
1365         decoding to improve compatibility with MS.NET.
1366         
1367         * MethodBuilder.cs (SetCustomAttribute): Set PinvokeImpl attribute if
1368         a DllImportAttribute is present.
1369
1370 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
1371
1372         * MethodBuilder.cs (SetCustomAttribute): Handle the case when the
1373         calling convention inside the DllImportAttribute is empty.
1374
1375 2005-06-01  Zoltan Varga  <vargaz@freemail.hu>
1376
1377         * MethodBuilder.cs (SetCustomAttribute): Handle DllImportAttribute
1378         as well.
1379
1380         * CustomAttributeBuilder.cs: Add a decode_cattr helper method.
1381
1382 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
1383
1384         * MethodBuilder.cs: Add extra_flags field to encode P/Invoke
1385         bits that can't be specified via MethodBuilder directly; fixes
1386         #75060.
1387
1388 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
1389
1390         * GenericTypeParameterBuilder.cs: Return this in UnderlyingSystemType.
1391
1392 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
1393
1394         * ModuleBuilder.cs: Implemented DefineDocument(). Generate debug
1395         info when saving the module.
1396         * ILGenerator.cs: Keep marked sequence points in a list.
1397         Added a GenerateDebugInfo method, which dumps the info collected
1398         during code generation.
1399         * TypeBuilder.cs:
1400         * ConstructorBuilder.cs:
1401         * MethodBuilder.cs: Added method for generating debug info.
1402         * LocalBuilder.cs: Added StartOffset and EndOffset properties.
1403         * CustomAttributeBuilder.cs: Use IsInstanceOfType instead of
1404         IsAssignableFrom when possible.
1405
1406 2005-05-20  Miguel de Icaza  <miguel@novell.com>
1407
1408         * TypeBuilder.cs (UnderlyingSystemType): should always return this
1409         according to Zoltan.  Old code left there, but should probably be removed.
1410
1411 2005-05-13  Zoltan Varga  <vargaz@freemail.hu>
1412
1413         * MethodBuilder.cs (fixup): Take into account CreateMethodBody as
1414         well.
1415
1416         * ConstructorBuilder.cs MethodBuilder.cs: Check that elements of
1417         parameterTypes are not null. Fixes #74928.
1418
1419 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
1420
1421         * ConstructorBuilder.cs MethodBuilder.cs (fixup): Fix this.
1422         
1423         * ConstructorBuilder.cs MethodBuilder.cs (fixup): Throw an exception if a
1424         method body is empty. Fixes #74906.
1425
1426 2005-04-13  Marek Safar  <marek.safar@seznam.cz>
1427
1428         * TypeBuilder.cs (SetCustomAttribute): StructLayoutAttribute.CharSet
1429         has to overwrite current settings.
1430
1431 2005-04-05  Sebastien Pouliot  <sebastien@ximian.com>
1432
1433         * AssemblyBuilder.cs: Don't call GetCurrentDirectory if building an 
1434         assembly that will never be serialized to disk (because CAS may not
1435         allow disk access but still allow generating a in-memory assembly).
1436
1437 2005-03-24  Miguel de Icaza  <miguel@novell.com>
1438
1439         * DynamicMethod.cs (CreateDelegate): Add second overload based on
1440         the first one that allows for a `target' argument.
1441
1442 2005-03-24  Sebastien Pouliot  <sebastien@ximian.com>
1443
1444         * MethodRental.cs: Added Demand for UnmanagedCode on SwapMethodBody 
1445         method.
1446
1447 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
1448
1449         * MethodBuilder.cs: Add internal BestFitMapping and 
1450         ThrowOnUnmappableChar properties used by mcs.
1451
1452 2005-03-09  Marek Safar  <marek.safar@seznam.cz>
1453
1454         * ILGenerator.cs (DeclareLocal): Throw an exception for null argument.
1455
1456 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1457
1458         * CustomAttributeBuilder.cs UnmanagedMarshal.cs: Allow sizeConst and
1459         sizeParamIndex to be -1, which means they are not given.
1460         
1461         * CustomAttributeBuilder.cs (get_umarshal): Only call the internal
1462         LPArray creation method if sizeConst of sizeParamIndex is given.
1463
1464         * UnmanagedMarshal.cs: Add has_size field.
1465
1466 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
1467
1468         * CustomAttributeBuilder.cs (get_umarshal): Marshal sizeConst and
1469         sizeParamIndex fields as well.
1470
1471         * UnmanagedMarshal.cs: Add param_num field and a new internal creation
1472         method which sets it.
1473
1474 2005-02-11  Zoltan Varga  <vargaz@freemail.hu>
1475
1476         * TypeBuilder.cs (IsAssignableTo): New helper method. Fixes #70838.
1477         
1478         * TypeBuilder.cs: Fix warning.
1479
1480 2005-01-21 Rafael Teixeira <rafaelteixeirabr@hotmail.com>
1481         
1482         * MethodBuilder.cs, TypeBuilder: missing 'params' in some method signature
1483         patch by Kamil Skalski <nazgul@nemerle.org>
1484
1485 2005-01-18  Geoff Norton  <gnorton@customerdna.com>
1486
1487         * ModuleBuilder.cs: Interfaces should have null BaseType.
1488         Fixes #71301.
1489
1490 2005-01-18  Miguel de Icaza  <miguel@ximian.com>
1491
1492         * TypeBuilder.cs: Add check for creation.  Fix from Geoff.
1493
1494 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
1495
1496         * CustomAttributeBuilder.cs: Fix a warning.
1497
1498 Wed Dec 15 11:34:13 CET 2004 Paolo Molaro <lupus@ximian.com>
1499
1500         * ModuleBuilder.cs, EnumBuilder.cs: actually add the enumbuilder
1501         to the type list of the module (bug#70488).
1502
1503 2004-12-09  Martin Baulig  <martin@ximian.com>
1504
1505         * GenericTypeParameterBuilder.cs
1506         (GenericTypeParameterBuilder.IsValueType): Fixed the FIXME.
1507
1508 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
1509
1510         * AssemblyBuilder.cs: Move corlib_internal field here from Assembly.
1511         
1512         * AssemblyBuilder.cs: Add corlib_internal to the ctor parameters.
1513
1514 2004-12-06  Ben Maurer  <bmaurer@ximian.com>
1515
1516         * TypeBuilder.cs (CreateType): Creating a type twice does not
1517         throw in msft.
1518
1519 2004-11-22  Zoltan Varga  <vargaz@freemail.hu>
1520
1521         * ModuleBuilder.cs: Check that all types inside the module are created.
1522         Fixes #69780.
1523
1524 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
1525
1526         * ModuleBuilder.cs (Save): Use new WriteToFile icall.
1527
1528 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
1529
1530         * TypeBuilder.cs: Make some members work if the type is created since
1531         MS does this.
1532
1533 2004-10-30  Zoltan Varga  <vargaz@freemail.hu>
1534
1535         * CustomAttributeBuilder.cs: Check that arguments are not 
1536         multi-dimensional arrays.
1537
1538 2004-10-12  Martin Baulig  <martin@ximian.com>
1539
1540         * TypeBuilder.cs (TypeBuilder.setup_generic_class): Renamed to
1541         create_generic_class() and added a new setup_generic_class().
1542         (TypeBuilder.DefineGenericParameters): Call setup_generic_class()
1543         before creating the type parameters.
1544
1545 2004-10-11  Martin Baulig  <martin@ximian.com>
1546
1547         * TypeBuilder.cs (TypeBuilder.generic_container): New private field.
1548
1549         * MethodBuilder.cs (MethodBuilder.generic_container): New private field.
1550
1551         * GenericTypeParameterBuilder.cs
1552         (GenericTypeParameterBuilder.GetGenericTypeParameterConstraints):
1553         Return `Type.EmptyTypes' instead of an array of `typeof (object)'.      
1554
1555 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
1556
1557         * ModuleBuilder.cs: Create global type after creation.
1558
1559 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
1560
1561         * ModuleBuilder.cs (GetTypes): Fix length of returned array. Fixes
1562         #65931.
1563
1564 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
1565
1566         * ModuleBuilder.cs (DefineType): Check for duplicate type names. Fixes
1567         #65988.
1568
1569 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
1570
1571         * AssemblyBuilderAccess.cs: Remove [Flags].
1572
1573         * PackingSize.cs: Add new 2.0 members. Remove [Flags].
1574
1575         * AssemblyBuilder.cs: Add net 2.0 Save method.
1576
1577         * LocalBuilder.cs: Make this inherit from LocalVariableInfo under
1578         net 2.0. Reorganize fields so the layout visible to the runtime is the
1579         same under 1.0 and 2.0. Add 2.0 properties.
1580
1581 2004-10-02  Gert Driesen  <drieseng@users.sourceforge.net>
1582
1583         * TypeBuilder.cs: throw NotSupportedException when defining default
1584         ctor if parent type does not have default ctor
1585
1586 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
1587
1588         * TypeBuilder.cs: Make 'created' field visible to the runtime.
1589
1590 2004-09-28  Martin Baulig  <martin@ximian.com>
1591
1592         * GenericTypeParameterBuilder.cs
1593         (GenericTypeParameterBuilder.ContainsGenericParameters): Return
1594         true here; System.Type.ContainsGenericParameters returns true when
1595         called on a type parameter, so let's do the same here.
1596
1597 2004-09-27  Zoltan Varga  <vargaz@freemail.hu>
1598
1599         * ConstructorBuilder.cs: Add 2.0 GetILGenerator(size) method.
1600
1601 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
1602
1603         * UnmanagedMarshal.cs: Add ToMarshalAsAttribute method.
1604
1605 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
1606
1607         * TypeBuilder.cs: Add IsCreated method.
1608
1609 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
1610
1611         * FieldBuilder.cs: Add dummy GetFieldOffset method.
1612
1613 2004-09-24  Martin Baulig  <martin@ximian.com>
1614
1615         * GenericTypeParameterBuilder.cs
1616         (GenericTypeParameterBuilder.GetGenericParameterConstraints): Override.
1617
1618 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
1619
1620         * DynamicMethod.cs: Add MetadataToken property and tweak Module property.
1621
1622 2004-09-23  Martin Baulig  <martin@ximian.com>
1623
1624         * GenericTypeParameterBuilder.cs
1625         (GenericTypeParameterBuilder.SetGenericParameterAttributes): New
1626         public method, replaces the old Mono_* hacks.
1627
1628 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
1629
1630         * AssemblyBuilder.cs: Fixed assembly-level permissions. I don't know 
1631         why I splitted them all into individual entries when only a single set
1632         is accepted for each security action :(.
1633
1634 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
1635
1636         * CustomAttributeBuilder.cs: Applied patch from Marcus Urban
1637         (mathpup@mylinuxisp.com). Add support for defining custom
1638         marshallers by calling SetCustomAttribute.      
1639
1640 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
1641
1642         * AssemblyBuilder.cs: Keep a copy of the 3 permission set as an array
1643         of RefEmitPermissionSet. This will allow to reuse existing 
1644         functionalities already present in the runtime.
1645
1646 2004-09-12  Marek Safar  <marek.safar@seznam.cz>
1647
1648         * TypeBuilder.cs: Do not create default constructor for
1649         static classes.
1650
1651 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
1652
1653         * TypeBuilder.cs: Set the table_idx of the global type to 1.
1654
1655         * ModuleBuilder.cs: Save the main module of the assembly even if it is 
1656         transient.
1657
1658 2004-09-02 Ben Maurer  <bmaurer@users.sourceforge.net>
1659
1660         * LocalBuilder.cs: another s.ioe
1661
1662 2004-09-02 Ben Maurer  <bmaurer@users.sourceforge.net>
1663
1664         * ModuleBuilder.cs: dont throw an S.IOE for debugging stuff.
1665         makes sre apps work
1666
1667 2004-09-02  Martin Baulig  <martin@ximian.com>
1668
1669         * MethodBuilder.cs (MethodBuilder.GetParameters): Throw a
1670         NotSupportedException() until the type has been fully created.
1671
1672 2004-09-01  Martin Baulig  <martin@ximian.com>
1673
1674         * IMonoSymbolWriter.cs: Removed.
1675
1676         * ModuleBuilder.cs, LocalBuilder.cs, ILGenerator.cs: Removed the
1677         old debugging code.
1678
1679 2004-08-13  Sebastien Pouliot  <sebastien@ximian.com>
1680
1681         * AssemblyBuilder.cs: (Partly) Fix delay-signing issue (#56621) when 
1682         MCS is used on the MS runtime (other part of the fix is for MCS).
1683
1684 2004-08-11  Marek Safar  <marek.safar@seznam.cz>
1685
1686         * AssemblyBuilder.cs: Added AddPermissionRequests method
1687         used be mcs for SecurityPermissionAttribute handling.
1688
1689 2004-08-08  Zoltan Varga  <vargaz@freemail.hu>
1690
1691         * EnumBuilder.cs: Call setup_enum_type () in the constructor. Fixes
1692         #62237.
1693
1694 2004-08-07  Jackson Harper  <jackson@ximian.com>
1695
1696         * AssemblyBuilder.cs: "neutral" culture is invariant culture
1697         (String.Empty).
1698
1699 2004-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1700
1701         * OpCodes.cs : csc complains CS1034 Line cannot exceed 2046 characters.
1702
1703 2004-08-05  Duncan Mak  <duncan@ximian.com>
1704
1705         * OpCodes.cs (TakesSingleByteArgument): Add this back.
1706
1707 2004-08-05  Duncan Mak  <duncan@ximian.com>     
1708
1709         This patch is based on an idea of Ben's to reduce the code size
1710         in MCS. 
1711
1712         * OpCodes.cs: Instead pushing the data onto the stack when each
1713         OpCode is initialized, pack the data into 2 ints and store only
1714         that.  Furthermore, the names of each OpCode are stored in a
1715         separate string array in the new OpCodeNames class.
1716
1717         * OpCodeNames.cs: The names of each OpCode are moved here to delay
1718         the initialization of the strings, as they are not used frequently.
1719
1720         * OpCode.cs: Rewrote this to take in everything as 2 ints.
1721
1722 2004-07-29  Martin Baulig  <martin@ximian.com>
1723
1724         * ILGenerator.cs (ILGenerator.Mono_GetCurrentOffset): New static
1725         internal method.
1726
1727         * ModuleBuilder.cs (ModuleBuilder.Mono_GetGuid): New static
1728         internal method.
1729
1730 2004-07-24  Martin Baulig  <martin@ximian.com>
1731
1732         * TypeBuilder.cs (TypeBuilder.UnspecifiedTypeSize): Set this to 0
1733         and initialize it to 0 everywhere.
1734
1735 2004-07-22  Martin Baulig  <martin@ximian.com>
1736
1737         * ILGenerator.cs (ILGenerator.BeginFaultBlock): Implemented.
1738
1739 2004-07-07  Miguel de Icaza  <miguel@ximian.com>
1740
1741         * LocalBuilder.cs: Remove MakePinned, we are now going to use
1742         ILGenerator.DeclaraLocal that takes the `bool pinned' argument. 
1743
1744         * ILGenerator.cs (DeclareLocal): Add `pinned' version of the
1745         method on the 2.0 profile.
1746
1747 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
1748
1749         * EnumBuilder.cs (CreateType): Call a new icall to set the internal
1750         type field. Fixes #59833.
1751
1752 Thu Jun 24 15:33:04 CEST 2004 Paolo Molaro <lupus@ximian.com>
1753
1754         * ParameterBuilder.cs: implement SetConstant ().
1755
1756 Wed Jun 23 15:40:48 CEST 2004 Paolo Molaro <lupus@ximian.com>
1757
1758         * TypeBuilder.cs: handle properly the case when SetParent() 
1759         is called (requires an updated runtime, too bug#60474).
1760
1761 Wed Jun 23 14:20:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
1762
1763         * EnumBuilder.cs, TypeBuilder.cs: patch from Gert Driesen
1764         to implement EnumBuilder (slightly tweaked).
1765
1766 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
1767
1768         * MethodRental.cs: fixed value of JitOnDemand
1769
1770 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
1771
1772         * FieldBuilder.cs: fixed implementation to match MS.NET,
1773         meaning throw InvalidOperationException for methods that
1774         should not be allowed to execute when type has been
1775         created, and throw NotSupportedException for methods and
1776         properties that should not be called on FieldBuilder
1777
1778 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
1779
1780         * MethodBuilder.cs: move check to see if type has already 
1781         been created up, to match MS.NET behaviour. Fix GetHashCode 
1782         (removed TODO)
1783
1784 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
1785
1786         * MethodRental.cs: Added check for method size
1787
1788 2004-06-08  Martin Baulig  <martin@ximian.com>
1789
1790         * ILGenerator.cs (TokenGenerator.GetToken): Added overloaded
1791         version which takes a MethodInfo and a Type[].
1792         (IlGenerator.EmitCall): When emitting a call to a varargs method,
1793         use the new GetToken() to pass the optional argument types to the
1794         runtime.
1795
1796         * ModuleBuilder.cs (ModuleBuilder.getMethodToken): New interncall.
1797
1798 2004-05-29  Gert Driesen (drieseng@users.sourceforge.net)
1799
1800         * AssemblyBuilder.cs: removed extra method, fixes public API
1801         compatibility with MS.NET
1802         * TypeBuilder.cs: removed extra method, fixes public API
1803         compatibility with MS.NET
1804
1805 2004-05-28  Jackson Harper  <jackson@ximian.com>
1806
1807         * CustomAttributeBuilder.cs: GetBlob now takes a ref to the
1808         assembly so it can encode type names properly.
1809         
1810 2004-05-25  Sebastien Pouliot  <sebastien@ximian.com>
1811
1812         * MethodBuilder.cs: Now use FastNewGuidArray to create new random 
1813         Guids without using CryptoConfig. Speed up for MCS.
1814
1815 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
1816
1817         * MethodBuilder.cs: Add Equals and GetHashCode.
1818
1819         * TypeBuilder.cs: Add IsSubclassOf.
1820
1821 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
1822
1823         * AssemblyBuilder.cs: Make extra methods internal. mcs was changed
1824         to handle this a long time ago.
1825
1826         * TypeBuilder.cs: Add IsAssignableFrom and IsInstanceOfType.
1827         
1828         * TypeBuilder.cs MethodBuilder.cs ConstructorBuilder.cs: Implement
1829         ToString ().
1830
1831         * TypeBuilder.cs (ToString): Make this consistent with MS.NET.
1832
1833 2004-05-11  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1834
1835         * OpCodes.cs: Refactored to avoid the static constructor
1836
1837 2004-05-10  Gert Driesen (drieseng@users.sourceforge.net)
1838         * AssemblyBuilder.cs: fixed warning
1839         * MethodRental.cs: added private default ctror to match MS.NET
1840
1841 2004-05-03 Lluis Sanches Gual  <lluis@ximian.com>
1842
1843         * ModuleBuilder.cs: Use name const to load the debugger assembly.
1844
1845 2004-05-01  Todd Berman  <tberman@sevenl.net>
1846
1847         * ModuleBuilder.cs: Load the proper assembly for a gac-only install.
1848
1849 2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>
1850
1851         * ILGenerator.cs, ModuleBuilder.cs: readonlyificate.
1852
1853 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
1854
1855         * MethodRental.cs: New file.
1856
1857 2004-04-28  Raja R Harinath  <rharinath@novell.com>
1858
1859         * TypeBuilder.cs (SetCustomAttribute): Handle the presence of the
1860         full type name in the data stream.  This is emitted for value
1861         types by the Mono runtime.
1862
1863 2004-04-23  Atsushi Enomoto  <atsushi@ximian.com>
1864
1865         * ConstructorBuilder.cs, DynamicMethod.cs, EnumBuilder.cs,
1866           GenericTypeParameterBuilder.cs, MethodBuilder.cs, ModuleBuilder.cs,
1867           OpCodes.cs, TypeBuilder.cs :
1868           The fix should be easier ;)
1869
1870 2004-04-23  Atsushi Enomoto  <atsushi@ximian.com>
1871
1872         * ConstructorBuilder.cs, DynamicMethod.cs, EnumBuilder.cs,
1873           GenericTypeParameterBuilder.cs, MethodBuilder.cs, ModuleBuilder.cs,
1874           OpCodes.cs, TypeBuilder.cs :
1875           NET_2_0 related build fix.
1876
1877 2004-04-07  Martin Baulig  <martin@ximian.com>
1878
1879         * GenericTypeParameterBuilder.cs
1880         (Mono_SetReferenceTypeConstraint): New public method.
1881         (Mono_SetValueTypeConstraint): New public method.
1882
1883 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
1884
1885         * MethodBuilder.cs, TypeBuilder.cs: always have 
1886         slot for generic_params for consistent offsets.
1887
1888 2004-04-07  Martin Baulig  <martin@ximian.com>
1889
1890         * GenericTypeParameterBuilder.cs
1891         (Mono_SetConstructorConstraint): New public method.     
1892
1893 2004-04-07  Martin Baulig  <martin@ximian.com>
1894
1895         * GenericTypeParameterBuilder.cs: New file.
1896
1897         * TypeBuilder.cs (TypeBuilder.DefineGenericParameters): New public
1898         method.  This is the new public API.
1899         (TypeBuilder.DefineGenericParameter): Removed.
1900         (TypeBuilder.SetGenericParameterConstraints): Removed.
1901
1902         * MethodBuilder.cs (MethodBuilder.DefineGenericParameters): New public
1903         method.  This is the new public API.
1904         (MethodBuilder.DefineGenericParameter): Removed.
1905         (MethodBuilder.SetGenericParameterConstraints): Removed.
1906
1907 2004-04-01  Martin Baulig  <martin@ximian.com>
1908
1909         * OpCodes.cs (OpCodes.Constrained): New opcode.
1910
1911 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
1912
1913         * LocalBuilder.cs: Fix pinned support.
1914
1915 2004-03-30  Martin Baulig  <martin@ximian.com>
1916
1917         * TypeBuilder.cs (TypeBuilder.SetGenericParameterConstraints):
1918         Added `bool has_ctor_constraint' argument.
1919
1920         * MethodBuilder.cs (MethodBuilder.SetGenericParameterConstraints):
1921         Added `bool has_ctor_constraint' argument.
1922
1923 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
1924
1925         * LocalBuilder.cs: pinned support.
1926
1927 2004-03-29  Martin Baulig  <martin@ximian.com>
1928
1929         * TypeBuilder.cs (TypeBuilder.ContainsGenericParameters): Implemented.
1930
1931 2004-03-25  Sebastien Pouliot  <sebastien@ximian.com>
1932
1933         * AssemblyBuilder.cs: Changed strongname support to match MS 
1934         implementation (i.e. attributes are used by the compiler - not by
1935         AssemblyBuilder).
1936
1937 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
1938
1939         * TypeBuilder.cs (GetMethod): Implement.
1940
1941         * CustomAttributeBuilder.cs: Reenable argument checking with MS.NET
1942         compatibility tweaks.
1943
1944 2004-03-23  Martin Baulig  <martin@ximian.com>
1945
1946         * TypeBuilder.cs (TypeBuilder.GetEvents_internal): New internal
1947         method; this is basically GetEvents(), but see the FIXME in that method.
1948
1949 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
1950
1951         * CustomAttributeBuilder.cs: Disable argument checking since it causes
1952         regressions.
1953
1954 2004-03-22  Zoltan Varga  <vargaz@freemail.hu>
1955
1956         * CustomAttributeBuilder.cs (Initialize): Add more argument checking. 
1957         Fixes #55793.
1958
1959 2004-03-09  Jackson Harper  <jackson@ximian.com>
1960
1961         * CustomAttributeBuilder.cs: Add some argument checking. Handle
1962         default arguments properly.
1963
1964 2004-03-09  Sebastien Pouliot  <spouliot@videotron.ca>
1965
1966         * AssemblyBuilder.cs: The strong name key file existance will now be
1967         checked in the current compilation directory AND in the assembly
1968         output directory. Fix bugzilla entry #55320.
1969
1970 2004-02-23  Martin Baulig  <martin@ximian.com>
1971
1972         * MethodBuilder.cs (MethodBuilder.SetGenericMethodSignature):
1973         Added MethodAttributes and CallingConventions arguments.
1974
1975 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
1976
1977         * TypeBuilder.cs: Implement DefineUninitializedData and 
1978         AddDeclarativeSecurity.
1979
1980 2004-01-27  Zoltan Varga  <vargaz@freemail.hu>
1981
1982         * AssemblyBuilder.cs (SetCustomAttribute): Move the reading of the
1983         keyfile to the Save () method.
1984
1985 2004-01-26  Sebastien Pouliot  <spouliot@videotron.ca>
1986
1987         * AssemblyBuilder.cs: Save will now strongname the assembly is (a) a
1988         StrongName is present and (b) the signature isn't delayed.
1989
1990 2004-01-24 David Sheldon <dave-mono@earth.li>
1991
1992         * AssemblyBuilder.cs: Added override for GetFiles() that throws
1993           NotSupportedException. 
1994
1995 2004-01-15  Zoltan Varga  <vargaz@freemail.hu>
1996
1997         * AssemblyBuilder.cs (Save): Handle entry points with an int return
1998         type as well.
1999         
2000         * AssemblyBuilder.cs (Save): If the entry point is in a module, create
2001         a new entry point which calls the real one, since the entry point must
2002         be in the module which contains the manifest.
2003
2004         * ModuleBuilder.cs (Save): Create the global type automatically if not
2005         already done.
2006
2007 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
2008
2009         * AssemblyBuilder.cs (DefineVersionInfoResource): Set more 
2010         version info properties.
2011
2012 2004-01-08  Zoltan Varga  <vargaz@freemail.hu>
2013
2014         * CustomAttributeBuilder.cs (string_arg): New helper method.
2015
2016         * AssemblyBuilder.cs (DefineVersionInfoResource): Implement.
2017
2018         * AssemblyBuilder.cs (SetCustomAttribute): Use the new helper method.
2019
2020         * AssemblyBuilder.cs (DefineUnmanagedResource): Implement.
2021
2022         * AssemblyBuilder.cs (DefineIconResource): New internal method to
2023         support mcs.
2024
2025         * TypeBuilder.cs (IsDefined): Implement this, since some corlib classes
2026         make calls to IsDefined.
2027
2028 2004-01-06  Zoltan Varga  <vargaz@freemail.hu>
2029
2030         * AssemblyBuilder.cs: Fix warning.
2031
2032 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
2033
2034         * AssemblyBuilder.cs (DefineVersionInfoResource): Implement.
2035
2036 2003-12-29 Ben Maurer  <bmaurer@users.sourceforge.net>
2037
2038         * MethodBuilder.cs, ConstructorBuilder.cs: Override GetParameterCount.
2039         * ILGenerator.cs: Use GetParameterCount.
2040
2041 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
2042
2043         * AssemblyBuilder.cs (AddModule): New internal method to support 
2044         /addmodule in mcs.
2045
2046 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
2047
2048         * AssemblyBuilder.cs: New internal property to support /target:module in
2049         mcs.
2050
2051 2003-12-18  Zoltan Varga  <vargaz@freemail.hu>
2052
2053         * ILGenerator.cs: Applied patch from Ben Maurer 
2054         (bmaurer@users.sourceforge.net). Allocate arrays holding label data
2055         lazily and reduce their size.
2056
2057 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
2058
2059         * AssemblyBuilder.cs (MonoResource): New 'offset' field used by the
2060         runtime.
2061
2062         * ModuleBuilder: Implement DefineResource.
2063
2064 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
2065
2066         * AssemblyBuilder.cs (RefEmitPermissionSet): New helper structure.
2067         
2068         * MethodBuilder.cs (AddDeclarativeSecurity): Implement.
2069
2070         * ConstructorBuilder.cs (AddDeclarativeSecurity): Ditto.
2071
2072 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
2073
2074         * MethodBuilder.cs: Add stubs for missing methods.
2075
2076         * TypeBuilder.cs (GetEvents): Add new override.
2077
2078         * ModuleBuilder.cs: Implement some missing methods, add stubs for others.
2079
2080         * AssemblyBuilder.cs (GetFiles): Get rid of unneccessary override.
2081
2082         * AssemblyBuilder.cs (ImageRuntimeVersion): Add override to keep
2083         signature compatibility with MS.NET.
2084
2085         * TypeBuilder.cs (MemberType): Get rid of unneccessary override.
2086
2087 2003-12-08  Martin Baulig  <martin@ximian.com>
2088
2089         * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Removed; use the
2090         new `MonoGenericParam' class instead (in S.R/MonoGenericInst.cs).
2091
2092 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
2093
2094         * ModuleBuilder.cs: Double the size of the types array during insertion
2095         do avoid excessive memory allocation and copying. Track the number of
2096         types in a separate variable.
2097
2098         * TypeBuilder.cs: Same for the 'fields' and 'methods' arrays.
2099
2100 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
2101
2102         * ModuleBuilder.cs (DefinePInvokeMethod): Implement.
2103
2104         * ModuleBuilder.cs (DefineGlobalMethod): Implement the Net 1.2 variants.
2105
2106 2003-11-28  Dick Porter  <dick@ximian.com>
2107
2108         * ModuleBuilder.cs: Do string compares with the Invariant culture.
2109
2110 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
2111
2112         * AssemblyBuilder.cs (SetCustomAttribute): Implement automatic 
2113         generation of build and revision numbers. Fixes #46492.
2114
2115 2003-11-25  Zoltan Varga  <vargaz@freemail.hu>
2116
2117         * TypeBuilder.cs: Implement GetField.
2118
2119 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
2120
2121         * DynamicMethod.cs: New class.
2122
2123         * ILGenerator.cs MethodBuilder.cs ConstructorBuilder.cs: Retrieve 
2124         tokens from a token generator object instead of from the ModuleBuilder,
2125         to support the implementation of DynamicMethod. Also get rid of the 
2126         unused 'mbuilder' field.
2127
2128         * ModuleBuilder.cs: Create a token generator object which can be
2129         passed to ILGenerator.
2130
2131         * LocalBuilder.cs ILGenerator.cs: Get rid of 'module' field, obtain 
2132         needed objects from the ilgen object instead.
2133
2134 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
2135
2136         * TypeBuilder.cs FieldBuilder.cs MethodBuilder.cs ConstructorBuilder.cs:  Add support for custom modifiers from NET 1.2.
2137
2138         * ILGenerator.cs: Remove unused abuilder member.
2139
2140 2003-11-19  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2141
2142         * OpCodes.cs: Remove Boxval for v1.1+
2143
2144 2003-11-19  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2145
2146         * OpCodes.cs: Small rearrange to fix csc compiler warning about obsolete member used
2147
2148 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
2149
2150         * AssemblyBuilderAccess.cs PackingSize: Add [Flags].
2151
2152         * AssemblyBuilder.cs (DefineDynamicModule): Make internal method
2153         private.
2154
2155         * AssemblyBuilder.cs (Save): Write out the main module at the end.
2156         
2157 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
2158         
2159         * ConstructorBuilder.cs (.ctor): Automatically add RTSpecialName flag
2160         as MS does.
2161
2162 2003-11-06  Martin Baulig  <martin@ximian.com>
2163
2164         * ModuleBuilder.cs (ModuleBuilder.Save): Call `build_metadata'
2165         before writing the symbol file.
2166
2167 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
2168
2169         * AssemblyBuilder.cs (.ctor): Initialize the 'dir' field to something
2170         sensible.
2171         
2172         * AssemblyBuilder.cs (Save): Set 'created' flag.
2173
2174         * AssemblyBuilder.cs (get_next_table_index): Moved to ModuleBuilder,
2175         since table indexes are per-module.
2176
2177 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
2178
2179         * TypeBuilder.cs (DefineDefaultConstructor): Pass an array instead of 
2180         null to DefineConstructor, to avoid NullReferenceExceptions in the 
2181         binder code.
2182
2183         * AssemblyBuilder.cs ModuleBuilder.cs ILGenerator.cs: Move getUSIndex 
2184         and getToken methods, and the associated icalls to ModuleBuilder, 
2185         since tokens are per-module.
2186
2187         * AssemblyBuilder.cs ModuleBuilder.cs: Partially revert the previous
2188         patch, since having the 'is_main' field is useful in the unmanaged 
2189         code.
2190
2191         * AssemblyBuilder.cs ModuleBuilder.cs: Move the metadata creation and
2192         file creation logic to ModuleBuilder:Save (), since this needs to be
2193         done for every module. Also move the corresponding icalls to 
2194         ModuleBuilder.
2195
2196 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
2197
2198         * AssemblyBuilder.cs ModuleBuilder.cs: First steps toward a fix for
2199         #48700 (proper module support in Ref.Emit). Remove is_main field from
2200         ModuleBuilder and add a mainModule field to AssemblyBuilder instead.
2201         This is neccesary, since the main module is determined during the 
2202         Save () call: the module with the same file name as the assembly is
2203         the main module. Also create a default main module, if one is not
2204         existing.
2205
2206 2003-11-03  Martin Baulig  <martin@ximian.com>
2207
2208         * OpCodes.cs: Added Ldelem_Any, Stelem_Any and Unbox_Any from .NET 1.2.
2209
2210 2003-10-18  Sebastien Pouliot  <spouliot@videotron.ca>
2211
2212         * AssemblyBuilder.cs (SetCustomAttribute): Changed PK extraction to
2213         use Mono.Security.StrongName (#49785).
2214
2215 2003-10-18  Zoltan Varga  <vargaz@freemail.hu>
2216
2217         * AssemblyBuilder.cs (SetCustomAttribute): Extract the public key from
2218         the keyfile.
2219
2220 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
2221
2222         * AssemblyBuilder.cs (SetCustomAttribute): Ignore empty keyfile name.
2223         
2224         * AssemblyBuilder.cs: Moved loading of the public key file into
2225         managed code from reflection.c. 
2226
2227         * AssemblyBuilder.cs: Set cultureInfo and version from the AssemblyName
2228         passed to the constructor.
2229
2230 2003-10-13  Martin Baulig  <martin@ximian.com>
2231
2232         * MethodBuilder.cs (MethodBuilder): Added
2233         `TypeBuilder.MonoGenericParam[] generic_params' field.
2234         (DefineGenericParameter, SetGenericMethodSignature): New public methods.
2235
2236         * TypeBuilder.cs (DefineGenericMethod): New public method.
2237
2238 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
2239
2240         * OpCode.cs: Fix Value property. Fixes #49328.
2241
2242 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
2243
2244         * TypeBuilder.cs (CreateType): Fire TypeResolve events for unfinished 
2245         nested value types. Fixes #47022.
2246
2247 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
2248
2249         * TypeBuilder.cs: Really fix #48695.
2250
2251 Sat Sep 27 16:17:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
2252
2253         * ILGenerator.cs: instance fields are loaded from this.
2254
2255 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
2256
2257         * TypeBuilder.cs (DefineDefaultConstructor): Make this work on types
2258         without a parent. Fixes #48695.
2259
2260 2003-09-17  Martin Baulig  <martin@ximian.com>
2261
2262         * TypeBuilder.cs (TypeBuilder.CreateType): Don't append the type
2263         parameters to the type name; ie. use `Stack' instead of `Stack<T>'.
2264
2265 2003-09-06  Martin Baulig  <martin@ximian.com>
2266
2267         * TypeBuilder.cs (TypeBuilder.IsUnboundGenericParameter): Implemented.
2268
2269 2003-09-04  Martin Baulig  <martin@ximian.com>
2270
2271         * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Make this nested
2272         class internal, not protected.
2273
2274 2003-08-29  Martin Baulig  <martin@ximian.com>
2275
2276         * TypeBuilder.cs (TypeBuilder.DefineGenericParameter): New public
2277         method.  We can now create generic types.
2278         (TypeBuilder.GetGenericTypeDefinition): Override this; call the
2279         `setup_internal_class' interncall before calling our base impl.
2280
2281 Sat Aug  2 13:04:55 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
2282
2283         * ILGenerator.cs: Emission of doubles now utilise the Double.AssertEndianity
2284         icall to assert double word endianity on ARM.
2285
2286 2003-07-25  Duncan Mak  <duncan@ximian.com>
2287
2288         * OpCodes.cs (Boxval): Marked with ObsoleteAttribute.
2289
2290 2003-07-24  Miguel de Icaza  <miguel@ximian.com>
2291
2292         * TypeBuilder.cs: Added generics stubs.
2293
2294         * EnumBuilder.cs: Added generics  stubs, changed bracing style for
2295         routines.
2296
2297 2003-07-23  Duncan Mak  <duncan@ximian.com>
2298
2299         * SignatureHelper.cs: This class does not have the
2300         SerializableAttribute.
2301
2302 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
2303
2304         * AssemblyBuilder.cs: Added argument checking to all methods according
2305         to the MSDN docs. Also marked DefineUnmanagedResource and its friends
2306         as not implemented.
2307         * ModuleBuilder.cs: Added new property FileName used by AssemblyBuilder.
2308         * ModuleBuilder.cs AssemblyBuilder.cs: Implemented IsTransient ().
2309
2310 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
2311
2312         * EventBuilder.cs: Add argument checking to methods.
2313
2314 Thu Jun 5 20:18:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
2315
2316         * AssemblyBuilder.cs: implemented DefineResource ().
2317
2318 Thu Jun 5 12:36:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
2319
2320         * OpCode.cs: implemented Equals/GetHashCode.
2321
2322 Tue Jun 3 11:14:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
2323
2324         * ILGenerator.cs, OpCode.cs: optimize opcode space usage.
2325
2326 Tue Jun 3 11:13:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
2327
2328         * UnmanagedMarshal.cs: add ability to define custom attributes (the MS
2329         runtime doesn't support this).
2330
2331 2003-05-30  Zoltan Varga  <vargaz@freemail.hu>
2332
2333         * TypeBuilder.cs: Implement DefineTypeInitializer.
2334
2335 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
2336
2337         * ModuleBuilder.cs: 
2338         - Implement DefineInitializedData in terms of DefineUninitializedData
2339         - Name the types of global fields $ArrayType$<len> to cut back on the
2340         number of types created
2341         - Add argument checking
2342
2343 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
2344
2345         * AssemblyBuilder.cs: Implement GetDynamicModule. "Implement" various
2346         methods not supported under MS.NET.
2347
2348 2003-05-18  Martin Baulig  <martin@ximian.com>
2349
2350         * AssemblyBuilder.cs (corlib_void_type): New internal field.
2351         (SetCorlibTypeBuilders): Added overloaded version which takes 4
2352         arguments to set the `corlib_void_type'.
2353
2354         * TypeBuilder.cs: Use `pmodule.assemblyb.corlib_void_type' instead
2355         of `typeof (void)' to make this work when compiling corlib.
2356
2357 Thu May 15 19:16:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
2358
2359         * MethodBuilder.cs: off by one in CreateMethodBody().
2360         * TypeBuilder.cs: if the return type for a method is null, use void.
2361
2362 2003-04-28  Miguel de Icaza  <miguel@ximian.com>
2363
2364         * MethodBuilder.cs: Mono allows the parameter position to be zero
2365         to indicate the "returns:" attribute.
2366
2367 2003-04-20  Miguel de Icaza  <miguel@ximian.com>
2368
2369         * ILGenerator.cs (EmitCall): Implement.
2370
2371         Flag a few unimplemented methods with MonoTODO, make coding style
2372         for method definitions Mono consistent.
2373
2374 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
2375
2376         * ILGenerator.cs: Implement EmitWriteLine methods.
2377
2378         * TypeBuilder.cs (CreateType): Avoid creating a default constructor
2379         for the global type.
2380
2381 2003-04-15  Miguel de Icaza  <miguel@ximian.com>
2382
2383         * TypeBuilder.cs (DefineDefaultConstructor): Make it generate code
2384         by default for a default constructor.  This is what the MS runtime
2385         does.  The PythonNet code expected this.
2386
2387         (TypeBuilder.GetConstructorImpl): Implement this.
2388
2389         (TypeBuilder.CreateType): If there are no constructors defined, we
2390         create one.
2391
2392 Tue Apr 15 13:50:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
2393
2394         * ModuleBuilder.cs, TypeBuilder.cs: set nesting_type before
2395         calling setup_internal_class ().
2396
2397 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
2398
2399         * AssemblyBuilder.cs: Added 'access' member, which is needed by the
2400         runtime.
2401
2402 2003-03-26  Zoltan Varga  <vargaz@freemail.hu>
2403
2404         * ILGenerator.cs: Implemented ThrowException.
2405
2406 2003-03-10  Zoltan Varga  <vargaz@freemail.hu>
2407
2408         * ILGenerator.cs: Propagate maxstack info along branches.
2409
2410 2003-03-06  Zoltan Varga  <vargaz@freemail.hu>
2411
2412         * ILGenerator.cs (Emit): Do not pop the arguments off the stack for
2413         ldftn etc. Fixes bug #39196.
2414
2415 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
2416
2417         * ILGenerator.cs (Emit): Add fixup for already created methods and
2418         fields. Do not add fixup for types since their table index do not 
2419         change any more.
2420
2421 2003-02-26  Zoltan Varga  <vargaz@freemail.hu>
2422
2423         * TypeBuilder.cs (DefineInitializedData): Removed unnecessary assignments.
2424
2425         * ModuleBuilder.cs (DefineInitializedData): Do not call 
2426         TypeBuilder::DefineInitializedData since that would mean defining a
2427         nested type of the global type, which is wrong. Instead define a
2428         new public type as MS does.
2429
2430         * ModuleBuilder.cs (DefineUninitializedData): Ditto.
2431
2432 Thu Feb 13 18:40:52 CET 2003 Paolo Molaro <lupus@ximian.com>
2433
2434         * ModuleBuilder.cs: add the basic initialization call.
2435
2436 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
2437
2438         * AssemblyBuilder.cs: Added basic error checking to some methods
2439         according to the MSDN docs.
2440
2441 2003-02-10  Zoltan Varga  <vargaz@freemail.hu>
2442
2443         * ConstructorBuilder.cs: 
2444         - Added basic error checking to all methods according to the MSDN docs.
2445         - modified a lot of methods to throw NotSupportedException, to comply
2446           with MS.NET.
2447
2448 2003-02-09  Zoltan Varga  <vargaz@freemail.hu>
2449
2450         * TypeBuilder.cs:
2451         - Added basic error checking to all methods according to the MSDN docs.
2452         - fixed AssemblyQualifiedName.
2453         - implemented 'Size'.
2454         - modified a lot of methods to throw NotSupportedException, to comply
2455           with MS.NET.
2456         - changes tested by running a full bootstrap.
2457
2458 2003-02-09  Martin Baulig  <martin@ximian.com>
2459
2460         * AssemblyBuilder.cs (AssemblyBuilder.methods): Removed.  This was
2461         a hack for the symbol writer which is no longer needed.
2462
2463 2003-02-09  Martin Baulig  <martin@ximian.com>
2464
2465         * IMonoSymbolWriter.cs (DefineNamespace, OpenMethod): New methods.
2466
2467 2003-02-09  Martin Baulig  <martin@ximian.com>
2468
2469         * IMonoSymbolWriter.cs (MarkSequencePoint): New method which takes
2470         just the required arguments as scalars, not arrays.
2471
2472         * ILGenerator.cs (ILGenerator.MarkSequencePoint): Use that new
2473         interface method; unnecessarily creating such a large number of
2474         arrays is both slow and too memory consuming.   
2475
2476 2003-02-08  Zoltan Varga  <vargaz@freemail.hu>
2477
2478         * MethodBuilder.cs: Added error checking to methods so they conform to
2479         MSDN docs. Implemented 'GetModule' and 'CallingConvention' members. 
2480         Some other tweaks to improve compatibility with MS .NET.
2481
2482         * TypeBuilder.cs: Added 'is_created' property which will be used for
2483         checking 'type is already created' errors.
2484
2485 2003-02-07  Martin Baulig  <martin@ximian.com>
2486
2487         * ModuleBuilder.cs (.ctor): Added `bool IsMainModule' argument.
2488         (Save): New internal method; creates the module's symbol file if
2489         we're compiling with debugging information.
2490
2491         * AssemblyBuilder.cs (EmbedResource): Added internal overloaded
2492         version of this method which takes a `byte[] blob' instead of a file.
2493         (DefineDynamicMethod): If this is the first module, tell the
2494         ModuleBuilder that this is the main module.
2495         (Save): Call a new interncall `build_metadata' to create the final
2496         metadata and save all the symbol files before creating the actual
2497         output.
2498
2499         * IMonoSymbolWriter.cs: New public class; it is in the namespace
2500         Mono.CSharp.Debugger.  The Mono symbol writer implements this interface.
2501
2502 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
2503
2504         * AssemblyBuilder.cs: added GetToken (SignatureHelper).
2505
2506         * ILGenerator.cs: implemented EmitCalli() methods
2507
2508         * SignatureHelper.cs: implemented GetMethoSigHelper() methods.
2509
2510 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2511
2512         * MethodBuilder.cs: GetBaseDefinition () returns this.
2513
2514 Mon Jan 27 17:07:38 CET 2003 Paolo Molaro <lupus@ximian.com>
2515
2516         * CustomAttributeBuilder.cs, FieldBuilder.cs: applied
2517         (reformatted) patch from "Jerome Laban" <jlaban@wanadoo.fr>
2518         to fix ByValStr and ByValArray encodings.
2519
2520 2003-01-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2521
2522         * AssemblyBuilder.cs: fixed compilation with csc.
2523
2524 2003-01-26  Miguel de Icaza  <miguel@ximian.com>
2525
2526         * AssemblyBuilder.cs (Save): Set the executable bit at the end.
2527         This uses a non-official enumeration value to call SetFileAttributes.
2528
2529 2003-01-17  Zoltan Varga  <vargaz@freemail.hu>
2530
2531         * MethodBuilder.cs ConstructorBuilder.cs: modify GetParameters() so it
2532         returns information even when the app did not use DefineParameter() to
2533         define the parameters.
2534
2535         * ConstructorBuilder.cs (ctor): allways define SpecialName attribute
2536         for constructors as done by MS.
2537
2538 Mon Jan 13 11:37:14 CET 2003 Paolo Molaro <lupus@ximian.com>
2539
2540         * TypeBuilder.cs, ModuleBuilder.cs: better type name cache.
2541
2542 2003-01-10  Zoltan Varga  <vargaz@freemail.hu>
2543
2544         * ILGenerator.cs: Implemented EmitWriteLine(string).
2545
2546         * TypeBuilder.cs (DefineInitializedData): Call DefineNestedType() 
2547         instead of DefineType() so the auxiliary types do not pollute the 
2548         global namespace. This is consistent with the behaviour of MS .NET.
2549
2550 Fri Jan 10 16:03:30 CET 2003 Paolo Molaro <lupus@ximian.com>
2551
2552         * ILGenerator.cs, MethodBuilder.cs, TypeBuilder.cs,
2553         ConstructorBuilder.cs: some tweaks to reduce memory usage.
2554
2555 Thu Jan 2 18:46:09 CET 2003 Paolo Molaro <lupus@ximian.com>
2556
2557         * ModuleBuilder.cs, TypeBuilder.cs: support global fields and methods.
2558
2559 Thu Dec 19 00:06:57 CET 2002 Paolo Molaro <lupus@ximian.com>
2560
2561         * AssemblyBuilder.cs: remove duplicated user string entries.
2562
2563 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
2564
2565         * FieldBuilder.cs: added 'handle' field which is needed by some new
2566         code in reflection.c.
2567
2568 2002-12-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2569
2570         * TypeBuilder.cs: implemented GetInterfaceMap () when the Type has been
2571         created.
2572
2573 Fri Nov 8 14:53:03 CET 2002 Paolo Molaro <lupus@ximian.com>
2574
2575         * ILGenerator.cs: account for the exception object being passed to the
2576         catch handler to calc max_stack.
2577
2578 2002-09-21  Martin Baulig  <martin@gnome.org>
2579
2580         * ModuleBuilder.cs (ModuleBuilder.symbol_writer): Make this
2581         field internal, not private.
2582         (ModuleBuilder.SymWriter_DefineLocalVariable): Removed.
2583
2584         * LocalBuilder.cs (LocalBuilder.SetLocalSymInfo): Use the
2585         ISymbolWriter's DefineLocalVariable() method instead of the
2586         IMonoSymbolWriter hack.
2587
2588 Mon Sep 16 19:02:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
2589
2590         * AssemblyBuilder.c: special case some custom attributes.
2591
2592 2002-09-12  Dick Porter  <dick@ximian.com>
2593
2594         * TypeBuilder.cs: Say _which_ Type has already been created
2595
2596 2002-09-11  Miguel de Icaza  <miguel@ximian.com>
2597
2598         * ModuleBuilder.cs (GetTypes): Implement.
2599
2600 Tue Sep 10 12:12:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
2601
2602         * ConstructorBuilder.cs: added a field to hold the handle.
2603
2604 Mon Sep 9 17:31:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
2605
2606         * TypeBuilder.cs: prepare for the real CreateType implementation.
2607
2608 Tue Aug 27 16:57:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
2609
2610         * TypeBuilder.cs: remove duplicate code and fix
2611         named field reading in custom attr.
2612
2613 2002-08-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2614
2615         * TypeBuilder.cs: UnspecifiedTypeSize is 0.
2616
2617 Wed Aug 14 17:38:41 CEST 2002 Paolo Molaro <lupus@ximian.com>
2618
2619         * TypeBuilder.cs: ReflectedType and CreateType fixes.
2620
2621 Thu Aug 8 10:25:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
2622
2623         * AssemblyBuilder.cs: added API to embed managed resources.
2624
2625 2002-08-03  Martin Baulig  <martin@gnome.org>
2626
2627         * TypeBuilder.cs (TypeBuilder.DeclaringType): Implemented.
2628
2629 Thu Jul 25 13:57:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
2630
2631         * AssemblyBuilder.cs: support linking external resources.
2632
2633 2002-07-19  Martin Baulig  <martin@gnome.org>
2634
2635         * ILGenerator.cs (Emit (OpCode, LocalBuilder)): Throw an exception
2636         when trying to emit a local that was defined in a different ILGenerator.
2637
2638         * LocalBuilder.cs (LocalBuilder): Added `ILGenetator' argument to
2639         the constructor.
2640
2641 Tue Jul 16 19:32:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
2642
2643         * ILGenerator.cs: stack size check fix.
2644
2645 Sat Jul 13 17:30:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
2646
2647         * AssemblyBuilder.cs: add also the enum_type for compiling corlib.
2648         * TypeBuilder.cs: complete IsValueType.
2649
2650 Sat Jul 13 15:08:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
2651
2652         * TypeBuilder.cs: better IsValueType.
2653
2654 2002-07-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2655
2656         * CustomAttributeBuilder.cs: removed compile warning.
2657
2658 Fri Jul 12 11:34:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
2659
2660         * ILGenerator.cs: fixup typebuilder tokens as well.
2661
2662 Tue Jul 9 19:03:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
2663
2664         * TypeBuilder.cs: special case SerializarionAttribute.
2665         Tweaks to get correct code in corlib.
2666
2667 2002-07-06  Miguel de Icaza  <miguel@ximian.com>
2668
2669         * ILGenerator.cs (ILGenerator.Emit): For doubles and floats, swap
2670         the bytes on big endian systems. 
2671
2672 2002-07-03  Martin Baulig  <martin@gnome.org>
2673
2674         * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): Moved
2675         these fields up after the last entry in MonoReflectionAssemblyBuilder
2676         in reflection.h.
2677
2678         * TypeBuilder.cs (IsValueTypeImpl): Use the AssemblyBuilder's
2679         `corlib_value_type' instead of `typeof (System.ValueType)'.
2680         (DefineNestedType): Use the AssemblyBuilder's `corlib_object_type'
2681         instead of `typeof (object)'.
2682
2683 2002-07-02  Martin Baulig  <martin@gnome.org>
2684
2685         * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): New
2686         internal fields.  When compiling corlib, they point to the newly
2687         created System.Object and System.ValueType types.
2688         (SetCorlibTypeBuilders): New public function.  This will be
2689         dynamically called from MCS when compiling corlib.
2690
2691         * TypeBuilder.cs (DefineInitializedData): Use the AssemblyBuilder's
2692         `corlib_value_type' as parent type instead of `typeof (System.ValueType)'
2693         to make it work when compiling corlib.
2694
2695         * ModuleBuilder.cs (assemblyb): Made this field internal, not private.
2696
2697 Tue Jul 2 18:34:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
2698
2699         * TypeBuilder.cs: implemented AssemblyQualifiedName.
2700         * MethodBuilder.cs, ConstructorBuilder.cs: special case custom attr.
2701
2702 Mon Jul 1 16:17:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
2703
2704         * TypeBuilder.cs: implemented AddInterfaceImplementation().
2705
2706 2002-06-28  Martin Baulig  <martin@gnome.org>
2707
2708         * MethodBuilder.cs (GetParameters): Return all parameters, not all
2709         but the last one.
2710
2711 2002-06-27  Martin Baulig  <martin@gnome.org>
2712
2713         * ConstructorBuilder.cs (GetParameters): Implemented.
2714
2715 Mon Jun 17 14:55:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
2716
2717         * ModuleBuilder.cs, TypeBuilder.cs: fixes for nested types handling.
2718
2719 Fri Jun 14 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
2720
2721         * CustomAttributeBuilder.cs: added custom attribute related internal
2722         helper methods.
2723         * FieldBuilder.cs, ParameterBuilder.cs: handle MarshalAs attribute.
2724         * UnmanagedMarshal.cs: implemented.
2725
2726 Mon Jun 10 18:58:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
2727
2728         * PropertyBuilder.cs: implemented ReflectedType and DeclaringType
2729         properties.
2730
2731 2002-06-07  Martin Baulig  <martin@gnome.org>
2732
2733         * TypeBuilder.cs (TypeBuilder): Added `PackingSize packing_size' and
2734         `int type_size' fields to the constructor.
2735         (DefineNestedType): Pass packing_size and type_size to the constructor.
2736
2737         * ModuleBuilder.cs (DefineType): Pass the packing_size and type_size
2738         fields to the TypeBuilder's constructor.
2739
2740 2002-06-07  Martin Baulig  <martin@gnome.org>
2741
2742         * TypeBuilder.cs (DefineNestedType): There is no overload for this
2743         method which takes 5 args in the specs, removed it.
2744
2745 Fri Jun 7 17:04:06 CEST 2002 Paolo Molaro <lupus@ximian.com>
2746
2747         * AssemblyBuilder.cs: updates for PE/COFF rewrite.
2748
2749 2002-05-30  Martin Baulig  <martin@gnome.org>
2750
2751         * AssemblyBuilder.cs (methods): Made this internal and don't
2752         initialize it.  It will be initialized by the ModuleBuilder's
2753         GetSymbolWriter() method.
2754         (get_next_table_index): Only store the method in the `methods'
2755         array if it's not null.
2756
2757         * ModuleBuilder.cs (GetSymbolWriter): Initialize the AssemblyBuilder's
2758         `methods' field if necessary and pass it as third argument to the
2759         symbol writer's constructor.
2760
2761 2002-05-25  Martin Baulig  <martin@gnome.org>
2762
2763         * TypeBuilder.cs (TypeToken): Implemented.
2764
2765 2002-05-24  Martin Baulig  <martin@gnome.org>
2766
2767         * ModuleBuilder.cs (symwriter_define_local): New private variable.
2768         (GetSymbolWriter): Look for a custom version of "DefineLocalVariable"
2769         and store it in `symwriter_define_local'.
2770         (SymWriter_DefineLocalVariable): New internal method to call the
2771         symbol writer's custom DefineLocalVariable() method.  It is safe to
2772         call this method if there's no symbol writer.
2773
2774         * LocalBuilder.cs (SetLocalSymInfo): Use the MethodBuilder'snew
2775         SymWriter_DefineLocalVariable().
2776
2777         * MethodBuilder.cs (GetParameters): Implemented.
2778
2779 2002-05-22  Martin Baulig  <martin@gnome.org>
2780
2781         * ModuleBuilder.cs (GetSymbolWriter): Pass the this pointer to the
2782         symbol writer's constructor.
2783
2784 2002-05-22  Martin Baulig  <martin@gnome.org>
2785
2786         * AssemblyBuilder.cs (methods): New field.
2787         (get_next_table_index): Record all methods and constructors
2788         (table 0x06) in the `methods' array.  This is read by the
2789         Mono.CSharp.Debugger.MonoSymbolWriter::get_method interncall to
2790         get the MethodBuilder / ConstructorBuilder back from the token.
2791
2792         * *Builder.cs (get_next_table_index): Added `object obj' argument.
2793         (<constructors>): pass the this pointer to get_next_table_index ().
2794
2795 2002-05-20  Martin Baulig  <martin@gnome.org>
2796
2797         * TypeBuilder.cs (DefineField): Call the new `create_internal_class'
2798         interncall after adding the first field.  This is used when creating
2799         enum types to set `klass->enum_basetype'.
2800
2801 Thu May 16 16:09:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
2802
2803         * TypeBuilder.cs: complete special acse support for CharSet, Size and
2804         Pack named args in StructLayout attribute.
2805
2806 Tue May 14 17:13:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
2807
2808         * MethodBuilder.cs: revert change in accessibility of
2809         GetILGenerator(int).
2810
2811 Tue May 14 13:31:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
2812
2813         * FieldBuilder.cs, ParameterBuilder.cs: more special-casing of
2814         attributes.
2815
2816 Fri May 10 20:57:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
2817
2818         * CustomAttributeBuilder.cs: expose internal data for use in
2819         reflection.
2820         * FieldBuilder.cs, TypeBuilder.cs: special case FieldOffset and
2821         StructLayout attributes.
2822
2823 Fri May 10 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
2824
2825         * MethodBuilder.cs, ConstructorBuilder.cs: implemented InitLocals
2826         property.
2827
2828 2002-04-26  Martin Baulig  <martin@gnome.org>
2829
2830         * ModuleBuilder.cs (DefineDocument): Implemented.
2831
2832 Tue Apr 16 13:02:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
2833
2834         * AssemblyBuilder.cs: pad output file to file alignment.
2835         * FieldBuilder.cs: ReflectedType.
2836         * ModuleBuilder.cs: added guid generation and array method creation.
2837         * MonoArrayMethod.cs: array method support code.
2838         
2839 Wed Apr 10 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
2840
2841         * ILGenerator.cs: use a stack to keep track of exception blocks.
2842
2843 Mon Apr  8 06:19:01  2002 Piers Haken <piersh@friskit.com>
2844
2845         * ILGenerator.cs: added LabelField.label_base to allow for
2846         arbitrary offsets (for switch statement)
2847
2848 Fri Apr 5 15:41:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
2849
2850         * AssemblyBuilder.cs: simpler protocol wih the runtime to
2851         get the assembly data.
2852
2853 Tue Mar 26 20:10:24 CET 2002 Paolo Molaro <lupus@ximian.com>
2854
2855         * AssemblyBuilder.cs: use FileMode.Create.
2856         * ILGenerator.cs: optimize localbuilder related opcodes.
2857         Track parameters to adjust maxstack.
2858         * LocalBuilder.cS: use unsigned for position.
2859
2860 2002-03-23  Miguel de Icaza  <miguel@ximian.com>
2861
2862         * LocalBuilder.cs: Drop the symbol_writer as LocalBuilder fields.
2863         Do this lazily in SetLocalSymInfo.
2864         
2865 2002-03-24  Martin Baulig  <martin@gnome.org>
2866
2867         * ModuleBuilder.cs (GetSymbolWriter): The MonoSymbolWriter's constructor
2868         now takes a `string assembly_filename' argument, pass it our fully
2869         qualified assembly name.
2870
2871 2002-03-24  Nick Drochak  <ndrochak@gol.com>
2872
2873         * ILGenerator.cs: Use #if-#endif instead of if(false){} to disable
2874         code.  This way there is no compiler warning.
2875
2876         * TypeBuilder.cs: Removed the returns that came after the throws.
2877         This removes a few more compiler warnings. Also marked with MonoTODO
2878         all places where we throw NotImplemented exceptions.
2879
2880 2002-03-23  Martin Baulig  <martin@gnome.org>
2881
2882         * SignatureHelper.cs (GetFieldSignatureHelper, GetLocalSignatureHelper):
2883         Implemented.
2884
2885         * LocalBuilder.cs (LocalBuilder): This internal constructor now takes
2886         a ModuleBuilder argument instead of a ISymbolWriter one.
2887         (SetLocalSymInfo): Create and pass type signature to DefineLocalVariable.
2888
2889 2002-03-23  Martin Baulig  <martin@gnome.org>
2890
2891         * ILGenerator.cs (BeginScope, EndScope): Implemented.
2892
2893 2002-03-20  Martin Baulig  <martin@gnome.org>
2894
2895         * ModuleBuilder.cs (GetSymbolWriter): New internal function. Dynamically
2896         loads the default symbol writer, catch all possible exceptions and return
2897         null on failure.
2898         (ModuleBuilder): Added `bool emitSymbolInfo' argument to this internal
2899         constructor; if set, call GetSymbolWriter ().
2900         (GetSymWriter): Implemented.
2901
2902         * LocalBuilder.cs (LocalBuilder): Added ISymbolWriter argument to this
2903         internal method.
2904         (SetLocalSymInfo): Implemented, call ISymbolWriter.DefineLocalVariable ()
2905         if the symbol writer is not null.
2906
2907         * ILGenerator.cs (ILGenerator): Call ModuleBuilder.GetSymWriter () to get
2908         and store the symbol writer.
2909         (DeclareLocal): Pass the symbol writer to LocalBuilder's constructor.
2910         (MarkSequencePoint): Implemented, call ISymbolWriter.DefineSequencePoints ()
2911         if the symbol writer is not null.
2912
2913         * AssemblyBuilder.cs (DefineDynamicModule): Pass the `bool emitSymbolInfo'
2914         to ModuleBuilder's constructor.
2915
2916 Sat Mar 16 19:11:47 CET 2002 Paolo Molaro <lupus@ximian.com>
2917
2918         * ModuleBuilder.cs: handle modified types correctly.
2919
2920 Thu Mar 7 17:10:42 CET 2002 Paolo Molaro <lupus@ximian.com>
2921
2922         * AssemblyBuilder.cs: allow saving bigger assemblies.
2923         * ILGenerator.cs: add fixup table for fields and methods, since
2924         at the end of the compile they may end up with a different table
2925         index.
2926         * ModuleBuilder.cs: add cache for type names to speed up the type
2927         lookups from the compiler.
2928         * TypeBuilder.cs: GetInterfaces () returns only interfaces in the
2929         current type, not in parents (the docs are wrong).
2930
2931 Tue Mar 5 18:09:34 CET 2002 Paolo Molaro <lupus@ximian.com>
2932
2933         * EventBuilder.cs: implemented.
2934         * TypeBuilder.cs: implemented DefineEvent() method and UnderlyingSystemType
2935         property.
2936
2937 Mon Mar 4 20:34:52 CET 2002 Paolo Molaro <lupus@ximian.com>
2938
2939         * ILGenerator.cs: make enough room in the byte array for string
2940         tokens.
2941         * TypeBuilder.cs: fixed GetInterfaces().
2942
2943 Mon Mar 4 11:30:40 CET 2002 Paolo Molaro <lupus@ximian.com>
2944
2945         * TypeBuilder.cs: implemented GetConstructors(), GetFields(),
2946         GetMethods(), GetProperties().
2947
2948 Thu Feb 28 19:15:10 CET 2002 Paolo Molaro <lupus@ximian.com>
2949
2950         * AssemblyBuilder.cs: call into the runtime to init some basic
2951         assembly stuff. Reserve slot 1 of typedef table for .<Module>.
2952         * ModuleBuilder.cs: call into the runtime if we need to create a
2953         modief type, such as arrays, byref etc.
2954         * TypeBuilder.cs: call into the runtime to create the MonoClass
2955         representation for the type. Throw exceptions with not implemented
2956         stuff.
2957
2958 Wed Feb 27 18:48:47 CET 2002 Paolo Molaro <lupus@ximian.com>
2959
2960         * ILGenerator.cs: fix nested exception blocks.
2961
2962 Wed Feb 20 22:30:49 CET 2002 Paolo Molaro <lupus@ximian.com>
2963
2964         * AssemblyBuilder.cs: upped compiled assembly size limit.
2965         Implemented SetCustomAttribute () methods.
2966         * CustomAttributeBuilder.cs: implemented the needed constructor
2967         stuff.
2968         * Cosntructorbuilder.cs, EnumBuilder.cs, FieldBuilder.cs,
2969         MethodBuilder.cs, ModuleBuilder.cs, ParameterBuilder.cs,
2970         PropertyBuilder.cs, TypeBuilder.cs: Implemented SetCustomAttribute () methods.
2971
2972 Wed Feb 20 14:54:01 CET 2002 Paolo Molaro <lupus@ximian.com>
2973
2974         * AssemblyBuilder.cs: add SetCustomAttribute () to keep the compiler
2975         going.
2976
2977 Fri Feb 15 18:15:04 CET 2002 Paolo Molaro <lupus@ximian.com>
2978
2979         * ILGenerator.cs: finally block support and fixes.
2980
2981 Thu Feb 14 18:55:52 CET 2002 Paolo Molaro <lupus@ximian.com>
2982
2983         * FieldBuilder.cs: Add SetRVAData().
2984         * ILGenerator.cs: speed up code array growth.
2985         * TypeBuilder.cs: fix IsValueTypeImpl(). Add class_size member.
2986         Implement DefineInitializedData().
2987
2988 Tue Jan 22 23:01:11 CET 2002 Paolo Molaro <lupus@ximian.com>
2989
2990         * EnumBuilder.cs, TypeBuilder.cs: updates for changes in Type.cs.
2991         * ModuleBuilder.cs: fix lookup of nested types.
2992
2993 Tue Jan 15 22:46:21 CET 2002 Paolo Molaro <lupus@ximian.com>
2994
2995         * ILGenerator.cs: implement some of the exception support methods.
2996
2997 Mon Jan 14 17:07:32 CET 2002 Paolo Molaro <lupus@ximian.com>
2998
2999         * ModulerBuilder.cs: search also for subtypes in GetTypes().
3000         * TypeBuilder.cs: bugfix in FullName. Implemented DefineNestedType().
3001
3002 Fri Jan 11 19:00:29 CET 2002 Paolo Molaro <lupus@ximian.com>
3003
3004         * MethodBuilder.cs, ConstructorBuilder.cs: save parameter info.
3005
3006 Thu Jan 10 21:07:54 CET 2002 Paolo Molaro <lupus@ximian.com>
3007
3008         * ILGenerator.cs: handle type tokens (used for box opcode).
3009
3010 Wed Jan 9 19:37:55 CET 2002 Paolo Molaro <lupus@ximian.com>
3011
3012         * ILGenerator.cs: emit float and doubles.
3013         * ModuleBuilder.cs: off-by-one error fix and GetType()
3014         implementations.
3015         * TypeBuilder.cs: AttributesImpl added.
3016         * UnmanagedMarshal.cs: stubbed out class.
3017
3018 Sat Jan 5 15:59:05 CET 2002 Paolo Molaro <lupus@ximian.com>
3019
3020         * ILGenerator.cs: fix emission of two-bytes opcodes.
3021         Missing slot for locals array. Throw exceptions on unimplemented
3022         methods.
3023         * OpCode.cs: add a comment: the Value property is useless.
3024         * OpCodes.cs: fix name of tail opcode (Tail -> Tailcall).
3025
3026 2002-01-05  Ravi Pratap  <ravi@ximian.com>
3027
3028         * ConstructorBuilder.cs : Use the MonoTODO attribute.
3029
3030         * ILGenerator.cs, Label.cs, MethodBuilder.cs, ModuleBuilder.cs,
3031         ParameterBuilder.cs, TypeBuilder.cs : Ditto.
3032         
3033 Thu Jan 3 23:26:15 CET 2002 Paolo Molaro <lupus@ximian.com>
3034
3035         * ILGenerator.cs: typo fix.
3036
3037 Mon Dec 24 17:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
3038
3039         * TypeBuilder.cs: added DefineMethodOverride().
3040         * MethodBuilder.cs: add override_method member and setter.
3041
3042 Mon Nov 19 13:58:01 CET 2001 Paolo Molaro <lupus@ximian.com>
3043
3044         * AssemblyBuilder.cs: add method to register a string in the "#US"
3045         stream.
3046         * EnumBuilder.cs, SignatureHelper.cs: added stubs.
3047         * ILGenerator.cs: more stuff implemented.
3048         * LocalBuilder.cs: keep track of local var index.
3049
3050 Thu Nov 15 18:11:23 CET 2001 Paolo Molaro <lupus@ximian.com>
3051
3052         * ConstructorBuilder.cs: implement the interesting methods.
3053         * ILGenerator.cs: adapt for use with both a MethodBuilder and a
3054         ConstructorBuilder.
3055         * MethodBuilder.cs: add ImplAttributes.
3056         * ParameterBuilder.cs: adapt for ConstructorBuilder.
3057         * TypeBuilder.cs: add constructors handling.
3058
3059 Wed Nov 14 17:01:45 CET 2001 Paolo Molaro <lupus@ximian.com>
3060
3061         * ConstructorBuilder.cs: added missing stubs and some implementation.
3062         * CustomAttributeBuilder.cs: added.
3063         * EventBuilder.cs: added.
3064         * FieldBuilder.cs: updates.
3065         * MethodBuilder.cs: stuff to implement P/Invoke methods.
3066         * ModuleBuilder.cs: added GetArrayMethod() stub.
3067         * ParameterBuilder.cs, PropertyBuilder.cs: updates.
3068         * TypeBuilder.cs: updates and stubs.
3069
3070 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
3071
3072         * TypeBuilder.cs: Added implementation for TypeHandle.
3073
3074 Tue Nov 6 09:13:45 CET 2001 Paolo Molaro <lupus@ximian.com>
3075
3076         * AssemblyBuilder.cs: define an internal constructor.
3077
3078 2001-10-07  Miguel de Icaza  <miguel@ximian.com>
3079
3080         * AssemblyBuilder.cs: Reformatted.
3081
3082         Added override keywords to those that needed them.
3083
3084         Removed methods that we do not override, but just inherit
3085
3086 Tue Sep 25 16:53:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
3087
3088         * TypeBuilder.cs, ConstructorBuilder.cs, ModuleBuilder.cs: added.