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