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