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