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