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