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