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