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