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