c9f9583e4dbe123415e5bbf29e153132989bd13a
[mono.git] / mcs / class / corlib / System.Reflection.Emit / ChangeLog
1 2003-09-06  Martin Baulig  <martin@ximian.com>
2
3         * TypeBuilder.cs (TypeBuilder.IsUnboundGenericParameter): Implemented.
4
5 2003-09-04  Martin Baulig  <martin@ximian.com>
6
7         * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Make this nested
8         class internal, not protected.
9
10 2003-08-29  Martin Baulig  <martin@ximian.com>
11
12         * TypeBuilder.cs (TypeBuilder.DefineGenericParameter): New public
13         method.  We can now create generic types.
14         (TypeBuilder.GetGenericTypeDefinition): Override this; call the
15         `setup_internal_class' interncall before calling our base impl.
16
17 Sat Aug  2 13:04:55 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
18
19         * ILGenerator.cs: Emission of doubles now utilise the Double.AssertEndianity
20         icall to assert double word endianity on ARM.
21
22 2003-07-25  Duncan Mak  <duncan@ximian.com>
23
24         * OpCodes.cs (Boxval): Marked with ObsoleteAttribute.
25
26 2003-07-24  Miguel de Icaza  <miguel@ximian.com>
27
28         * TypeBuilder.cs: Added generics stubs.
29
30         * EnumBuilder.cs: Added generics  stubs, changed bracing style for
31         routines.
32
33 2003-07-23  Duncan Mak  <duncan@ximian.com>
34
35         * SignatureHelper.cs: This class does not have the
36         SerializableAttribute.
37
38 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
39
40         * AssemblyBuilder.cs: Added argument checking to all methods according
41         to the MSDN docs. Also marked DefineUnmanagedResource and its friends
42         as not implemented.
43         * ModuleBuilder.cs: Added new property FileName used by AssemblyBuilder.
44         * ModuleBuilder.cs AssemblyBuilder.cs: Implemented IsTransient ().
45
46 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
47
48         * EventBuilder.cs: Add argument checking to methods.
49
50 Thu Jun 5 20:18:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
51
52         * AssemblyBuilder.cs: implemented DefineResource ().
53
54 Thu Jun 5 12:36:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
55
56         * OpCode.cs: implemented Equals/GetHashCode.
57
58 Tue Jun 3 11:14:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
59
60         * ILGenerator.cs, OpCode.cs: optimize opcode space usage.
61
62 Tue Jun 3 11:13:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
63
64         * UnmanagedMarshal.cs: add ability to define custom attributes (the MS
65         runtime doesn't support this).
66
67 2003-05-30  Zoltan Varga  <vargaz@freemail.hu>
68
69         * TypeBuilder.cs: Implement DefineTypeInitializer.
70
71 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
72
73         * ModuleBuilder.cs: 
74         - Implement DefineInitializedData in terms of DefineUninitializedData
75         - Name the types of global fields $ArrayType$<len> to cut back on the
76         number of types created
77         - Add argument checking
78
79 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
80
81         * AssemblyBuilder.cs: Implement GetDynamicModule. "Implement" various
82         methods not supported under MS.NET.
83
84 2003-05-18  Martin Baulig  <martin@ximian.com>
85
86         * AssemblyBuilder.cs (corlib_void_type): New internal field.
87         (SetCorlibTypeBuilders): Added overloaded version which takes 4
88         arguments to set the `corlib_void_type'.
89
90         * TypeBuilder.cs: Use `pmodule.assemblyb.corlib_void_type' instead
91         of `typeof (void)' to make this work when compiling corlib.
92
93 Thu May 15 19:16:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
94
95         * MethodBuilder.cs: off by one in CreateMethodBody().
96         * TypeBuilder.cs: if the return type for a method is null, use void.
97
98 2003-04-28  Miguel de Icaza  <miguel@ximian.com>
99
100         * MethodBuilder.cs: Mono allows the parameter position to be zero
101         to indicate the "returns:" attribute.
102
103 2003-04-20  Miguel de Icaza  <miguel@ximian.com>
104
105         * ILGenerator.cs (EmitCall): Implement.
106
107         Flag a few unimplemented methods with MonoTODO, make coding style
108         for method definitions Mono consistent.
109
110 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
111
112         * ILGenerator.cs: Implement EmitWriteLine methods.
113
114         * TypeBuilder.cs (CreateType): Avoid creating a default constructor
115         for the global type.
116
117 2003-04-15  Miguel de Icaza  <miguel@ximian.com>
118
119         * TypeBuilder.cs (DefineDefaultConstructor): Make it generate code
120         by default for a default constructor.  This is what the MS runtime
121         does.  The PythonNet code expected this.
122
123         (TypeBuilder.GetConstructorImpl): Implement this.
124
125         (TypeBuilder.CreateType): If there are no constructors defined, we
126         create one.
127
128 Tue Apr 15 13:50:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
129
130         * ModuleBuilder.cs, TypeBuilder.cs: set nesting_type before
131         calling setup_internal_class ().
132
133 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
134
135         * AssemblyBuilder.cs: Added 'access' member, which is needed by the
136         runtime.
137
138 2003-03-26  Zoltan Varga  <vargaz@freemail.hu>
139
140         * ILGenerator.cs: Implemented ThrowException.
141
142 2003-03-10  Zoltan Varga  <vargaz@freemail.hu>
143
144         * ILGenerator.cs: Propagate maxstack info along branches.
145
146 2003-03-06  Zoltan Varga  <vargaz@freemail.hu>
147
148         * ILGenerator.cs (Emit): Do not pop the arguments off the stack for
149         ldftn etc. Fixes bug #39196.
150
151 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
152
153         * ILGenerator.cs (Emit): Add fixup for already created methods and
154         fields. Do not add fixup for types since their table index do not 
155         change any more.
156
157 2003-02-26  Zoltan Varga  <vargaz@freemail.hu>
158
159         * TypeBuilder.cs (DefineInitializedData): Removed unnecessary assignments.
160
161         * ModuleBuilder.cs (DefineInitializedData): Do not call 
162         TypeBuilder::DefineInitializedData since that would mean defining a
163         nested type of the global type, which is wrong. Instead define a
164         new public type as MS does.
165
166         * ModuleBuilder.cs (DefineUninitializedData): Ditto.
167
168 Thu Feb 13 18:40:52 CET 2003 Paolo Molaro <lupus@ximian.com>
169
170         * ModuleBuilder.cs: add the basic initialization call.
171
172 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
173
174         * AssemblyBuilder.cs: Added basic error checking to some methods
175         according to the MSDN docs.
176
177 2003-02-10  Zoltan Varga  <vargaz@freemail.hu>
178
179         * ConstructorBuilder.cs: 
180         - Added basic error checking to all methods according to the MSDN docs.
181         - modified a lot of methods to throw NotSupportedException, to comply
182           with MS.NET.
183
184 2003-02-09  Zoltan Varga  <vargaz@freemail.hu>
185
186         * TypeBuilder.cs:
187         - Added basic error checking to all methods according to the MSDN docs.
188         - fixed AssemblyQualifiedName.
189         - implemented 'Size'.
190         - modified a lot of methods to throw NotSupportedException, to comply
191           with MS.NET.
192         - changes tested by running a full bootstrap.
193
194 2003-02-09  Martin Baulig  <martin@ximian.com>
195
196         * AssemblyBuilder.cs (AssemblyBuilder.methods): Removed.  This was
197         a hack for the symbol writer which is no longer needed.
198
199 2003-02-09  Martin Baulig  <martin@ximian.com>
200
201         * IMonoSymbolWriter.cs (DefineNamespace, OpenMethod): New methods.
202
203 2003-02-09  Martin Baulig  <martin@ximian.com>
204
205         * IMonoSymbolWriter.cs (MarkSequencePoint): New method which takes
206         just the required arguments as scalars, not arrays.
207
208         * ILGenerator.cs (ILGenerator.MarkSequencePoint): Use that new
209         interface method; unnecessarily creating such a large number of
210         arrays is both slow and too memory consuming.   
211
212 2003-02-08  Zoltan Varga  <vargaz@freemail.hu>
213
214         * MethodBuilder.cs: Added error checking to methods so they conform to
215         MSDN docs. Implemented 'GetModule' and 'CallingConvention' members. 
216         Some other tweaks to improve compatibility with MS .NET.
217
218         * TypeBuilder.cs: Added 'is_created' property which will be used for
219         checking 'type is already created' errors.
220
221 2003-02-07  Martin Baulig  <martin@ximian.com>
222
223         * ModuleBuilder.cs (.ctor): Added `bool IsMainModule' argument.
224         (Save): New internal method; creates the module's symbol file if
225         we're compiling with debugging information.
226
227         * AssemblyBuilder.cs (EmbedResource): Added internal overloaded
228         version of this method which takes a `byte[] blob' instead of a file.
229         (DefineDynamicMethod): If this is the first module, tell the
230         ModuleBuilder that this is the main module.
231         (Save): Call a new interncall `build_metadata' to create the final
232         metadata and save all the symbol files before creating the actual
233         output.
234
235         * IMonoSymbolWriter.cs: New public class; it is in the namespace
236         Mono.CSharp.Debugger.  The Mono symbol writer implements this interface.
237
238 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
239
240         * AssemblyBuilder.cs: added GetToken (SignatureHelper).
241
242         * ILGenerator.cs: implemented EmitCalli() methods
243
244         * SignatureHelper.cs: implemented GetMethoSigHelper() methods.
245
246 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
247
248         * MethodBuilder.cs: GetBaseDefinition () returns this.
249
250 Mon Jan 27 17:07:38 CET 2003 Paolo Molaro <lupus@ximian.com>
251
252         * CustomAttributeBuilder.cs, FieldBuilder.cs: applied
253         (reformatted) patch from "Jerome Laban" <jlaban@wanadoo.fr>
254         to fix ByValStr and ByValArray encodings.
255
256 2003-01-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
257
258         * AssemblyBuilder.cs: fixed compilation with csc.
259
260 2003-01-26  Miguel de Icaza  <miguel@ximian.com>
261
262         * AssemblyBuilder.cs (Save): Set the executable bit at the end.
263         This uses a non-official enumeration value to call SetFileAttributes.
264
265 2003-01-17  Zoltan Varga  <vargaz@freemail.hu>
266
267         * MethodBuilder.cs ConstructorBuilder.cs: modify GetParameters() so it
268         returns information even when the app did not use DefineParameter() to
269         define the parameters.
270
271         * ConstructorBuilder.cs (ctor): allways define SpecialName attribute
272         for constructors as done by MS.
273
274 Mon Jan 13 11:37:14 CET 2003 Paolo Molaro <lupus@ximian.com>
275
276         * TypeBuilder.cs, ModuleBuilder.cs: better type name cache.
277
278 2003-01-10  Zoltan Varga  <vargaz@freemail.hu>
279
280         * ILGenerator.cs: Implemented EmitWriteLine(string).
281
282         * TypeBuilder.cs (DefineInitializedData): Call DefineNestedType() 
283         instead of DefineType() so the auxiliary types do not pollute the 
284         global namespace. This is consistent with the behaviour of MS .NET.
285
286 Fri Jan 10 16:03:30 CET 2003 Paolo Molaro <lupus@ximian.com>
287
288         * ILGenerator.cs, MethodBuilder.cs, TypeBuilder.cs,
289         ConstructorBuilder.cs: some tweaks to reduce memory usage.
290
291 Thu Jan 2 18:46:09 CET 2003 Paolo Molaro <lupus@ximian.com>
292
293         * ModuleBuilder.cs, TypeBuilder.cs: support global fields and methods.
294
295 Thu Dec 19 00:06:57 CET 2002 Paolo Molaro <lupus@ximian.com>
296
297         * AssemblyBuilder.cs: remove duplicated user string entries.
298
299 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
300
301         * FieldBuilder.cs: added 'handle' field which is needed by some new
302         code in reflection.c.
303
304 2002-12-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
305
306         * TypeBuilder.cs: implemented GetInterfaceMap () when the Type has been
307         created.
308
309 Fri Nov 8 14:53:03 CET 2002 Paolo Molaro <lupus@ximian.com>
310
311         * ILGenerator.cs: account for the exception object being passed to the
312         catch handler to calc max_stack.
313
314 2002-09-21  Martin Baulig  <martin@gnome.org>
315
316         * ModuleBuilder.cs (ModuleBuilder.symbol_writer): Make this
317         field internal, not private.
318         (ModuleBuilder.SymWriter_DefineLocalVariable): Removed.
319
320         * LocalBuilder.cs (LocalBuilder.SetLocalSymInfo): Use the
321         ISymbolWriter's DefineLocalVariable() method instead of the
322         IMonoSymbolWriter hack.
323
324 Mon Sep 16 19:02:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
325
326         * AssemblyBuilder.c: special case some custom attributes.
327
328 2002-09-12  Dick Porter  <dick@ximian.com>
329
330         * TypeBuilder.cs: Say _which_ Type has already been created
331
332 2002-09-11  Miguel de Icaza  <miguel@ximian.com>
333
334         * ModuleBuilder.cs (GetTypes): Implement.
335
336 Tue Sep 10 12:12:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
337
338         * ConstructorBuilder.cs: added a field to hold the handle.
339
340 Mon Sep 9 17:31:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
341
342         * TypeBuilder.cs: prepare for the real CreateType implementation.
343
344 Tue Aug 27 16:57:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
345
346         * TypeBuilder.cs: remove duplicate code and fix
347         named field reading in custom attr.
348
349 2002-08-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
350
351         * TypeBuilder.cs: UnspecifiedTypeSize is 0.
352
353 Wed Aug 14 17:38:41 CEST 2002 Paolo Molaro <lupus@ximian.com>
354
355         * TypeBuilder.cs: ReflectedType and CreateType fixes.
356
357 Thu Aug 8 10:25:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
358
359         * AssemblyBuilder.cs: added API to embed managed resources.
360
361 2002-08-03  Martin Baulig  <martin@gnome.org>
362
363         * TypeBuilder.cs (TypeBuilder.DeclaringType): Implemented.
364
365 Thu Jul 25 13:57:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
366
367         * AssemblyBuilder.cs: support linking external resources.
368
369 2002-07-19  Martin Baulig  <martin@gnome.org>
370
371         * ILGenerator.cs (Emit (OpCode, LocalBuilder)): Throw an exception
372         when trying to emit a local that was defined in a different ILGenerator.
373
374         * LocalBuilder.cs (LocalBuilder): Added `ILGenetator' argument to
375         the constructor.
376
377 Tue Jul 16 19:32:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
378
379         * ILGenerator.cs: stack size check fix.
380
381 Sat Jul 13 17:30:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
382
383         * AssemblyBuilder.cs: add also the enum_type for compiling corlib.
384         * TypeBuilder.cs: complete IsValueType.
385
386 Sat Jul 13 15:08:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
387
388         * TypeBuilder.cs: better IsValueType.
389
390 2002-07-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
391
392         * CustomAttributeBuilder.cs: removed compile warning.
393
394 Fri Jul 12 11:34:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
395
396         * ILGenerator.cs: fixup typebuilder tokens as well.
397
398 Tue Jul 9 19:03:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
399
400         * TypeBuilder.cs: special case SerializarionAttribute.
401         Tweaks to get correct code in corlib.
402
403 2002-07-06  Miguel de Icaza  <miguel@ximian.com>
404
405         * ILGenerator.cs (ILGenerator.Emit): For doubles and floats, swap
406         the bytes on big endian systems. 
407
408 2002-07-03  Martin Baulig  <martin@gnome.org>
409
410         * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): Moved
411         these fields up after the last entry in MonoReflectionAssemblyBuilder
412         in reflection.h.
413
414         * TypeBuilder.cs (IsValueTypeImpl): Use the AssemblyBuilder's
415         `corlib_value_type' instead of `typeof (System.ValueType)'.
416         (DefineNestedType): Use the AssemblyBuilder's `corlib_object_type'
417         instead of `typeof (object)'.
418
419 2002-07-02  Martin Baulig  <martin@gnome.org>
420
421         * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): New
422         internal fields.  When compiling corlib, they point to the newly
423         created System.Object and System.ValueType types.
424         (SetCorlibTypeBuilders): New public function.  This will be
425         dynamically called from MCS when compiling corlib.
426
427         * TypeBuilder.cs (DefineInitializedData): Use the AssemblyBuilder's
428         `corlib_value_type' as parent type instead of `typeof (System.ValueType)'
429         to make it work when compiling corlib.
430
431         * ModuleBuilder.cs (assemblyb): Made this field internal, not private.
432
433 Tue Jul 2 18:34:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
434
435         * TypeBuilder.cs: implemented AssemblyQualifiedName.
436         * MethodBuilder.cs, ConstructorBuilder.cs: special case custom attr.
437
438 Mon Jul 1 16:17:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
439
440         * TypeBuilder.cs: implemented AddInterfaceImplementation().
441
442 2002-06-28  Martin Baulig  <martin@gnome.org>
443
444         * MethodBuilder.cs (GetParameters): Return all parameters, not all
445         but the last one.
446
447 2002-06-27  Martin Baulig  <martin@gnome.org>
448
449         * ConstructorBuilder.cs (GetParameters): Implemented.
450
451 Mon Jun 17 14:55:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
452
453         * ModuleBuilder.cs, TypeBuilder.cs: fixes for nested types handling.
454
455 Fri Jun 14 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
456
457         * CustomAttributeBuilder.cs: added custom attribute related internal
458         helper methods.
459         * FieldBuilder.cs, ParameterBuilder.cs: handle MarshalAs attribute.
460         * UnmanagedMarshal.cs: implemented.
461
462 Mon Jun 10 18:58:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
463
464         * PropertyBuilder.cs: implemented ReflectedType and DeclaringType
465         properties.
466
467 2002-06-07  Martin Baulig  <martin@gnome.org>
468
469         * TypeBuilder.cs (TypeBuilder): Added `PackingSize packing_size' and
470         `int type_size' fields to the constructor.
471         (DefineNestedType): Pass packing_size and type_size to the constructor.
472
473         * ModuleBuilder.cs (DefineType): Pass the packing_size and type_size
474         fields to the TypeBuilder's constructor.
475
476 2002-06-07  Martin Baulig  <martin@gnome.org>
477
478         * TypeBuilder.cs (DefineNestedType): There is no overload for this
479         method which takes 5 args in the specs, removed it.
480
481 Fri Jun 7 17:04:06 CEST 2002 Paolo Molaro <lupus@ximian.com>
482
483         * AssemblyBuilder.cs: updates for PE/COFF rewrite.
484
485 2002-05-30  Martin Baulig  <martin@gnome.org>
486
487         * AssemblyBuilder.cs (methods): Made this internal and don't
488         initialize it.  It will be initialized by the ModuleBuilder's
489         GetSymbolWriter() method.
490         (get_next_table_index): Only store the method in the `methods'
491         array if it's not null.
492
493         * ModuleBuilder.cs (GetSymbolWriter): Initialize the AssemblyBuilder's
494         `methods' field if necessary and pass it as third argument to the
495         symbol writer's constructor.
496
497 2002-05-25  Martin Baulig  <martin@gnome.org>
498
499         * TypeBuilder.cs (TypeToken): Implemented.
500
501 2002-05-24  Martin Baulig  <martin@gnome.org>
502
503         * ModuleBuilder.cs (symwriter_define_local): New private variable.
504         (GetSymbolWriter): Look for a custom version of "DefineLocalVariable"
505         and store it in `symwriter_define_local'.
506         (SymWriter_DefineLocalVariable): New internal method to call the
507         symbol writer's custom DefineLocalVariable() method.  It is safe to
508         call this method if there's no symbol writer.
509
510         * LocalBuilder.cs (SetLocalSymInfo): Use the MethodBuilder'snew
511         SymWriter_DefineLocalVariable().
512
513         * MethodBuilder.cs (GetParameters): Implemented.
514
515 2002-05-22  Martin Baulig  <martin@gnome.org>
516
517         * ModuleBuilder.cs (GetSymbolWriter): Pass the this pointer to the
518         symbol writer's constructor.
519
520 2002-05-22  Martin Baulig  <martin@gnome.org>
521
522         * AssemblyBuilder.cs (methods): New field.
523         (get_next_table_index): Record all methods and constructors
524         (table 0x06) in the `methods' array.  This is read by the
525         Mono.CSharp.Debugger.MonoSymbolWriter::get_method interncall to
526         get the MethodBuilder / ConstructorBuilder back from the token.
527
528         * *Builder.cs (get_next_table_index): Added `object obj' argument.
529         (<constructors>): pass the this pointer to get_next_table_index ().
530
531 2002-05-20  Martin Baulig  <martin@gnome.org>
532
533         * TypeBuilder.cs (DefineField): Call the new `create_internal_class'
534         interncall after adding the first field.  This is used when creating
535         enum types to set `klass->enum_basetype'.
536
537 Thu May 16 16:09:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
538
539         * TypeBuilder.cs: complete special acse support for CharSet, Size and
540         Pack named args in StructLayout attribute.
541
542 Tue May 14 17:13:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
543
544         * MethodBuilder.cs: revert change in accessibility of
545         GetILGenerator(int).
546
547 Tue May 14 13:31:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
548
549         * FieldBuilder.cs, ParameterBuilder.cs: more special-casing of
550         attributes.
551
552 Fri May 10 20:57:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
553
554         * CustomAttributeBuilder.cs: expose internal data for use in
555         reflection.
556         * FieldBuilder.cs, TypeBuilder.cs: special case FieldOffset and
557         StructLayout attributes.
558
559 Fri May 10 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
560
561         * MethodBuilder.cs, ConstructorBuilder.cs: implemented InitLocals
562         property.
563
564 2002-04-26  Martin Baulig  <martin@gnome.org>
565
566         * ModuleBuilder.cs (DefineDocument): Implemented.
567
568 Tue Apr 16 13:02:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
569
570         * AssemblyBuilder.cs: pad output file to file alignment.
571         * FieldBuilder.cs: ReflectedType.
572         * ModuleBuilder.cs: added guid generation and array method creation.
573         * MonoArrayMethod.cs: array method support code.
574         
575 Wed Apr 10 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
576
577         * ILGenerator.cs: use a stack to keep track of exception blocks.
578
579 Mon Apr  8 06:19:01  2002 Piers Haken <piersh@friskit.com>
580
581         * ILGenerator.cs: added LabelField.label_base to allow for
582         arbitrary offsets (for switch statement)
583
584 Fri Apr 5 15:41:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
585
586         * AssemblyBuilder.cs: simpler protocol wih the runtime to
587         get the assembly data.
588
589 Tue Mar 26 20:10:24 CET 2002 Paolo Molaro <lupus@ximian.com>
590
591         * AssemblyBuilder.cs: use FileMode.Create.
592         * ILGenerator.cs: optimize localbuilder related opcodes.
593         Track parameters to adjust maxstack.
594         * LocalBuilder.cS: use unsigned for position.
595
596 2002-03-23  Miguel de Icaza  <miguel@ximian.com>
597
598         * LocalBuilder.cs: Drop the symbol_writer as LocalBuilder fields.
599         Do this lazily in SetLocalSymInfo.
600         
601 2002-03-24  Martin Baulig  <martin@gnome.org>
602
603         * ModuleBuilder.cs (GetSymbolWriter): The MonoSymbolWriter's constructor
604         now takes a `string assembly_filename' argument, pass it our fully
605         qualified assembly name.
606
607 2002-03-24  Nick Drochak  <ndrochak@gol.com>
608
609         * ILGenerator.cs: Use #if-#endif instead of if(false){} to disable
610         code.  This way there is no compiler warning.
611
612         * TypeBuilder.cs: Removed the returns that came after the throws.
613         This removes a few more compiler warnings. Also marked with MonoTODO
614         all places where we throw NotImplemented exceptions.
615
616 2002-03-23  Martin Baulig  <martin@gnome.org>
617
618         * SignatureHelper.cs (GetFieldSignatureHelper, GetLocalSignatureHelper):
619         Implemented.
620
621         * LocalBuilder.cs (LocalBuilder): This internal constructor now takes
622         a ModuleBuilder argument instead of a ISymbolWriter one.
623         (SetLocalSymInfo): Create and pass type signature to DefineLocalVariable.
624
625 2002-03-23  Martin Baulig  <martin@gnome.org>
626
627         * ILGenerator.cs (BeginScope, EndScope): Implemented.
628
629 2002-03-20  Martin Baulig  <martin@gnome.org>
630
631         * ModuleBuilder.cs (GetSymbolWriter): New internal function. Dynamically
632         loads the default symbol writer, catch all possible exceptions and return
633         null on failure.
634         (ModuleBuilder): Added `bool emitSymbolInfo' argument to this internal
635         constructor; if set, call GetSymbolWriter ().
636         (GetSymWriter): Implemented.
637
638         * LocalBuilder.cs (LocalBuilder): Added ISymbolWriter argument to this
639         internal method.
640         (SetLocalSymInfo): Implemented, call ISymbolWriter.DefineLocalVariable ()
641         if the symbol writer is not null.
642
643         * ILGenerator.cs (ILGenerator): Call ModuleBuilder.GetSymWriter () to get
644         and store the symbol writer.
645         (DeclareLocal): Pass the symbol writer to LocalBuilder's constructor.
646         (MarkSequencePoint): Implemented, call ISymbolWriter.DefineSequencePoints ()
647         if the symbol writer is not null.
648
649         * AssemblyBuilder.cs (DefineDynamicModule): Pass the `bool emitSymbolInfo'
650         to ModuleBuilder's constructor.
651
652 Sat Mar 16 19:11:47 CET 2002 Paolo Molaro <lupus@ximian.com>
653
654         * ModuleBuilder.cs: handle modified types correctly.
655
656 Thu Mar 7 17:10:42 CET 2002 Paolo Molaro <lupus@ximian.com>
657
658         * AssemblyBuilder.cs: allow saving bigger assemblies.
659         * ILGenerator.cs: add fixup table for fields and methods, since
660         at the end of the compile they may end up with a different table
661         index.
662         * ModuleBuilder.cs: add cache for type names to speed up the type
663         lookups from the compiler.
664         * TypeBuilder.cs: GetInterfaces () returns only interfaces in the
665         current type, not in parents (the docs are wrong).
666
667 Tue Mar 5 18:09:34 CET 2002 Paolo Molaro <lupus@ximian.com>
668
669         * EventBuilder.cs: implemented.
670         * TypeBuilder.cs: implemented DefineEvent() method and UnderlyingSystemType
671         property.
672
673 Mon Mar 4 20:34:52 CET 2002 Paolo Molaro <lupus@ximian.com>
674
675         * ILGenerator.cs: make enough room in the byte array for string
676         tokens.
677         * TypeBuilder.cs: fixed GetInterfaces().
678
679 Mon Mar 4 11:30:40 CET 2002 Paolo Molaro <lupus@ximian.com>
680
681         * TypeBuilder.cs: implemented GetConstructors(), GetFields(),
682         GetMethods(), GetProperties().
683
684 Thu Feb 28 19:15:10 CET 2002 Paolo Molaro <lupus@ximian.com>
685
686         * AssemblyBuilder.cs: call into the runtime to init some basic
687         assembly stuff. Reserve slot 1 of typedef table for .<Module>.
688         * ModuleBuilder.cs: call into the runtime if we need to create a
689         modief type, such as arrays, byref etc.
690         * TypeBuilder.cs: call into the runtime to create the MonoClass
691         representation for the type. Throw exceptions with not implemented
692         stuff.
693
694 Wed Feb 27 18:48:47 CET 2002 Paolo Molaro <lupus@ximian.com>
695
696         * ILGenerator.cs: fix nested exception blocks.
697
698 Wed Feb 20 22:30:49 CET 2002 Paolo Molaro <lupus@ximian.com>
699
700         * AssemblyBuilder.cs: upped compiled assembly size limit.
701         Implemented SetCustomAttribute () methods.
702         * CustomAttributeBuilder.cs: implemented the needed constructor
703         stuff.
704         * Cosntructorbuilder.cs, EnumBuilder.cs, FieldBuilder.cs,
705         MethodBuilder.cs, ModuleBuilder.cs, ParameterBuilder.cs,
706         PropertyBuilder.cs, TypeBuilder.cs: Implemented SetCustomAttribute () methods.
707
708 Wed Feb 20 14:54:01 CET 2002 Paolo Molaro <lupus@ximian.com>
709
710         * AssemblyBuilder.cs: add SetCustomAttribute () to keep the compiler
711         going.
712
713 Fri Feb 15 18:15:04 CET 2002 Paolo Molaro <lupus@ximian.com>
714
715         * ILGenerator.cs: finally block support and fixes.
716
717 Thu Feb 14 18:55:52 CET 2002 Paolo Molaro <lupus@ximian.com>
718
719         * FieldBuilder.cs: Add SetRVAData().
720         * ILGenerator.cs: speed up code array growth.
721         * TypeBuilder.cs: fix IsValueTypeImpl(). Add class_size member.
722         Implement DefineInitializedData().
723
724 Tue Jan 22 23:01:11 CET 2002 Paolo Molaro <lupus@ximian.com>
725
726         * EnumBuilder.cs, TypeBuilder.cs: updates for changes in Type.cs.
727         * ModuleBuilder.cs: fix lookup of nested types.
728
729 Tue Jan 15 22:46:21 CET 2002 Paolo Molaro <lupus@ximian.com>
730
731         * ILGenerator.cs: implement some of the exception support methods.
732
733 Mon Jan 14 17:07:32 CET 2002 Paolo Molaro <lupus@ximian.com>
734
735         * ModulerBuilder.cs: search also for subtypes in GetTypes().
736         * TypeBuilder.cs: bugfix in FullName. Implemented DefineNestedType().
737
738 Fri Jan 11 19:00:29 CET 2002 Paolo Molaro <lupus@ximian.com>
739
740         * MethodBuilder.cs, ConstructorBuilder.cs: save parameter info.
741
742 Thu Jan 10 21:07:54 CET 2002 Paolo Molaro <lupus@ximian.com>
743
744         * ILGenerator.cs: handle type tokens (used for box opcode).
745
746 Wed Jan 9 19:37:55 CET 2002 Paolo Molaro <lupus@ximian.com>
747
748         * ILGenerator.cs: emit float and doubles.
749         * ModuleBuilder.cs: off-by-one error fix and GetType()
750         implementations.
751         * TypeBuilder.cs: AttributesImpl added.
752         * UnmanagedMarshal.cs: stubbed out class.
753
754 Sat Jan 5 15:59:05 CET 2002 Paolo Molaro <lupus@ximian.com>
755
756         * ILGenerator.cs: fix emission of two-bytes opcodes.
757         Missing slot for locals array. Throw exceptions on unimplemented
758         methods.
759         * OpCode.cs: add a comment: the Value property is useless.
760         * OpCodes.cs: fix name of tail opcode (Tail -> Tailcall).
761
762 2002-01-05  Ravi Pratap  <ravi@ximian.com>
763
764         * ConstructorBuilder.cs : Use the MonoTODO attribute.
765
766         * ILGenerator.cs, Label.cs, MethodBuilder.cs, ModuleBuilder.cs,
767         ParameterBuilder.cs, TypeBuilder.cs : Ditto.
768         
769 Thu Jan 3 23:26:15 CET 2002 Paolo Molaro <lupus@ximian.com>
770
771         * ILGenerator.cs: typo fix.
772
773 Mon Dec 24 17:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
774
775         * TypeBuilder.cs: added DefineMethodOverride().
776         * MethodBuilder.cs: add override_method member and setter.
777
778 Mon Nov 19 13:58:01 CET 2001 Paolo Molaro <lupus@ximian.com>
779
780         * AssemblyBuilder.cs: add method to register a string in the "#US"
781         stream.
782         * EnumBuilder.cs, SignatureHelper.cs: added stubs.
783         * ILGenerator.cs: more stuff implemented.
784         * LocalBuilder.cs: keep track of local var index.
785
786 Thu Nov 15 18:11:23 CET 2001 Paolo Molaro <lupus@ximian.com>
787
788         * ConstructorBuilder.cs: implement the interesting methods.
789         * ILGenerator.cs: adapt for use with both a MethodBuilder and a
790         ConstructorBuilder.
791         * MethodBuilder.cs: add ImplAttributes.
792         * ParameterBuilder.cs: adapt for ConstructorBuilder.
793         * TypeBuilder.cs: add constructors handling.
794
795 Wed Nov 14 17:01:45 CET 2001 Paolo Molaro <lupus@ximian.com>
796
797         * ConstructorBuilder.cs: added missing stubs and some implementation.
798         * CustomAttributeBuilder.cs: added.
799         * EventBuilder.cs: added.
800         * FieldBuilder.cs: updates.
801         * MethodBuilder.cs: stuff to implement P/Invoke methods.
802         * ModuleBuilder.cs: added GetArrayMethod() stub.
803         * ParameterBuilder.cs, PropertyBuilder.cs: updates.
804         * TypeBuilder.cs: updates and stubs.
805
806 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
807
808         * TypeBuilder.cs: Added implementation for TypeHandle.
809
810 Tue Nov 6 09:13:45 CET 2001 Paolo Molaro <lupus@ximian.com>
811
812         * AssemblyBuilder.cs: define an internal constructor.
813
814 2001-10-07  Miguel de Icaza  <miguel@ximian.com>
815
816         * AssemblyBuilder.cs: Reformatted.
817
818         Added override keywords to those that needed them.
819
820         Removed methods that we do not override, but just inherit
821
822 Tue Sep 25 16:53:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
823
824         * TypeBuilder.cs, ConstructorBuilder.cs, ModuleBuilder.cs: added.