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