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