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