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