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