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