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