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