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