This commit was manufactured by cvs2svn to create branch 'mono-1-0'.
[mono.git] / mcs / class / corlib / System.Reflection.Emit / ChangeLog
1 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
2
3         * ModuleBuilder.cs (GetTypes): Fix length of returned array. Fixes
4         #65931. 
5
6 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
7
8         * ModuleBuilder.cs (DefineType): Check for duplicate type names. Fixes
9         #65988. 
10
11 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
12
13         * CustomAttributeBuilder.cs: Applied patch from Marcus Urban (mathpup@mylinuxisp.com). Add support for defining custom marshallers by calling SetCustomAttribute.
14
15 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
16
17         * TypeBuilder.cs: Set the table_idx of the global type to 1.
18
19         * ModuleBuilder.cs: Save the main module of the assembly even if it is 
20         transient.
21
22 2004-08-13  Sebastien Pouliot  <sebastien@ximian.com>
23
24         * AssemblyBuilder.cs: (Partly) Fix delay-signing issue (#56621) when 
25         MCS is used on the MS runtime (other part of the fix is for MCS).
26
27 2004-07-24  Martin Baulig  <martin@ximian.com>
28
29         * TypeBuilder.cs (TypeBuilder.UnspecifiedTypeSize): Set this to 0
30         and initialize it to 0 everywhere.
31
32 Thu Jun 24 15:33:04 CEST 2004 Paolo Molaro <lupus@ximian.com>
33
34         * ParameterBuilder.cs: implement SetConstant ().
35
36 Wed Jun 23 15:40:48 CEST 2004 Paolo Molaro <lupus@ximian.com>
37
38         * TypeBuilder.cs: handle properly the case when SetParent() 
39         is called (requires an updated runtime, too bug#60474).
40
41 Wed Jun 23 14:20:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
42
43         * EnumBuilder.cs, TypeBuilder.cs: patch from Gert Driesen
44         to implement EnumBuilder (slightly tweaked).
45
46 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
47
48         * MethodRental.cs: fixed value of JitOnDemand
49
50 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
51
52         * FieldBuilder.cs: fixed implementation to match MS.NET,
53         meaning throw InvalidOperationException for methods that
54         should not be allowed to execute when type has been
55         created, and throw NotSupportedException for methods and
56         properties that should not be called on FieldBuilder
57
58 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
59
60         * MethodBuilder.cs: move check to see if type has already 
61         been created up, to match MS.NET behaviour. Fix GetHashCode 
62         (removed TODO)
63
64 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
65
66         * MethodRental.cs: Added check for method size
67
68 2004-06-08  Martin Baulig  <martin@ximian.com>
69
70         * ILGenerator.cs (TokenGenerator.GetToken): Added overloaded
71         version which takes a MethodInfo and a Type[].
72         (IlGenerator.EmitCall): When emitting a call to a varargs method,
73         use the new GetToken() to pass the optional argument types to the
74         runtime.
75
76         * ModuleBuilder.cs (ModuleBuilder.getMethodToken): New interncall.
77
78 2004-05-29  Gert Driesen (drieseng@users.sourceforge.net)
79
80         * AssemblyBuilder.cs: removed extra method, fixes public API
81         compatibility with MS.NET
82         * TypeBuilder.cs: removed extra method, fixes public API
83         compatibility with MS.NET
84
85 2004-05-28  Jackson Harper  <jackson@ximian.com>
86
87         * CustomAttributeBuilder.cs: GetBlob now takes a ref to the
88         assembly so it can encode type names properly.
89         
90 2004-05-25  Sebastien Pouliot  <sebastien@ximian.com>
91
92         * MethodBuilder.cs: Now use FastNewGuidArray to create new random 
93         Guids without using CryptoConfig. Speed up for MCS.
94
95 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
96
97         * MethodBuilder.cs: Add Equals and GetHashCode.
98
99         * TypeBuilder.cs: Add IsSubclassOf.
100
101 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
102
103         * AssemblyBuilder.cs: Make extra methods internal. mcs was changed
104         to handle this a long time ago.
105
106         * TypeBuilder.cs: Add IsAssignableFrom and IsInstanceOfType.
107         
108         * TypeBuilder.cs MethodBuilder.cs ConstructorBuilder.cs: Implement
109         ToString ().
110
111         * TypeBuilder.cs (ToString): Make this consistent with MS.NET.
112
113 2004-05-11  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
114
115         * OpCodes.cs: Refactored to avoid the static constructor
116
117 2004-05-10  Gert Driesen (drieseng@users.sourceforge.net)
118         * AssemblyBuilder.cs: fixed warning
119         * MethodRental.cs: added private default ctror to match MS.NET
120
121 2004-05-03 Lluis Sanches Gual  <lluis@ximian.com>
122
123         * ModuleBuilder.cs: Use name const to load the debugger assembly.
124
125 2004-05-01  Todd Berman  <tberman@sevenl.net>
126
127         * ModuleBuilder.cs: Load the proper assembly for a gac-only install.
128
129 2004-04-29 Ben Maurer  <bmaurer@users.sourceforge.net>
130
131         * ILGenerator.cs, ModuleBuilder.cs: readonlyificate.
132
133 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
134
135         * MethodRental.cs: New file.
136
137 2004-04-28  Raja R Harinath  <rharinath@novell.com>
138
139         * TypeBuilder.cs (SetCustomAttribute): Handle the presence of the
140         full type name in the data stream.  This is emitted for value
141         types by the Mono runtime.
142
143 2004-04-23  Atsushi Enomoto  <atsushi@ximian.com>
144
145         * ConstructorBuilder.cs, DynamicMethod.cs, EnumBuilder.cs,
146           GenericTypeParameterBuilder.cs, MethodBuilder.cs, ModuleBuilder.cs,
147           OpCodes.cs, TypeBuilder.cs :
148           The fix should be easier ;)
149
150 2004-04-23  Atsushi Enomoto  <atsushi@ximian.com>
151
152         * ConstructorBuilder.cs, DynamicMethod.cs, EnumBuilder.cs,
153           GenericTypeParameterBuilder.cs, MethodBuilder.cs, ModuleBuilder.cs,
154           OpCodes.cs, TypeBuilder.cs :
155           NET_2_0 related build fix.
156
157 2004-04-07  Martin Baulig  <martin@ximian.com>
158
159         * GenericTypeParameterBuilder.cs
160         (Mono_SetReferenceTypeConstraint): New public method.
161         (Mono_SetValueTypeConstraint): New public method.
162
163 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
164
165         * MethodBuilder.cs, TypeBuilder.cs: always have 
166         slot for generic_params for consistent offsets.
167
168 2004-04-07  Martin Baulig  <martin@ximian.com>
169
170         * GenericTypeParameterBuilder.cs
171         (Mono_SetConstructorConstraint): New public method.     
172
173 2004-04-07  Martin Baulig  <martin@ximian.com>
174
175         * GenericTypeParameterBuilder.cs: New file.
176
177         * TypeBuilder.cs (TypeBuilder.DefineGenericParameters): New public
178         method.  This is the new public API.
179         (TypeBuilder.DefineGenericParameter): Removed.
180         (TypeBuilder.SetGenericParameterConstraints): Removed.
181
182         * MethodBuilder.cs (MethodBuilder.DefineGenericParameters): New public
183         method.  This is the new public API.
184         (MethodBuilder.DefineGenericParameter): Removed.
185         (MethodBuilder.SetGenericParameterConstraints): Removed.
186
187 2004-04-01  Martin Baulig  <martin@ximian.com>
188
189         * OpCodes.cs (OpCodes.Constrained): New opcode.
190
191 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
192
193         * LocalBuilder.cs: Fix pinned support.
194
195 2004-03-30  Martin Baulig  <martin@ximian.com>
196
197         * TypeBuilder.cs (TypeBuilder.SetGenericParameterConstraints):
198         Added `bool has_ctor_constraint' argument.
199
200         * MethodBuilder.cs (MethodBuilder.SetGenericParameterConstraints):
201         Added `bool has_ctor_constraint' argument.
202
203 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
204
205         * LocalBuilder.cs: pinned support.
206
207 2004-03-29  Martin Baulig  <martin@ximian.com>
208
209         * TypeBuilder.cs (TypeBuilder.ContainsGenericParameters): Implemented.
210
211 2004-03-25  Sebastien Pouliot  <sebastien@ximian.com>
212
213         * AssemblyBuilder.cs: Changed strongname support to match MS 
214         implementation (i.e. attributes are used by the compiler - not by
215         AssemblyBuilder).
216
217 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
218
219         * TypeBuilder.cs (GetMethod): Implement.
220
221         * CustomAttributeBuilder.cs: Reenable argument checking with MS.NET
222         compatibility tweaks.
223
224 2004-03-23  Martin Baulig  <martin@ximian.com>
225
226         * TypeBuilder.cs (TypeBuilder.GetEvents_internal): New internal
227         method; this is basically GetEvents(), but see the FIXME in that method.
228
229 2004-03-23  Zoltan Varga  <vargaz@freemail.hu>
230
231         * CustomAttributeBuilder.cs: Disable argument checking since it causes
232         regressions.
233
234 2004-03-22  Zoltan Varga  <vargaz@freemail.hu>
235
236         * CustomAttributeBuilder.cs (Initialize): Add more argument checking. 
237         Fixes #55793.
238
239 2004-03-09  Jackson Harper  <jackson@ximian.com>
240
241         * CustomAttributeBuilder.cs: Add some argument checking. Handle
242         default arguments properly.
243
244 2004-03-09  Sebastien Pouliot  <spouliot@videotron.ca>
245
246         * AssemblyBuilder.cs: The strong name key file existance will now be
247         checked in the current compilation directory AND in the assembly
248         output directory. Fix bugzilla entry #55320.
249
250 2004-02-23  Martin Baulig  <martin@ximian.com>
251
252         * MethodBuilder.cs (MethodBuilder.SetGenericMethodSignature):
253         Added MethodAttributes and CallingConventions arguments.
254
255 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
256
257         * TypeBuilder.cs: Implement DefineUninitializedData and 
258         AddDeclarativeSecurity.
259
260 2004-01-27  Zoltan Varga  <vargaz@freemail.hu>
261
262         * AssemblyBuilder.cs (SetCustomAttribute): Move the reading of the
263         keyfile to the Save () method.
264
265 2004-01-26  Sebastien Pouliot  <spouliot@videotron.ca>
266
267         * AssemblyBuilder.cs: Save will now strongname the assembly is (a) a
268         StrongName is present and (b) the signature isn't delayed.
269
270 2004-01-24 David Sheldon <dave-mono@earth.li>
271
272         * AssemblyBuilder.cs: Added override for GetFiles() that throws
273           NotSupportedException. 
274
275 2004-01-15  Zoltan Varga  <vargaz@freemail.hu>
276
277         * AssemblyBuilder.cs (Save): Handle entry points with an int return
278         type as well.
279         
280         * AssemblyBuilder.cs (Save): If the entry point is in a module, create
281         a new entry point which calls the real one, since the entry point must
282         be in the module which contains the manifest.
283
284         * ModuleBuilder.cs (Save): Create the global type automatically if not
285         already done.
286
287 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
288
289         * AssemblyBuilder.cs (DefineVersionInfoResource): Set more 
290         version info properties.
291
292 2004-01-08  Zoltan Varga  <vargaz@freemail.hu>
293
294         * CustomAttributeBuilder.cs (string_arg): New helper method.
295
296         * AssemblyBuilder.cs (DefineVersionInfoResource): Implement.
297
298         * AssemblyBuilder.cs (SetCustomAttribute): Use the new helper method.
299
300         * AssemblyBuilder.cs (DefineUnmanagedResource): Implement.
301
302         * AssemblyBuilder.cs (DefineIconResource): New internal method to
303         support mcs.
304
305         * TypeBuilder.cs (IsDefined): Implement this, since some corlib classes
306         make calls to IsDefined.
307
308 2004-01-06  Zoltan Varga  <vargaz@freemail.hu>
309
310         * AssemblyBuilder.cs: Fix warning.
311
312 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
313
314         * AssemblyBuilder.cs (DefineVersionInfoResource): Implement.
315
316 2003-12-29 Ben Maurer  <bmaurer@users.sourceforge.net>
317
318         * MethodBuilder.cs, ConstructorBuilder.cs: Override GetParameterCount.
319         * ILGenerator.cs: Use GetParameterCount.
320
321 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
322
323         * AssemblyBuilder.cs (AddModule): New internal method to support 
324         /addmodule in mcs.
325
326 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
327
328         * AssemblyBuilder.cs: New internal property to support /target:module in
329         mcs.
330
331 2003-12-18  Zoltan Varga  <vargaz@freemail.hu>
332
333         * ILGenerator.cs: Applied patch from Ben Maurer 
334         (bmaurer@users.sourceforge.net). Allocate arrays holding label data
335         lazily and reduce their size.
336
337 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
338
339         * AssemblyBuilder.cs (MonoResource): New 'offset' field used by the
340         runtime.
341
342         * ModuleBuilder: Implement DefineResource.
343
344 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
345
346         * AssemblyBuilder.cs (RefEmitPermissionSet): New helper structure.
347         
348         * MethodBuilder.cs (AddDeclarativeSecurity): Implement.
349
350         * ConstructorBuilder.cs (AddDeclarativeSecurity): Ditto.
351
352 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
353
354         * MethodBuilder.cs: Add stubs for missing methods.
355
356         * TypeBuilder.cs (GetEvents): Add new override.
357
358         * ModuleBuilder.cs: Implement some missing methods, add stubs for others.
359
360         * AssemblyBuilder.cs (GetFiles): Get rid of unneccessary override.
361
362         * AssemblyBuilder.cs (ImageRuntimeVersion): Add override to keep
363         signature compatibility with MS.NET.
364
365         * TypeBuilder.cs (MemberType): Get rid of unneccessary override.
366
367 2003-12-08  Martin Baulig  <martin@ximian.com>
368
369         * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Removed; use the
370         new `MonoGenericParam' class instead (in S.R/MonoGenericInst.cs).
371
372 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
373
374         * ModuleBuilder.cs: Double the size of the types array during insertion
375         do avoid excessive memory allocation and copying. Track the number of
376         types in a separate variable.
377
378         * TypeBuilder.cs: Same for the 'fields' and 'methods' arrays.
379
380 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
381
382         * ModuleBuilder.cs (DefinePInvokeMethod): Implement.
383
384         * ModuleBuilder.cs (DefineGlobalMethod): Implement the Net 1.2 variants.
385
386 2003-11-28  Dick Porter  <dick@ximian.com>
387
388         * ModuleBuilder.cs: Do string compares with the Invariant culture.
389
390 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
391
392         * AssemblyBuilder.cs (SetCustomAttribute): Implement automatic 
393         generation of build and revision numbers. Fixes #46492.
394
395 2003-11-25  Zoltan Varga  <vargaz@freemail.hu>
396
397         * TypeBuilder.cs: Implement GetField.
398
399 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
400
401         * DynamicMethod.cs: New class.
402
403         * ILGenerator.cs MethodBuilder.cs ConstructorBuilder.cs: Retrieve 
404         tokens from a token generator object instead of from the ModuleBuilder,
405         to support the implementation of DynamicMethod. Also get rid of the 
406         unused 'mbuilder' field.
407
408         * ModuleBuilder.cs: Create a token generator object which can be
409         passed to ILGenerator.
410
411         * LocalBuilder.cs ILGenerator.cs: Get rid of 'module' field, obtain 
412         needed objects from the ilgen object instead.
413
414 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
415
416         * TypeBuilder.cs FieldBuilder.cs MethodBuilder.cs ConstructorBuilder.cs:  Add support for custom modifiers from NET 1.2.
417
418         * ILGenerator.cs: Remove unused abuilder member.
419
420 2003-11-19  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
421
422         * OpCodes.cs: Remove Boxval for v1.1+
423
424 2003-11-19  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
425
426         * OpCodes.cs: Small rearrange to fix csc compiler warning about obsolete member used
427
428 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
429
430         * AssemblyBuilderAccess.cs PackingSize: Add [Flags].
431
432         * AssemblyBuilder.cs (DefineDynamicModule): Make internal method
433         private.
434
435         * AssemblyBuilder.cs (Save): Write out the main module at the end.
436         
437 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
438         
439         * ConstructorBuilder.cs (.ctor): Automatically add RTSpecialName flag
440         as MS does.
441
442 2003-11-06  Martin Baulig  <martin@ximian.com>
443
444         * ModuleBuilder.cs (ModuleBuilder.Save): Call `build_metadata'
445         before writing the symbol file.
446
447 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
448
449         * AssemblyBuilder.cs (.ctor): Initialize the 'dir' field to something
450         sensible.
451         
452         * AssemblyBuilder.cs (Save): Set 'created' flag.
453
454         * AssemblyBuilder.cs (get_next_table_index): Moved to ModuleBuilder,
455         since table indexes are per-module.
456
457 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
458
459         * TypeBuilder.cs (DefineDefaultConstructor): Pass an array instead of 
460         null to DefineConstructor, to avoid NullReferenceExceptions in the 
461         binder code.
462
463         * AssemblyBuilder.cs ModuleBuilder.cs ILGenerator.cs: Move getUSIndex 
464         and getToken methods, and the associated icalls to ModuleBuilder, 
465         since tokens are per-module.
466
467         * AssemblyBuilder.cs ModuleBuilder.cs: Partially revert the previous
468         patch, since having the 'is_main' field is useful in the unmanaged 
469         code.
470
471         * AssemblyBuilder.cs ModuleBuilder.cs: Move the metadata creation and
472         file creation logic to ModuleBuilder:Save (), since this needs to be
473         done for every module. Also move the corresponding icalls to 
474         ModuleBuilder.
475
476 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
477
478         * AssemblyBuilder.cs ModuleBuilder.cs: First steps toward a fix for
479         #48700 (proper module support in Ref.Emit). Remove is_main field from
480         ModuleBuilder and add a mainModule field to AssemblyBuilder instead.
481         This is neccesary, since the main module is determined during the 
482         Save () call: the module with the same file name as the assembly is
483         the main module. Also create a default main module, if one is not
484         existing.
485
486 2003-11-03  Martin Baulig  <martin@ximian.com>
487
488         * OpCodes.cs: Added Ldelem_Any, Stelem_Any and Unbox_Any from .NET 1.2.
489
490 2003-10-18  Sebastien Pouliot  <spouliot@videotron.ca>
491
492         * AssemblyBuilder.cs (SetCustomAttribute): Changed PK extraction to
493         use Mono.Security.StrongName (#49785).
494
495 2003-10-18  Zoltan Varga  <vargaz@freemail.hu>
496
497         * AssemblyBuilder.cs (SetCustomAttribute): Extract the public key from
498         the keyfile.
499
500 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
501
502         * AssemblyBuilder.cs (SetCustomAttribute): Ignore empty keyfile name.
503         
504         * AssemblyBuilder.cs: Moved loading of the public key file into
505         managed code from reflection.c. 
506
507         * AssemblyBuilder.cs: Set cultureInfo and version from the AssemblyName
508         passed to the constructor.
509
510 2003-10-13  Martin Baulig  <martin@ximian.com>
511
512         * MethodBuilder.cs (MethodBuilder): Added
513         `TypeBuilder.MonoGenericParam[] generic_params' field.
514         (DefineGenericParameter, SetGenericMethodSignature): New public methods.
515
516         * TypeBuilder.cs (DefineGenericMethod): New public method.
517
518 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
519
520         * OpCode.cs: Fix Value property. Fixes #49328.
521
522 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
523
524         * TypeBuilder.cs (CreateType): Fire TypeResolve events for unfinished 
525         nested value types. Fixes #47022.
526
527 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
528
529         * TypeBuilder.cs: Really fix #48695.
530
531 Sat Sep 27 16:17:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
532
533         * ILGenerator.cs: instance fields are loaded from this.
534
535 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
536
537         * TypeBuilder.cs (DefineDefaultConstructor): Make this work on types
538         without a parent. Fixes #48695.
539
540 2003-09-17  Martin Baulig  <martin@ximian.com>
541
542         * TypeBuilder.cs (TypeBuilder.CreateType): Don't append the type
543         parameters to the type name; ie. use `Stack' instead of `Stack<T>'.
544
545 2003-09-06  Martin Baulig  <martin@ximian.com>
546
547         * TypeBuilder.cs (TypeBuilder.IsUnboundGenericParameter): Implemented.
548
549 2003-09-04  Martin Baulig  <martin@ximian.com>
550
551         * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Make this nested
552         class internal, not protected.
553
554 2003-08-29  Martin Baulig  <martin@ximian.com>
555
556         * TypeBuilder.cs (TypeBuilder.DefineGenericParameter): New public
557         method.  We can now create generic types.
558         (TypeBuilder.GetGenericTypeDefinition): Override this; call the
559         `setup_internal_class' interncall before calling our base impl.
560
561 Sat Aug  2 13:04:55 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
562
563         * ILGenerator.cs: Emission of doubles now utilise the Double.AssertEndianity
564         icall to assert double word endianity on ARM.
565
566 2003-07-25  Duncan Mak  <duncan@ximian.com>
567
568         * OpCodes.cs (Boxval): Marked with ObsoleteAttribute.
569
570 2003-07-24  Miguel de Icaza  <miguel@ximian.com>
571
572         * TypeBuilder.cs: Added generics stubs.
573
574         * EnumBuilder.cs: Added generics  stubs, changed bracing style for
575         routines.
576
577 2003-07-23  Duncan Mak  <duncan@ximian.com>
578
579         * SignatureHelper.cs: This class does not have the
580         SerializableAttribute.
581
582 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
583
584         * AssemblyBuilder.cs: Added argument checking to all methods according
585         to the MSDN docs. Also marked DefineUnmanagedResource and its friends
586         as not implemented.
587         * ModuleBuilder.cs: Added new property FileName used by AssemblyBuilder.
588         * ModuleBuilder.cs AssemblyBuilder.cs: Implemented IsTransient ().
589
590 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
591
592         * EventBuilder.cs: Add argument checking to methods.
593
594 Thu Jun 5 20:18:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
595
596         * AssemblyBuilder.cs: implemented DefineResource ().
597
598 Thu Jun 5 12:36:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
599
600         * OpCode.cs: implemented Equals/GetHashCode.
601
602 Tue Jun 3 11:14:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
603
604         * ILGenerator.cs, OpCode.cs: optimize opcode space usage.
605
606 Tue Jun 3 11:13:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
607
608         * UnmanagedMarshal.cs: add ability to define custom attributes (the MS
609         runtime doesn't support this).
610
611 2003-05-30  Zoltan Varga  <vargaz@freemail.hu>
612
613         * TypeBuilder.cs: Implement DefineTypeInitializer.
614
615 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
616
617         * ModuleBuilder.cs: 
618         - Implement DefineInitializedData in terms of DefineUninitializedData
619         - Name the types of global fields $ArrayType$<len> to cut back on the
620         number of types created
621         - Add argument checking
622
623 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
624
625         * AssemblyBuilder.cs: Implement GetDynamicModule. "Implement" various
626         methods not supported under MS.NET.
627
628 2003-05-18  Martin Baulig  <martin@ximian.com>
629
630         * AssemblyBuilder.cs (corlib_void_type): New internal field.
631         (SetCorlibTypeBuilders): Added overloaded version which takes 4
632         arguments to set the `corlib_void_type'.
633
634         * TypeBuilder.cs: Use `pmodule.assemblyb.corlib_void_type' instead
635         of `typeof (void)' to make this work when compiling corlib.
636
637 Thu May 15 19:16:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
638
639         * MethodBuilder.cs: off by one in CreateMethodBody().
640         * TypeBuilder.cs: if the return type for a method is null, use void.
641
642 2003-04-28  Miguel de Icaza  <miguel@ximian.com>
643
644         * MethodBuilder.cs: Mono allows the parameter position to be zero
645         to indicate the "returns:" attribute.
646
647 2003-04-20  Miguel de Icaza  <miguel@ximian.com>
648
649         * ILGenerator.cs (EmitCall): Implement.
650
651         Flag a few unimplemented methods with MonoTODO, make coding style
652         for method definitions Mono consistent.
653
654 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
655
656         * ILGenerator.cs: Implement EmitWriteLine methods.
657
658         * TypeBuilder.cs (CreateType): Avoid creating a default constructor
659         for the global type.
660
661 2003-04-15  Miguel de Icaza  <miguel@ximian.com>
662
663         * TypeBuilder.cs (DefineDefaultConstructor): Make it generate code
664         by default for a default constructor.  This is what the MS runtime
665         does.  The PythonNet code expected this.
666
667         (TypeBuilder.GetConstructorImpl): Implement this.
668
669         (TypeBuilder.CreateType): If there are no constructors defined, we
670         create one.
671
672 Tue Apr 15 13:50:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
673
674         * ModuleBuilder.cs, TypeBuilder.cs: set nesting_type before
675         calling setup_internal_class ().
676
677 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
678
679         * AssemblyBuilder.cs: Added 'access' member, which is needed by the
680         runtime.
681
682 2003-03-26  Zoltan Varga  <vargaz@freemail.hu>
683
684         * ILGenerator.cs: Implemented ThrowException.
685
686 2003-03-10  Zoltan Varga  <vargaz@freemail.hu>
687
688         * ILGenerator.cs: Propagate maxstack info along branches.
689
690 2003-03-06  Zoltan Varga  <vargaz@freemail.hu>
691
692         * ILGenerator.cs (Emit): Do not pop the arguments off the stack for
693         ldftn etc. Fixes bug #39196.
694
695 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
696
697         * ILGenerator.cs (Emit): Add fixup for already created methods and
698         fields. Do not add fixup for types since their table index do not 
699         change any more.
700
701 2003-02-26  Zoltan Varga  <vargaz@freemail.hu>
702
703         * TypeBuilder.cs (DefineInitializedData): Removed unnecessary assignments.
704
705         * ModuleBuilder.cs (DefineInitializedData): Do not call 
706         TypeBuilder::DefineInitializedData since that would mean defining a
707         nested type of the global type, which is wrong. Instead define a
708         new public type as MS does.
709
710         * ModuleBuilder.cs (DefineUninitializedData): Ditto.
711
712 Thu Feb 13 18:40:52 CET 2003 Paolo Molaro <lupus@ximian.com>
713
714         * ModuleBuilder.cs: add the basic initialization call.
715
716 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
717
718         * AssemblyBuilder.cs: Added basic error checking to some methods
719         according to the MSDN docs.
720
721 2003-02-10  Zoltan Varga  <vargaz@freemail.hu>
722
723         * ConstructorBuilder.cs: 
724         - Added basic error checking to all methods according to the MSDN docs.
725         - modified a lot of methods to throw NotSupportedException, to comply
726           with MS.NET.
727
728 2003-02-09  Zoltan Varga  <vargaz@freemail.hu>
729
730         * TypeBuilder.cs:
731         - Added basic error checking to all methods according to the MSDN docs.
732         - fixed AssemblyQualifiedName.
733         - implemented 'Size'.
734         - modified a lot of methods to throw NotSupportedException, to comply
735           with MS.NET.
736         - changes tested by running a full bootstrap.
737
738 2003-02-09  Martin Baulig  <martin@ximian.com>
739
740         * AssemblyBuilder.cs (AssemblyBuilder.methods): Removed.  This was
741         a hack for the symbol writer which is no longer needed.
742
743 2003-02-09  Martin Baulig  <martin@ximian.com>
744
745         * IMonoSymbolWriter.cs (DefineNamespace, OpenMethod): New methods.
746
747 2003-02-09  Martin Baulig  <martin@ximian.com>
748
749         * IMonoSymbolWriter.cs (MarkSequencePoint): New method which takes
750         just the required arguments as scalars, not arrays.
751
752         * ILGenerator.cs (ILGenerator.MarkSequencePoint): Use that new
753         interface method; unnecessarily creating such a large number of
754         arrays is both slow and too memory consuming.   
755
756 2003-02-08  Zoltan Varga  <vargaz@freemail.hu>
757
758         * MethodBuilder.cs: Added error checking to methods so they conform to
759         MSDN docs. Implemented 'GetModule' and 'CallingConvention' members. 
760         Some other tweaks to improve compatibility with MS .NET.
761
762         * TypeBuilder.cs: Added 'is_created' property which will be used for
763         checking 'type is already created' errors.
764
765 2003-02-07  Martin Baulig  <martin@ximian.com>
766
767         * ModuleBuilder.cs (.ctor): Added `bool IsMainModule' argument.
768         (Save): New internal method; creates the module's symbol file if
769         we're compiling with debugging information.
770
771         * AssemblyBuilder.cs (EmbedResource): Added internal overloaded
772         version of this method which takes a `byte[] blob' instead of a file.
773         (DefineDynamicMethod): If this is the first module, tell the
774         ModuleBuilder that this is the main module.
775         (Save): Call a new interncall `build_metadata' to create the final
776         metadata and save all the symbol files before creating the actual
777         output.
778
779         * IMonoSymbolWriter.cs: New public class; it is in the namespace
780         Mono.CSharp.Debugger.  The Mono symbol writer implements this interface.
781
782 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
783
784         * AssemblyBuilder.cs: added GetToken (SignatureHelper).
785
786         * ILGenerator.cs: implemented EmitCalli() methods
787
788         * SignatureHelper.cs: implemented GetMethoSigHelper() methods.
789
790 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
791
792         * MethodBuilder.cs: GetBaseDefinition () returns this.
793
794 Mon Jan 27 17:07:38 CET 2003 Paolo Molaro <lupus@ximian.com>
795
796         * CustomAttributeBuilder.cs, FieldBuilder.cs: applied
797         (reformatted) patch from "Jerome Laban" <jlaban@wanadoo.fr>
798         to fix ByValStr and ByValArray encodings.
799
800 2003-01-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
801
802         * AssemblyBuilder.cs: fixed compilation with csc.
803
804 2003-01-26  Miguel de Icaza  <miguel@ximian.com>
805
806         * AssemblyBuilder.cs (Save): Set the executable bit at the end.
807         This uses a non-official enumeration value to call SetFileAttributes.
808
809 2003-01-17  Zoltan Varga  <vargaz@freemail.hu>
810
811         * MethodBuilder.cs ConstructorBuilder.cs: modify GetParameters() so it
812         returns information even when the app did not use DefineParameter() to
813         define the parameters.
814
815         * ConstructorBuilder.cs (ctor): allways define SpecialName attribute
816         for constructors as done by MS.
817
818 Mon Jan 13 11:37:14 CET 2003 Paolo Molaro <lupus@ximian.com>
819
820         * TypeBuilder.cs, ModuleBuilder.cs: better type name cache.
821
822 2003-01-10  Zoltan Varga  <vargaz@freemail.hu>
823
824         * ILGenerator.cs: Implemented EmitWriteLine(string).
825
826         * TypeBuilder.cs (DefineInitializedData): Call DefineNestedType() 
827         instead of DefineType() so the auxiliary types do not pollute the 
828         global namespace. This is consistent with the behaviour of MS .NET.
829
830 Fri Jan 10 16:03:30 CET 2003 Paolo Molaro <lupus@ximian.com>
831
832         * ILGenerator.cs, MethodBuilder.cs, TypeBuilder.cs,
833         ConstructorBuilder.cs: some tweaks to reduce memory usage.
834
835 Thu Jan 2 18:46:09 CET 2003 Paolo Molaro <lupus@ximian.com>
836
837         * ModuleBuilder.cs, TypeBuilder.cs: support global fields and methods.
838
839 Thu Dec 19 00:06:57 CET 2002 Paolo Molaro <lupus@ximian.com>
840
841         * AssemblyBuilder.cs: remove duplicated user string entries.
842
843 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
844
845         * FieldBuilder.cs: added 'handle' field which is needed by some new
846         code in reflection.c.
847
848 2002-12-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
849
850         * TypeBuilder.cs: implemented GetInterfaceMap () when the Type has been
851         created.
852
853 Fri Nov 8 14:53:03 CET 2002 Paolo Molaro <lupus@ximian.com>
854
855         * ILGenerator.cs: account for the exception object being passed to the
856         catch handler to calc max_stack.
857
858 2002-09-21  Martin Baulig  <martin@gnome.org>
859
860         * ModuleBuilder.cs (ModuleBuilder.symbol_writer): Make this
861         field internal, not private.
862         (ModuleBuilder.SymWriter_DefineLocalVariable): Removed.
863
864         * LocalBuilder.cs (LocalBuilder.SetLocalSymInfo): Use the
865         ISymbolWriter's DefineLocalVariable() method instead of the
866         IMonoSymbolWriter hack.
867
868 Mon Sep 16 19:02:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
869
870         * AssemblyBuilder.c: special case some custom attributes.
871
872 2002-09-12  Dick Porter  <dick@ximian.com>
873
874         * TypeBuilder.cs: Say _which_ Type has already been created
875
876 2002-09-11  Miguel de Icaza  <miguel@ximian.com>
877
878         * ModuleBuilder.cs (GetTypes): Implement.
879
880 Tue Sep 10 12:12:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
881
882         * ConstructorBuilder.cs: added a field to hold the handle.
883
884 Mon Sep 9 17:31:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
885
886         * TypeBuilder.cs: prepare for the real CreateType implementation.
887
888 Tue Aug 27 16:57:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
889
890         * TypeBuilder.cs: remove duplicate code and fix
891         named field reading in custom attr.
892
893 2002-08-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
894
895         * TypeBuilder.cs: UnspecifiedTypeSize is 0.
896
897 Wed Aug 14 17:38:41 CEST 2002 Paolo Molaro <lupus@ximian.com>
898
899         * TypeBuilder.cs: ReflectedType and CreateType fixes.
900
901 Thu Aug 8 10:25:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
902
903         * AssemblyBuilder.cs: added API to embed managed resources.
904
905 2002-08-03  Martin Baulig  <martin@gnome.org>
906
907         * TypeBuilder.cs (TypeBuilder.DeclaringType): Implemented.
908
909 Thu Jul 25 13:57:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
910
911         * AssemblyBuilder.cs: support linking external resources.
912
913 2002-07-19  Martin Baulig  <martin@gnome.org>
914
915         * ILGenerator.cs (Emit (OpCode, LocalBuilder)): Throw an exception
916         when trying to emit a local that was defined in a different ILGenerator.
917
918         * LocalBuilder.cs (LocalBuilder): Added `ILGenetator' argument to
919         the constructor.
920
921 Tue Jul 16 19:32:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
922
923         * ILGenerator.cs: stack size check fix.
924
925 Sat Jul 13 17:30:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
926
927         * AssemblyBuilder.cs: add also the enum_type for compiling corlib.
928         * TypeBuilder.cs: complete IsValueType.
929
930 Sat Jul 13 15:08:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
931
932         * TypeBuilder.cs: better IsValueType.
933
934 2002-07-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
935
936         * CustomAttributeBuilder.cs: removed compile warning.
937
938 Fri Jul 12 11:34:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
939
940         * ILGenerator.cs: fixup typebuilder tokens as well.
941
942 Tue Jul 9 19:03:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
943
944         * TypeBuilder.cs: special case SerializarionAttribute.
945         Tweaks to get correct code in corlib.
946
947 2002-07-06  Miguel de Icaza  <miguel@ximian.com>
948
949         * ILGenerator.cs (ILGenerator.Emit): For doubles and floats, swap
950         the bytes on big endian systems. 
951
952 2002-07-03  Martin Baulig  <martin@gnome.org>
953
954         * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): Moved
955         these fields up after the last entry in MonoReflectionAssemblyBuilder
956         in reflection.h.
957
958         * TypeBuilder.cs (IsValueTypeImpl): Use the AssemblyBuilder's
959         `corlib_value_type' instead of `typeof (System.ValueType)'.
960         (DefineNestedType): Use the AssemblyBuilder's `corlib_object_type'
961         instead of `typeof (object)'.
962
963 2002-07-02  Martin Baulig  <martin@gnome.org>
964
965         * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): New
966         internal fields.  When compiling corlib, they point to the newly
967         created System.Object and System.ValueType types.
968         (SetCorlibTypeBuilders): New public function.  This will be
969         dynamically called from MCS when compiling corlib.
970
971         * TypeBuilder.cs (DefineInitializedData): Use the AssemblyBuilder's
972         `corlib_value_type' as parent type instead of `typeof (System.ValueType)'
973         to make it work when compiling corlib.
974
975         * ModuleBuilder.cs (assemblyb): Made this field internal, not private.
976
977 Tue Jul 2 18:34:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
978
979         * TypeBuilder.cs: implemented AssemblyQualifiedName.
980         * MethodBuilder.cs, ConstructorBuilder.cs: special case custom attr.
981
982 Mon Jul 1 16:17:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
983
984         * TypeBuilder.cs: implemented AddInterfaceImplementation().
985
986 2002-06-28  Martin Baulig  <martin@gnome.org>
987
988         * MethodBuilder.cs (GetParameters): Return all parameters, not all
989         but the last one.
990
991 2002-06-27  Martin Baulig  <martin@gnome.org>
992
993         * ConstructorBuilder.cs (GetParameters): Implemented.
994
995 Mon Jun 17 14:55:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
996
997         * ModuleBuilder.cs, TypeBuilder.cs: fixes for nested types handling.
998
999 Fri Jun 14 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
1000
1001         * CustomAttributeBuilder.cs: added custom attribute related internal
1002         helper methods.
1003         * FieldBuilder.cs, ParameterBuilder.cs: handle MarshalAs attribute.
1004         * UnmanagedMarshal.cs: implemented.
1005
1006 Mon Jun 10 18:58:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
1007
1008         * PropertyBuilder.cs: implemented ReflectedType and DeclaringType
1009         properties.
1010
1011 2002-06-07  Martin Baulig  <martin@gnome.org>
1012
1013         * TypeBuilder.cs (TypeBuilder): Added `PackingSize packing_size' and
1014         `int type_size' fields to the constructor.
1015         (DefineNestedType): Pass packing_size and type_size to the constructor.
1016
1017         * ModuleBuilder.cs (DefineType): Pass the packing_size and type_size
1018         fields to the TypeBuilder's constructor.
1019
1020 2002-06-07  Martin Baulig  <martin@gnome.org>
1021
1022         * TypeBuilder.cs (DefineNestedType): There is no overload for this
1023         method which takes 5 args in the specs, removed it.
1024
1025 Fri Jun 7 17:04:06 CEST 2002 Paolo Molaro <lupus@ximian.com>
1026
1027         * AssemblyBuilder.cs: updates for PE/COFF rewrite.
1028
1029 2002-05-30  Martin Baulig  <martin@gnome.org>
1030
1031         * AssemblyBuilder.cs (methods): Made this internal and don't
1032         initialize it.  It will be initialized by the ModuleBuilder's
1033         GetSymbolWriter() method.
1034         (get_next_table_index): Only store the method in the `methods'
1035         array if it's not null.
1036
1037         * ModuleBuilder.cs (GetSymbolWriter): Initialize the AssemblyBuilder's
1038         `methods' field if necessary and pass it as third argument to the
1039         symbol writer's constructor.
1040
1041 2002-05-25  Martin Baulig  <martin@gnome.org>
1042
1043         * TypeBuilder.cs (TypeToken): Implemented.
1044
1045 2002-05-24  Martin Baulig  <martin@gnome.org>
1046
1047         * ModuleBuilder.cs (symwriter_define_local): New private variable.
1048         (GetSymbolWriter): Look for a custom version of "DefineLocalVariable"
1049         and store it in `symwriter_define_local'.
1050         (SymWriter_DefineLocalVariable): New internal method to call the
1051         symbol writer's custom DefineLocalVariable() method.  It is safe to
1052         call this method if there's no symbol writer.
1053
1054         * LocalBuilder.cs (SetLocalSymInfo): Use the MethodBuilder'snew
1055         SymWriter_DefineLocalVariable().
1056
1057         * MethodBuilder.cs (GetParameters): Implemented.
1058
1059 2002-05-22  Martin Baulig  <martin@gnome.org>
1060
1061         * ModuleBuilder.cs (GetSymbolWriter): Pass the this pointer to the
1062         symbol writer's constructor.
1063
1064 2002-05-22  Martin Baulig  <martin@gnome.org>
1065
1066         * AssemblyBuilder.cs (methods): New field.
1067         (get_next_table_index): Record all methods and constructors
1068         (table 0x06) in the `methods' array.  This is read by the
1069         Mono.CSharp.Debugger.MonoSymbolWriter::get_method interncall to
1070         get the MethodBuilder / ConstructorBuilder back from the token.
1071
1072         * *Builder.cs (get_next_table_index): Added `object obj' argument.
1073         (<constructors>): pass the this pointer to get_next_table_index ().
1074
1075 2002-05-20  Martin Baulig  <martin@gnome.org>
1076
1077         * TypeBuilder.cs (DefineField): Call the new `create_internal_class'
1078         interncall after adding the first field.  This is used when creating
1079         enum types to set `klass->enum_basetype'.
1080
1081 Thu May 16 16:09:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
1082
1083         * TypeBuilder.cs: complete special acse support for CharSet, Size and
1084         Pack named args in StructLayout attribute.
1085
1086 Tue May 14 17:13:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
1087
1088         * MethodBuilder.cs: revert change in accessibility of
1089         GetILGenerator(int).
1090
1091 Tue May 14 13:31:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
1092
1093         * FieldBuilder.cs, ParameterBuilder.cs: more special-casing of
1094         attributes.
1095
1096 Fri May 10 20:57:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
1097
1098         * CustomAttributeBuilder.cs: expose internal data for use in
1099         reflection.
1100         * FieldBuilder.cs, TypeBuilder.cs: special case FieldOffset and
1101         StructLayout attributes.
1102
1103 Fri May 10 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
1104
1105         * MethodBuilder.cs, ConstructorBuilder.cs: implemented InitLocals
1106         property.
1107
1108 2002-04-26  Martin Baulig  <martin@gnome.org>
1109
1110         * ModuleBuilder.cs (DefineDocument): Implemented.
1111
1112 Tue Apr 16 13:02:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
1113
1114         * AssemblyBuilder.cs: pad output file to file alignment.
1115         * FieldBuilder.cs: ReflectedType.
1116         * ModuleBuilder.cs: added guid generation and array method creation.
1117         * MonoArrayMethod.cs: array method support code.
1118         
1119 Wed Apr 10 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
1120
1121         * ILGenerator.cs: use a stack to keep track of exception blocks.
1122
1123 Mon Apr  8 06:19:01  2002 Piers Haken <piersh@friskit.com>
1124
1125         * ILGenerator.cs: added LabelField.label_base to allow for
1126         arbitrary offsets (for switch statement)
1127
1128 Fri Apr 5 15:41:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
1129
1130         * AssemblyBuilder.cs: simpler protocol wih the runtime to
1131         get the assembly data.
1132
1133 Tue Mar 26 20:10:24 CET 2002 Paolo Molaro <lupus@ximian.com>
1134
1135         * AssemblyBuilder.cs: use FileMode.Create.
1136         * ILGenerator.cs: optimize localbuilder related opcodes.
1137         Track parameters to adjust maxstack.
1138         * LocalBuilder.cS: use unsigned for position.
1139
1140 2002-03-23  Miguel de Icaza  <miguel@ximian.com>
1141
1142         * LocalBuilder.cs: Drop the symbol_writer as LocalBuilder fields.
1143         Do this lazily in SetLocalSymInfo.
1144         
1145 2002-03-24  Martin Baulig  <martin@gnome.org>
1146
1147         * ModuleBuilder.cs (GetSymbolWriter): The MonoSymbolWriter's constructor
1148         now takes a `string assembly_filename' argument, pass it our fully
1149         qualified assembly name.
1150
1151 2002-03-24  Nick Drochak  <ndrochak@gol.com>
1152
1153         * ILGenerator.cs: Use #if-#endif instead of if(false){} to disable
1154         code.  This way there is no compiler warning.
1155
1156         * TypeBuilder.cs: Removed the returns that came after the throws.
1157         This removes a few more compiler warnings. Also marked with MonoTODO
1158         all places where we throw NotImplemented exceptions.
1159
1160 2002-03-23  Martin Baulig  <martin@gnome.org>
1161
1162         * SignatureHelper.cs (GetFieldSignatureHelper, GetLocalSignatureHelper):
1163         Implemented.
1164
1165         * LocalBuilder.cs (LocalBuilder): This internal constructor now takes
1166         a ModuleBuilder argument instead of a ISymbolWriter one.
1167         (SetLocalSymInfo): Create and pass type signature to DefineLocalVariable.
1168
1169 2002-03-23  Martin Baulig  <martin@gnome.org>
1170
1171         * ILGenerator.cs (BeginScope, EndScope): Implemented.
1172
1173 2002-03-20  Martin Baulig  <martin@gnome.org>
1174
1175         * ModuleBuilder.cs (GetSymbolWriter): New internal function. Dynamically
1176         loads the default symbol writer, catch all possible exceptions and return
1177         null on failure.
1178         (ModuleBuilder): Added `bool emitSymbolInfo' argument to this internal
1179         constructor; if set, call GetSymbolWriter ().
1180         (GetSymWriter): Implemented.
1181
1182         * LocalBuilder.cs (LocalBuilder): Added ISymbolWriter argument to this
1183         internal method.
1184         (SetLocalSymInfo): Implemented, call ISymbolWriter.DefineLocalVariable ()
1185         if the symbol writer is not null.
1186
1187         * ILGenerator.cs (ILGenerator): Call ModuleBuilder.GetSymWriter () to get
1188         and store the symbol writer.
1189         (DeclareLocal): Pass the symbol writer to LocalBuilder's constructor.
1190         (MarkSequencePoint): Implemented, call ISymbolWriter.DefineSequencePoints ()
1191         if the symbol writer is not null.
1192
1193         * AssemblyBuilder.cs (DefineDynamicModule): Pass the `bool emitSymbolInfo'
1194         to ModuleBuilder's constructor.
1195
1196 Sat Mar 16 19:11:47 CET 2002 Paolo Molaro <lupus@ximian.com>
1197
1198         * ModuleBuilder.cs: handle modified types correctly.
1199
1200 Thu Mar 7 17:10:42 CET 2002 Paolo Molaro <lupus@ximian.com>
1201
1202         * AssemblyBuilder.cs: allow saving bigger assemblies.
1203         * ILGenerator.cs: add fixup table for fields and methods, since
1204         at the end of the compile they may end up with a different table
1205         index.
1206         * ModuleBuilder.cs: add cache for type names to speed up the type
1207         lookups from the compiler.
1208         * TypeBuilder.cs: GetInterfaces () returns only interfaces in the
1209         current type, not in parents (the docs are wrong).
1210
1211 Tue Mar 5 18:09:34 CET 2002 Paolo Molaro <lupus@ximian.com>
1212
1213         * EventBuilder.cs: implemented.
1214         * TypeBuilder.cs: implemented DefineEvent() method and UnderlyingSystemType
1215         property.
1216
1217 Mon Mar 4 20:34:52 CET 2002 Paolo Molaro <lupus@ximian.com>
1218
1219         * ILGenerator.cs: make enough room in the byte array for string
1220         tokens.
1221         * TypeBuilder.cs: fixed GetInterfaces().
1222
1223 Mon Mar 4 11:30:40 CET 2002 Paolo Molaro <lupus@ximian.com>
1224
1225         * TypeBuilder.cs: implemented GetConstructors(), GetFields(),
1226         GetMethods(), GetProperties().
1227
1228 Thu Feb 28 19:15:10 CET 2002 Paolo Molaro <lupus@ximian.com>
1229
1230         * AssemblyBuilder.cs: call into the runtime to init some basic
1231         assembly stuff. Reserve slot 1 of typedef table for .<Module>.
1232         * ModuleBuilder.cs: call into the runtime if we need to create a
1233         modief type, such as arrays, byref etc.
1234         * TypeBuilder.cs: call into the runtime to create the MonoClass
1235         representation for the type. Throw exceptions with not implemented
1236         stuff.
1237
1238 Wed Feb 27 18:48:47 CET 2002 Paolo Molaro <lupus@ximian.com>
1239
1240         * ILGenerator.cs: fix nested exception blocks.
1241
1242 Wed Feb 20 22:30:49 CET 2002 Paolo Molaro <lupus@ximian.com>
1243
1244         * AssemblyBuilder.cs: upped compiled assembly size limit.
1245         Implemented SetCustomAttribute () methods.
1246         * CustomAttributeBuilder.cs: implemented the needed constructor
1247         stuff.
1248         * Cosntructorbuilder.cs, EnumBuilder.cs, FieldBuilder.cs,
1249         MethodBuilder.cs, ModuleBuilder.cs, ParameterBuilder.cs,
1250         PropertyBuilder.cs, TypeBuilder.cs: Implemented SetCustomAttribute () methods.
1251
1252 Wed Feb 20 14:54:01 CET 2002 Paolo Molaro <lupus@ximian.com>
1253
1254         * AssemblyBuilder.cs: add SetCustomAttribute () to keep the compiler
1255         going.
1256
1257 Fri Feb 15 18:15:04 CET 2002 Paolo Molaro <lupus@ximian.com>
1258
1259         * ILGenerator.cs: finally block support and fixes.
1260
1261 Thu Feb 14 18:55:52 CET 2002 Paolo Molaro <lupus@ximian.com>
1262
1263         * FieldBuilder.cs: Add SetRVAData().
1264         * ILGenerator.cs: speed up code array growth.
1265         * TypeBuilder.cs: fix IsValueTypeImpl(). Add class_size member.
1266         Implement DefineInitializedData().
1267
1268 Tue Jan 22 23:01:11 CET 2002 Paolo Molaro <lupus@ximian.com>
1269
1270         * EnumBuilder.cs, TypeBuilder.cs: updates for changes in Type.cs.
1271         * ModuleBuilder.cs: fix lookup of nested types.
1272
1273 Tue Jan 15 22:46:21 CET 2002 Paolo Molaro <lupus@ximian.com>
1274
1275         * ILGenerator.cs: implement some of the exception support methods.
1276
1277 Mon Jan 14 17:07:32 CET 2002 Paolo Molaro <lupus@ximian.com>
1278
1279         * ModulerBuilder.cs: search also for subtypes in GetTypes().
1280         * TypeBuilder.cs: bugfix in FullName. Implemented DefineNestedType().
1281
1282 Fri Jan 11 19:00:29 CET 2002 Paolo Molaro <lupus@ximian.com>
1283
1284         * MethodBuilder.cs, ConstructorBuilder.cs: save parameter info.
1285
1286 Thu Jan 10 21:07:54 CET 2002 Paolo Molaro <lupus@ximian.com>
1287
1288         * ILGenerator.cs: handle type tokens (used for box opcode).
1289
1290 Wed Jan 9 19:37:55 CET 2002 Paolo Molaro <lupus@ximian.com>
1291
1292         * ILGenerator.cs: emit float and doubles.
1293         * ModuleBuilder.cs: off-by-one error fix and GetType()
1294         implementations.
1295         * TypeBuilder.cs: AttributesImpl added.
1296         * UnmanagedMarshal.cs: stubbed out class.
1297
1298 Sat Jan 5 15:59:05 CET 2002 Paolo Molaro <lupus@ximian.com>
1299
1300         * ILGenerator.cs: fix emission of two-bytes opcodes.
1301         Missing slot for locals array. Throw exceptions on unimplemented
1302         methods.
1303         * OpCode.cs: add a comment: the Value property is useless.
1304         * OpCodes.cs: fix name of tail opcode (Tail -> Tailcall).
1305
1306 2002-01-05  Ravi Pratap  <ravi@ximian.com>
1307
1308         * ConstructorBuilder.cs : Use the MonoTODO attribute.
1309
1310         * ILGenerator.cs, Label.cs, MethodBuilder.cs, ModuleBuilder.cs,
1311         ParameterBuilder.cs, TypeBuilder.cs : Ditto.
1312         
1313 Thu Jan 3 23:26:15 CET 2002 Paolo Molaro <lupus@ximian.com>
1314
1315         * ILGenerator.cs: typo fix.
1316
1317 Mon Dec 24 17:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
1318
1319         * TypeBuilder.cs: added DefineMethodOverride().
1320         * MethodBuilder.cs: add override_method member and setter.
1321
1322 Mon Nov 19 13:58:01 CET 2001 Paolo Molaro <lupus@ximian.com>
1323
1324         * AssemblyBuilder.cs: add method to register a string in the "#US"
1325         stream.
1326         * EnumBuilder.cs, SignatureHelper.cs: added stubs.
1327         * ILGenerator.cs: more stuff implemented.
1328         * LocalBuilder.cs: keep track of local var index.
1329
1330 Thu Nov 15 18:11:23 CET 2001 Paolo Molaro <lupus@ximian.com>
1331
1332         * ConstructorBuilder.cs: implement the interesting methods.
1333         * ILGenerator.cs: adapt for use with both a MethodBuilder and a
1334         ConstructorBuilder.
1335         * MethodBuilder.cs: add ImplAttributes.
1336         * ParameterBuilder.cs: adapt for ConstructorBuilder.
1337         * TypeBuilder.cs: add constructors handling.
1338
1339 Wed Nov 14 17:01:45 CET 2001 Paolo Molaro <lupus@ximian.com>
1340
1341         * ConstructorBuilder.cs: added missing stubs and some implementation.
1342         * CustomAttributeBuilder.cs: added.
1343         * EventBuilder.cs: added.
1344         * FieldBuilder.cs: updates.
1345         * MethodBuilder.cs: stuff to implement P/Invoke methods.
1346         * ModuleBuilder.cs: added GetArrayMethod() stub.
1347         * ParameterBuilder.cs, PropertyBuilder.cs: updates.
1348         * TypeBuilder.cs: updates and stubs.
1349
1350 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
1351
1352         * TypeBuilder.cs: Added implementation for TypeHandle.
1353
1354 Tue Nov 6 09:13:45 CET 2001 Paolo Molaro <lupus@ximian.com>
1355
1356         * AssemblyBuilder.cs: define an internal constructor.
1357
1358 2001-10-07  Miguel de Icaza  <miguel@ximian.com>
1359
1360         * AssemblyBuilder.cs: Reformatted.
1361
1362         Added override keywords to those that needed them.
1363
1364         Removed methods that we do not override, but just inherit
1365
1366 Tue Sep 25 16:53:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
1367
1368         * TypeBuilder.cs, ConstructorBuilder.cs, ModuleBuilder.cs: added.