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