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