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