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