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