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