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