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