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