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