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