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