1 2004-01-27 Zoltan Varga <vargaz@freemail.hu>
3 * AssemblyBuilder.cs (SetCustomAttribute): Move the reading of the
4 keyfile to the Save () method.
6 2004-01-26 Sebastien Pouliot <spouliot@videotron.ca>
8 * AssemblyBuilder.cs: Save will now strongname the assembly is (a) a
9 StrongName is present and (b) the signature isn't delayed.
11 2004-01-24 David Sheldon <dave-mono@earth.li>
13 * AssemblyBuilder.cs: Added override for GetFiles() that throws
14 NotSupportedException.
16 2004-01-15 Zoltan Varga <vargaz@freemail.hu>
18 * AssemblyBuilder.cs (Save): Handle entry points with an int return
21 * AssemblyBuilder.cs (Save): If the entry point is in a module, create
22 a new entry point which calls the real one, since the entry point must
23 be in the module which contains the manifest.
25 * ModuleBuilder.cs (Save): Create the global type automatically if not
28 2004-01-13 Zoltan Varga <vargaz@freemail.hu>
30 * AssemblyBuilder.cs (DefineVersionInfoResource): Set more
31 version info properties.
33 2004-01-08 Zoltan Varga <vargaz@freemail.hu>
35 * CustomAttributeBuilder.cs (string_arg): New helper method.
37 * AssemblyBuilder.cs (DefineVersionInfoResource): Implement.
39 * AssemblyBuilder.cs (SetCustomAttribute): Use the new helper method.
41 * AssemblyBuilder.cs (DefineUnmanagedResource): Implement.
43 * AssemblyBuilder.cs (DefineIconResource): New internal method to
46 * TypeBuilder.cs (IsDefined): Implement this, since some corlib classes
47 make calls to IsDefined.
49 2004-01-06 Zoltan Varga <vargaz@freemail.hu>
51 * AssemblyBuilder.cs: Fix warning.
53 2004-01-05 Zoltan Varga <vargaz@freemail.hu>
55 * AssemblyBuilder.cs (DefineVersionInfoResource): Implement.
57 2003-12-29 Ben Maurer <bmaurer@users.sourceforge.net>
59 * MethodBuilder.cs, ConstructorBuilder.cs: Override GetParameterCount.
60 * ILGenerator.cs: Use GetParameterCount.
62 2003-12-20 Zoltan Varga <vargaz@freemail.hu>
64 * AssemblyBuilder.cs (AddModule): New internal method to support
67 2003-12-19 Zoltan Varga <vargaz@freemail.hu>
69 * AssemblyBuilder.cs: New internal property to support /target:module in
72 2003-12-18 Zoltan Varga <vargaz@freemail.hu>
74 * ILGenerator.cs: Applied patch from Ben Maurer
75 (bmaurer@users.sourceforge.net). Allocate arrays holding label data
76 lazily and reduce their size.
78 2003-12-17 Zoltan Varga <vargaz@freemail.hu>
80 * AssemblyBuilder.cs (MonoResource): New 'offset' field used by the
83 * ModuleBuilder: Implement DefineResource.
85 2003-12-15 Zoltan Varga <vargaz@freemail.hu>
87 * AssemblyBuilder.cs (RefEmitPermissionSet): New helper structure.
89 * MethodBuilder.cs (AddDeclarativeSecurity): Implement.
91 * ConstructorBuilder.cs (AddDeclarativeSecurity): Ditto.
93 2003-12-10 Zoltan Varga <vargaz@freemail.hu>
95 * MethodBuilder.cs: Add stubs for missing methods.
97 * TypeBuilder.cs (GetEvents): Add new override.
99 * ModuleBuilder.cs: Implement some missing methods, add stubs for others.
101 * AssemblyBuilder.cs (GetFiles): Get rid of unneccessary override.
103 * AssemblyBuilder.cs (ImageRuntimeVersion): Add override to keep
104 signature compatibility with MS.NET.
106 * TypeBuilder.cs (MemberType): Get rid of unneccessary override.
108 2003-12-08 Martin Baulig <martin@ximian.com>
110 * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Removed; use the
111 new `MonoGenericParam' class instead (in S.R/MonoGenericInst.cs).
113 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
115 * ModuleBuilder.cs: Double the size of the types array during insertion
116 do avoid excessive memory allocation and copying. Track the number of
117 types in a separate variable.
119 * TypeBuilder.cs: Same for the 'fields' and 'methods' arrays.
121 2003-12-03 Zoltan Varga <vargaz@freemail.hu>
123 * ModuleBuilder.cs (DefinePInvokeMethod): Implement.
125 * ModuleBuilder.cs (DefineGlobalMethod): Implement the Net 1.2 variants.
127 2003-11-28 Dick Porter <dick@ximian.com>
129 * ModuleBuilder.cs: Do string compares with the Invariant culture.
131 2003-11-28 Zoltan Varga <vargaz@freemail.hu>
133 * AssemblyBuilder.cs (SetCustomAttribute): Implement automatic
134 generation of build and revision numbers. Fixes #46492.
136 2003-11-25 Zoltan Varga <vargaz@freemail.hu>
138 * TypeBuilder.cs: Implement GetField.
140 2003-11-24 Zoltan Varga <vargaz@freemail.hu>
142 * DynamicMethod.cs: New class.
144 * ILGenerator.cs MethodBuilder.cs ConstructorBuilder.cs: Retrieve
145 tokens from a token generator object instead of from the ModuleBuilder,
146 to support the implementation of DynamicMethod. Also get rid of the
147 unused 'mbuilder' field.
149 * ModuleBuilder.cs: Create a token generator object which can be
150 passed to ILGenerator.
152 * LocalBuilder.cs ILGenerator.cs: Get rid of 'module' field, obtain
153 needed objects from the ilgen object instead.
155 2003-11-21 Zoltan Varga <vargaz@freemail.hu>
157 * TypeBuilder.cs FieldBuilder.cs MethodBuilder.cs ConstructorBuilder.cs: Add support for custom modifiers from NET 1.2.
159 * ILGenerator.cs: Remove unused abuilder member.
161 2003-11-19 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
163 * OpCodes.cs: Remove Boxval for v1.1+
165 2003-11-19 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
167 * OpCodes.cs: Small rearrange to fix csc compiler warning about obsolete member used
169 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
171 * AssemblyBuilderAccess.cs PackingSize: Add [Flags].
173 * AssemblyBuilder.cs (DefineDynamicModule): Make internal method
176 * AssemblyBuilder.cs (Save): Write out the main module at the end.
178 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
180 * ConstructorBuilder.cs (.ctor): Automatically add RTSpecialName flag
183 2003-11-06 Martin Baulig <martin@ximian.com>
185 * ModuleBuilder.cs (ModuleBuilder.Save): Call `build_metadata'
186 before writing the symbol file.
188 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
190 * AssemblyBuilder.cs (.ctor): Initialize the 'dir' field to something
193 * AssemblyBuilder.cs (Save): Set 'created' flag.
195 * AssemblyBuilder.cs (get_next_table_index): Moved to ModuleBuilder,
196 since table indexes are per-module.
198 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
200 * TypeBuilder.cs (DefineDefaultConstructor): Pass an array instead of
201 null to DefineConstructor, to avoid NullReferenceExceptions in the
204 * AssemblyBuilder.cs ModuleBuilder.cs ILGenerator.cs: Move getUSIndex
205 and getToken methods, and the associated icalls to ModuleBuilder,
206 since tokens are per-module.
208 * AssemblyBuilder.cs ModuleBuilder.cs: Partially revert the previous
209 patch, since having the 'is_main' field is useful in the unmanaged
212 * AssemblyBuilder.cs ModuleBuilder.cs: Move the metadata creation and
213 file creation logic to ModuleBuilder:Save (), since this needs to be
214 done for every module. Also move the corresponding icalls to
217 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
219 * AssemblyBuilder.cs ModuleBuilder.cs: First steps toward a fix for
220 #48700 (proper module support in Ref.Emit). Remove is_main field from
221 ModuleBuilder and add a mainModule field to AssemblyBuilder instead.
222 This is neccesary, since the main module is determined during the
223 Save () call: the module with the same file name as the assembly is
224 the main module. Also create a default main module, if one is not
227 2003-11-03 Martin Baulig <martin@ximian.com>
229 * OpCodes.cs: Added Ldelem_Any, Stelem_Any and Unbox_Any from .NET 1.2.
231 2003-10-18 Sebastien Pouliot <spouliot@videotron.ca>
233 * AssemblyBuilder.cs (SetCustomAttribute): Changed PK extraction to
234 use Mono.Security.StrongName (#49785).
236 2003-10-18 Zoltan Varga <vargaz@freemail.hu>
238 * AssemblyBuilder.cs (SetCustomAttribute): Extract the public key from
241 2003-10-17 Zoltan Varga <vargaz@freemail.hu>
243 * AssemblyBuilder.cs (SetCustomAttribute): Ignore empty keyfile name.
245 * AssemblyBuilder.cs: Moved loading of the public key file into
246 managed code from reflection.c.
248 * AssemblyBuilder.cs: Set cultureInfo and version from the AssemblyName
249 passed to the constructor.
251 2003-10-13 Martin Baulig <martin@ximian.com>
253 * MethodBuilder.cs (MethodBuilder): Added
254 `TypeBuilder.MonoGenericParam[] generic_params' field.
255 (DefineGenericParameter, SetGenericMethodSignature): New public methods.
257 * TypeBuilder.cs (DefineGenericMethod): New public method.
259 2003-10-13 Zoltan Varga <vargaz@freemail.hu>
261 * OpCode.cs: Fix Value property. Fixes #49328.
263 2003-10-03 Zoltan Varga <vargaz@freemail.hu>
265 * TypeBuilder.cs (CreateType): Fire TypeResolve events for unfinished
266 nested value types. Fixes #47022.
268 2003-09-29 Zoltan Varga <vargaz@freemail.hu>
270 * TypeBuilder.cs: Really fix #48695.
272 Sat Sep 27 16:17:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
274 * ILGenerator.cs: instance fields are loaded from this.
276 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
278 * TypeBuilder.cs (DefineDefaultConstructor): Make this work on types
279 without a parent. Fixes #48695.
281 2003-09-17 Martin Baulig <martin@ximian.com>
283 * TypeBuilder.cs (TypeBuilder.CreateType): Don't append the type
284 parameters to the type name; ie. use `Stack' instead of `Stack<T>'.
286 2003-09-06 Martin Baulig <martin@ximian.com>
288 * TypeBuilder.cs (TypeBuilder.IsUnboundGenericParameter): Implemented.
290 2003-09-04 Martin Baulig <martin@ximian.com>
292 * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Make this nested
293 class internal, not protected.
295 2003-08-29 Martin Baulig <martin@ximian.com>
297 * TypeBuilder.cs (TypeBuilder.DefineGenericParameter): New public
298 method. We can now create generic types.
299 (TypeBuilder.GetGenericTypeDefinition): Override this; call the
300 `setup_internal_class' interncall before calling our base impl.
302 Sat Aug 2 13:04:55 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
304 * ILGenerator.cs: Emission of doubles now utilise the Double.AssertEndianity
305 icall to assert double word endianity on ARM.
307 2003-07-25 Duncan Mak <duncan@ximian.com>
309 * OpCodes.cs (Boxval): Marked with ObsoleteAttribute.
311 2003-07-24 Miguel de Icaza <miguel@ximian.com>
313 * TypeBuilder.cs: Added generics stubs.
315 * EnumBuilder.cs: Added generics stubs, changed bracing style for
318 2003-07-23 Duncan Mak <duncan@ximian.com>
320 * SignatureHelper.cs: This class does not have the
321 SerializableAttribute.
323 2003-07-11 Zoltan Varga <vargaz@freemail.hu>
325 * AssemblyBuilder.cs: Added argument checking to all methods according
326 to the MSDN docs. Also marked DefineUnmanagedResource and its friends
328 * ModuleBuilder.cs: Added new property FileName used by AssemblyBuilder.
329 * ModuleBuilder.cs AssemblyBuilder.cs: Implemented IsTransient ().
331 2003-06-15 Zoltan Varga <vargaz@freemail.hu>
333 * EventBuilder.cs: Add argument checking to methods.
335 Thu Jun 5 20:18:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
337 * AssemblyBuilder.cs: implemented DefineResource ().
339 Thu Jun 5 12:36:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
341 * OpCode.cs: implemented Equals/GetHashCode.
343 Tue Jun 3 11:14:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
345 * ILGenerator.cs, OpCode.cs: optimize opcode space usage.
347 Tue Jun 3 11:13:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
349 * UnmanagedMarshal.cs: add ability to define custom attributes (the MS
350 runtime doesn't support this).
352 2003-05-30 Zoltan Varga <vargaz@freemail.hu>
354 * TypeBuilder.cs: Implement DefineTypeInitializer.
356 2003-05-21 Zoltan Varga <vargaz@freemail.hu>
359 - Implement DefineInitializedData in terms of DefineUninitializedData
360 - Name the types of global fields $ArrayType$<len> to cut back on the
361 number of types created
362 - Add argument checking
364 2003-05-19 Zoltan Varga <vargaz@freemail.hu>
366 * AssemblyBuilder.cs: Implement GetDynamicModule. "Implement" various
367 methods not supported under MS.NET.
369 2003-05-18 Martin Baulig <martin@ximian.com>
371 * AssemblyBuilder.cs (corlib_void_type): New internal field.
372 (SetCorlibTypeBuilders): Added overloaded version which takes 4
373 arguments to set the `corlib_void_type'.
375 * TypeBuilder.cs: Use `pmodule.assemblyb.corlib_void_type' instead
376 of `typeof (void)' to make this work when compiling corlib.
378 Thu May 15 19:16:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
380 * MethodBuilder.cs: off by one in CreateMethodBody().
381 * TypeBuilder.cs: if the return type for a method is null, use void.
383 2003-04-28 Miguel de Icaza <miguel@ximian.com>
385 * MethodBuilder.cs: Mono allows the parameter position to be zero
386 to indicate the "returns:" attribute.
388 2003-04-20 Miguel de Icaza <miguel@ximian.com>
390 * ILGenerator.cs (EmitCall): Implement.
392 Flag a few unimplemented methods with MonoTODO, make coding style
393 for method definitions Mono consistent.
395 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
397 * ILGenerator.cs: Implement EmitWriteLine methods.
399 * TypeBuilder.cs (CreateType): Avoid creating a default constructor
402 2003-04-15 Miguel de Icaza <miguel@ximian.com>
404 * TypeBuilder.cs (DefineDefaultConstructor): Make it generate code
405 by default for a default constructor. This is what the MS runtime
406 does. The PythonNet code expected this.
408 (TypeBuilder.GetConstructorImpl): Implement this.
410 (TypeBuilder.CreateType): If there are no constructors defined, we
413 Tue Apr 15 13:50:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
415 * ModuleBuilder.cs, TypeBuilder.cs: set nesting_type before
416 calling setup_internal_class ().
418 2003-03-27 Zoltan Varga <vargaz@freemail.hu>
420 * AssemblyBuilder.cs: Added 'access' member, which is needed by the
423 2003-03-26 Zoltan Varga <vargaz@freemail.hu>
425 * ILGenerator.cs: Implemented ThrowException.
427 2003-03-10 Zoltan Varga <vargaz@freemail.hu>
429 * ILGenerator.cs: Propagate maxstack info along branches.
431 2003-03-06 Zoltan Varga <vargaz@freemail.hu>
433 * ILGenerator.cs (Emit): Do not pop the arguments off the stack for
434 ldftn etc. Fixes bug #39196.
436 2003-02-28 Zoltan Varga <vargaz@freemail.hu>
438 * ILGenerator.cs (Emit): Add fixup for already created methods and
439 fields. Do not add fixup for types since their table index do not
442 2003-02-26 Zoltan Varga <vargaz@freemail.hu>
444 * TypeBuilder.cs (DefineInitializedData): Removed unnecessary assignments.
446 * ModuleBuilder.cs (DefineInitializedData): Do not call
447 TypeBuilder::DefineInitializedData since that would mean defining a
448 nested type of the global type, which is wrong. Instead define a
449 new public type as MS does.
451 * ModuleBuilder.cs (DefineUninitializedData): Ditto.
453 Thu Feb 13 18:40:52 CET 2003 Paolo Molaro <lupus@ximian.com>
455 * ModuleBuilder.cs: add the basic initialization call.
457 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
459 * AssemblyBuilder.cs: Added basic error checking to some methods
460 according to the MSDN docs.
462 2003-02-10 Zoltan Varga <vargaz@freemail.hu>
464 * ConstructorBuilder.cs:
465 - Added basic error checking to all methods according to the MSDN docs.
466 - modified a lot of methods to throw NotSupportedException, to comply
469 2003-02-09 Zoltan Varga <vargaz@freemail.hu>
472 - Added basic error checking to all methods according to the MSDN docs.
473 - fixed AssemblyQualifiedName.
474 - implemented 'Size'.
475 - modified a lot of methods to throw NotSupportedException, to comply
477 - changes tested by running a full bootstrap.
479 2003-02-09 Martin Baulig <martin@ximian.com>
481 * AssemblyBuilder.cs (AssemblyBuilder.methods): Removed. This was
482 a hack for the symbol writer which is no longer needed.
484 2003-02-09 Martin Baulig <martin@ximian.com>
486 * IMonoSymbolWriter.cs (DefineNamespace, OpenMethod): New methods.
488 2003-02-09 Martin Baulig <martin@ximian.com>
490 * IMonoSymbolWriter.cs (MarkSequencePoint): New method which takes
491 just the required arguments as scalars, not arrays.
493 * ILGenerator.cs (ILGenerator.MarkSequencePoint): Use that new
494 interface method; unnecessarily creating such a large number of
495 arrays is both slow and too memory consuming.
497 2003-02-08 Zoltan Varga <vargaz@freemail.hu>
499 * MethodBuilder.cs: Added error checking to methods so they conform to
500 MSDN docs. Implemented 'GetModule' and 'CallingConvention' members.
501 Some other tweaks to improve compatibility with MS .NET.
503 * TypeBuilder.cs: Added 'is_created' property which will be used for
504 checking 'type is already created' errors.
506 2003-02-07 Martin Baulig <martin@ximian.com>
508 * ModuleBuilder.cs (.ctor): Added `bool IsMainModule' argument.
509 (Save): New internal method; creates the module's symbol file if
510 we're compiling with debugging information.
512 * AssemblyBuilder.cs (EmbedResource): Added internal overloaded
513 version of this method which takes a `byte[] blob' instead of a file.
514 (DefineDynamicMethod): If this is the first module, tell the
515 ModuleBuilder that this is the main module.
516 (Save): Call a new interncall `build_metadata' to create the final
517 metadata and save all the symbol files before creating the actual
520 * IMonoSymbolWriter.cs: New public class; it is in the namespace
521 Mono.CSharp.Debugger. The Mono symbol writer implements this interface.
523 2003-02-04 Zoltan Varga <vargaz@freemail.hu>
525 * AssemblyBuilder.cs: added GetToken (SignatureHelper).
527 * ILGenerator.cs: implemented EmitCalli() methods
529 * SignatureHelper.cs: implemented GetMethoSigHelper() methods.
531 2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
533 * MethodBuilder.cs: GetBaseDefinition () returns this.
535 Mon Jan 27 17:07:38 CET 2003 Paolo Molaro <lupus@ximian.com>
537 * CustomAttributeBuilder.cs, FieldBuilder.cs: applied
538 (reformatted) patch from "Jerome Laban" <jlaban@wanadoo.fr>
539 to fix ByValStr and ByValArray encodings.
541 2003-01-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
543 * AssemblyBuilder.cs: fixed compilation with csc.
545 2003-01-26 Miguel de Icaza <miguel@ximian.com>
547 * AssemblyBuilder.cs (Save): Set the executable bit at the end.
548 This uses a non-official enumeration value to call SetFileAttributes.
550 2003-01-17 Zoltan Varga <vargaz@freemail.hu>
552 * MethodBuilder.cs ConstructorBuilder.cs: modify GetParameters() so it
553 returns information even when the app did not use DefineParameter() to
554 define the parameters.
556 * ConstructorBuilder.cs (ctor): allways define SpecialName attribute
557 for constructors as done by MS.
559 Mon Jan 13 11:37:14 CET 2003 Paolo Molaro <lupus@ximian.com>
561 * TypeBuilder.cs, ModuleBuilder.cs: better type name cache.
563 2003-01-10 Zoltan Varga <vargaz@freemail.hu>
565 * ILGenerator.cs: Implemented EmitWriteLine(string).
567 * TypeBuilder.cs (DefineInitializedData): Call DefineNestedType()
568 instead of DefineType() so the auxiliary types do not pollute the
569 global namespace. This is consistent with the behaviour of MS .NET.
571 Fri Jan 10 16:03:30 CET 2003 Paolo Molaro <lupus@ximian.com>
573 * ILGenerator.cs, MethodBuilder.cs, TypeBuilder.cs,
574 ConstructorBuilder.cs: some tweaks to reduce memory usage.
576 Thu Jan 2 18:46:09 CET 2003 Paolo Molaro <lupus@ximian.com>
578 * ModuleBuilder.cs, TypeBuilder.cs: support global fields and methods.
580 Thu Dec 19 00:06:57 CET 2002 Paolo Molaro <lupus@ximian.com>
582 * AssemblyBuilder.cs: remove duplicated user string entries.
584 2002-12-11 Zoltan Varga <vargaz@freemail.hu>
586 * FieldBuilder.cs: added 'handle' field which is needed by some new
587 code in reflection.c.
589 2002-12-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
591 * TypeBuilder.cs: implemented GetInterfaceMap () when the Type has been
594 Fri Nov 8 14:53:03 CET 2002 Paolo Molaro <lupus@ximian.com>
596 * ILGenerator.cs: account for the exception object being passed to the
597 catch handler to calc max_stack.
599 2002-09-21 Martin Baulig <martin@gnome.org>
601 * ModuleBuilder.cs (ModuleBuilder.symbol_writer): Make this
602 field internal, not private.
603 (ModuleBuilder.SymWriter_DefineLocalVariable): Removed.
605 * LocalBuilder.cs (LocalBuilder.SetLocalSymInfo): Use the
606 ISymbolWriter's DefineLocalVariable() method instead of the
607 IMonoSymbolWriter hack.
609 Mon Sep 16 19:02:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
611 * AssemblyBuilder.c: special case some custom attributes.
613 2002-09-12 Dick Porter <dick@ximian.com>
615 * TypeBuilder.cs: Say _which_ Type has already been created
617 2002-09-11 Miguel de Icaza <miguel@ximian.com>
619 * ModuleBuilder.cs (GetTypes): Implement.
621 Tue Sep 10 12:12:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
623 * ConstructorBuilder.cs: added a field to hold the handle.
625 Mon Sep 9 17:31:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
627 * TypeBuilder.cs: prepare for the real CreateType implementation.
629 Tue Aug 27 16:57:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
631 * TypeBuilder.cs: remove duplicate code and fix
632 named field reading in custom attr.
634 2002-08-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
636 * TypeBuilder.cs: UnspecifiedTypeSize is 0.
638 Wed Aug 14 17:38:41 CEST 2002 Paolo Molaro <lupus@ximian.com>
640 * TypeBuilder.cs: ReflectedType and CreateType fixes.
642 Thu Aug 8 10:25:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
644 * AssemblyBuilder.cs: added API to embed managed resources.
646 2002-08-03 Martin Baulig <martin@gnome.org>
648 * TypeBuilder.cs (TypeBuilder.DeclaringType): Implemented.
650 Thu Jul 25 13:57:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
652 * AssemblyBuilder.cs: support linking external resources.
654 2002-07-19 Martin Baulig <martin@gnome.org>
656 * ILGenerator.cs (Emit (OpCode, LocalBuilder)): Throw an exception
657 when trying to emit a local that was defined in a different ILGenerator.
659 * LocalBuilder.cs (LocalBuilder): Added `ILGenetator' argument to
662 Tue Jul 16 19:32:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
664 * ILGenerator.cs: stack size check fix.
666 Sat Jul 13 17:30:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
668 * AssemblyBuilder.cs: add also the enum_type for compiling corlib.
669 * TypeBuilder.cs: complete IsValueType.
671 Sat Jul 13 15:08:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
673 * TypeBuilder.cs: better IsValueType.
675 2002-07-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
677 * CustomAttributeBuilder.cs: removed compile warning.
679 Fri Jul 12 11:34:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
681 * ILGenerator.cs: fixup typebuilder tokens as well.
683 Tue Jul 9 19:03:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
685 * TypeBuilder.cs: special case SerializarionAttribute.
686 Tweaks to get correct code in corlib.
688 2002-07-06 Miguel de Icaza <miguel@ximian.com>
690 * ILGenerator.cs (ILGenerator.Emit): For doubles and floats, swap
691 the bytes on big endian systems.
693 2002-07-03 Martin Baulig <martin@gnome.org>
695 * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): Moved
696 these fields up after the last entry in MonoReflectionAssemblyBuilder
699 * TypeBuilder.cs (IsValueTypeImpl): Use the AssemblyBuilder's
700 `corlib_value_type' instead of `typeof (System.ValueType)'.
701 (DefineNestedType): Use the AssemblyBuilder's `corlib_object_type'
702 instead of `typeof (object)'.
704 2002-07-02 Martin Baulig <martin@gnome.org>
706 * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): New
707 internal fields. When compiling corlib, they point to the newly
708 created System.Object and System.ValueType types.
709 (SetCorlibTypeBuilders): New public function. This will be
710 dynamically called from MCS when compiling corlib.
712 * TypeBuilder.cs (DefineInitializedData): Use the AssemblyBuilder's
713 `corlib_value_type' as parent type instead of `typeof (System.ValueType)'
714 to make it work when compiling corlib.
716 * ModuleBuilder.cs (assemblyb): Made this field internal, not private.
718 Tue Jul 2 18:34:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
720 * TypeBuilder.cs: implemented AssemblyQualifiedName.
721 * MethodBuilder.cs, ConstructorBuilder.cs: special case custom attr.
723 Mon Jul 1 16:17:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
725 * TypeBuilder.cs: implemented AddInterfaceImplementation().
727 2002-06-28 Martin Baulig <martin@gnome.org>
729 * MethodBuilder.cs (GetParameters): Return all parameters, not all
732 2002-06-27 Martin Baulig <martin@gnome.org>
734 * ConstructorBuilder.cs (GetParameters): Implemented.
736 Mon Jun 17 14:55:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
738 * ModuleBuilder.cs, TypeBuilder.cs: fixes for nested types handling.
740 Fri Jun 14 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
742 * CustomAttributeBuilder.cs: added custom attribute related internal
744 * FieldBuilder.cs, ParameterBuilder.cs: handle MarshalAs attribute.
745 * UnmanagedMarshal.cs: implemented.
747 Mon Jun 10 18:58:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
749 * PropertyBuilder.cs: implemented ReflectedType and DeclaringType
752 2002-06-07 Martin Baulig <martin@gnome.org>
754 * TypeBuilder.cs (TypeBuilder): Added `PackingSize packing_size' and
755 `int type_size' fields to the constructor.
756 (DefineNestedType): Pass packing_size and type_size to the constructor.
758 * ModuleBuilder.cs (DefineType): Pass the packing_size and type_size
759 fields to the TypeBuilder's constructor.
761 2002-06-07 Martin Baulig <martin@gnome.org>
763 * TypeBuilder.cs (DefineNestedType): There is no overload for this
764 method which takes 5 args in the specs, removed it.
766 Fri Jun 7 17:04:06 CEST 2002 Paolo Molaro <lupus@ximian.com>
768 * AssemblyBuilder.cs: updates for PE/COFF rewrite.
770 2002-05-30 Martin Baulig <martin@gnome.org>
772 * AssemblyBuilder.cs (methods): Made this internal and don't
773 initialize it. It will be initialized by the ModuleBuilder's
774 GetSymbolWriter() method.
775 (get_next_table_index): Only store the method in the `methods'
776 array if it's not null.
778 * ModuleBuilder.cs (GetSymbolWriter): Initialize the AssemblyBuilder's
779 `methods' field if necessary and pass it as third argument to the
780 symbol writer's constructor.
782 2002-05-25 Martin Baulig <martin@gnome.org>
784 * TypeBuilder.cs (TypeToken): Implemented.
786 2002-05-24 Martin Baulig <martin@gnome.org>
788 * ModuleBuilder.cs (symwriter_define_local): New private variable.
789 (GetSymbolWriter): Look for a custom version of "DefineLocalVariable"
790 and store it in `symwriter_define_local'.
791 (SymWriter_DefineLocalVariable): New internal method to call the
792 symbol writer's custom DefineLocalVariable() method. It is safe to
793 call this method if there's no symbol writer.
795 * LocalBuilder.cs (SetLocalSymInfo): Use the MethodBuilder'snew
796 SymWriter_DefineLocalVariable().
798 * MethodBuilder.cs (GetParameters): Implemented.
800 2002-05-22 Martin Baulig <martin@gnome.org>
802 * ModuleBuilder.cs (GetSymbolWriter): Pass the this pointer to the
803 symbol writer's constructor.
805 2002-05-22 Martin Baulig <martin@gnome.org>
807 * AssemblyBuilder.cs (methods): New field.
808 (get_next_table_index): Record all methods and constructors
809 (table 0x06) in the `methods' array. This is read by the
810 Mono.CSharp.Debugger.MonoSymbolWriter::get_method interncall to
811 get the MethodBuilder / ConstructorBuilder back from the token.
813 * *Builder.cs (get_next_table_index): Added `object obj' argument.
814 (<constructors>): pass the this pointer to get_next_table_index ().
816 2002-05-20 Martin Baulig <martin@gnome.org>
818 * TypeBuilder.cs (DefineField): Call the new `create_internal_class'
819 interncall after adding the first field. This is used when creating
820 enum types to set `klass->enum_basetype'.
822 Thu May 16 16:09:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
824 * TypeBuilder.cs: complete special acse support for CharSet, Size and
825 Pack named args in StructLayout attribute.
827 Tue May 14 17:13:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
829 * MethodBuilder.cs: revert change in accessibility of
832 Tue May 14 13:31:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
834 * FieldBuilder.cs, ParameterBuilder.cs: more special-casing of
837 Fri May 10 20:57:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
839 * CustomAttributeBuilder.cs: expose internal data for use in
841 * FieldBuilder.cs, TypeBuilder.cs: special case FieldOffset and
842 StructLayout attributes.
844 Fri May 10 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
846 * MethodBuilder.cs, ConstructorBuilder.cs: implemented InitLocals
849 2002-04-26 Martin Baulig <martin@gnome.org>
851 * ModuleBuilder.cs (DefineDocument): Implemented.
853 Tue Apr 16 13:02:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
855 * AssemblyBuilder.cs: pad output file to file alignment.
856 * FieldBuilder.cs: ReflectedType.
857 * ModuleBuilder.cs: added guid generation and array method creation.
858 * MonoArrayMethod.cs: array method support code.
860 Wed Apr 10 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
862 * ILGenerator.cs: use a stack to keep track of exception blocks.
864 Mon Apr 8 06:19:01 2002 Piers Haken <piersh@friskit.com>
866 * ILGenerator.cs: added LabelField.label_base to allow for
867 arbitrary offsets (for switch statement)
869 Fri Apr 5 15:41:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
871 * AssemblyBuilder.cs: simpler protocol wih the runtime to
872 get the assembly data.
874 Tue Mar 26 20:10:24 CET 2002 Paolo Molaro <lupus@ximian.com>
876 * AssemblyBuilder.cs: use FileMode.Create.
877 * ILGenerator.cs: optimize localbuilder related opcodes.
878 Track parameters to adjust maxstack.
879 * LocalBuilder.cS: use unsigned for position.
881 2002-03-23 Miguel de Icaza <miguel@ximian.com>
883 * LocalBuilder.cs: Drop the symbol_writer as LocalBuilder fields.
884 Do this lazily in SetLocalSymInfo.
886 2002-03-24 Martin Baulig <martin@gnome.org>
888 * ModuleBuilder.cs (GetSymbolWriter): The MonoSymbolWriter's constructor
889 now takes a `string assembly_filename' argument, pass it our fully
890 qualified assembly name.
892 2002-03-24 Nick Drochak <ndrochak@gol.com>
894 * ILGenerator.cs: Use #if-#endif instead of if(false){} to disable
895 code. This way there is no compiler warning.
897 * TypeBuilder.cs: Removed the returns that came after the throws.
898 This removes a few more compiler warnings. Also marked with MonoTODO
899 all places where we throw NotImplemented exceptions.
901 2002-03-23 Martin Baulig <martin@gnome.org>
903 * SignatureHelper.cs (GetFieldSignatureHelper, GetLocalSignatureHelper):
906 * LocalBuilder.cs (LocalBuilder): This internal constructor now takes
907 a ModuleBuilder argument instead of a ISymbolWriter one.
908 (SetLocalSymInfo): Create and pass type signature to DefineLocalVariable.
910 2002-03-23 Martin Baulig <martin@gnome.org>
912 * ILGenerator.cs (BeginScope, EndScope): Implemented.
914 2002-03-20 Martin Baulig <martin@gnome.org>
916 * ModuleBuilder.cs (GetSymbolWriter): New internal function. Dynamically
917 loads the default symbol writer, catch all possible exceptions and return
919 (ModuleBuilder): Added `bool emitSymbolInfo' argument to this internal
920 constructor; if set, call GetSymbolWriter ().
921 (GetSymWriter): Implemented.
923 * LocalBuilder.cs (LocalBuilder): Added ISymbolWriter argument to this
925 (SetLocalSymInfo): Implemented, call ISymbolWriter.DefineLocalVariable ()
926 if the symbol writer is not null.
928 * ILGenerator.cs (ILGenerator): Call ModuleBuilder.GetSymWriter () to get
929 and store the symbol writer.
930 (DeclareLocal): Pass the symbol writer to LocalBuilder's constructor.
931 (MarkSequencePoint): Implemented, call ISymbolWriter.DefineSequencePoints ()
932 if the symbol writer is not null.
934 * AssemblyBuilder.cs (DefineDynamicModule): Pass the `bool emitSymbolInfo'
935 to ModuleBuilder's constructor.
937 Sat Mar 16 19:11:47 CET 2002 Paolo Molaro <lupus@ximian.com>
939 * ModuleBuilder.cs: handle modified types correctly.
941 Thu Mar 7 17:10:42 CET 2002 Paolo Molaro <lupus@ximian.com>
943 * AssemblyBuilder.cs: allow saving bigger assemblies.
944 * ILGenerator.cs: add fixup table for fields and methods, since
945 at the end of the compile they may end up with a different table
947 * ModuleBuilder.cs: add cache for type names to speed up the type
948 lookups from the compiler.
949 * TypeBuilder.cs: GetInterfaces () returns only interfaces in the
950 current type, not in parents (the docs are wrong).
952 Tue Mar 5 18:09:34 CET 2002 Paolo Molaro <lupus@ximian.com>
954 * EventBuilder.cs: implemented.
955 * TypeBuilder.cs: implemented DefineEvent() method and UnderlyingSystemType
958 Mon Mar 4 20:34:52 CET 2002 Paolo Molaro <lupus@ximian.com>
960 * ILGenerator.cs: make enough room in the byte array for string
962 * TypeBuilder.cs: fixed GetInterfaces().
964 Mon Mar 4 11:30:40 CET 2002 Paolo Molaro <lupus@ximian.com>
966 * TypeBuilder.cs: implemented GetConstructors(), GetFields(),
967 GetMethods(), GetProperties().
969 Thu Feb 28 19:15:10 CET 2002 Paolo Molaro <lupus@ximian.com>
971 * AssemblyBuilder.cs: call into the runtime to init some basic
972 assembly stuff. Reserve slot 1 of typedef table for .<Module>.
973 * ModuleBuilder.cs: call into the runtime if we need to create a
974 modief type, such as arrays, byref etc.
975 * TypeBuilder.cs: call into the runtime to create the MonoClass
976 representation for the type. Throw exceptions with not implemented
979 Wed Feb 27 18:48:47 CET 2002 Paolo Molaro <lupus@ximian.com>
981 * ILGenerator.cs: fix nested exception blocks.
983 Wed Feb 20 22:30:49 CET 2002 Paolo Molaro <lupus@ximian.com>
985 * AssemblyBuilder.cs: upped compiled assembly size limit.
986 Implemented SetCustomAttribute () methods.
987 * CustomAttributeBuilder.cs: implemented the needed constructor
989 * Cosntructorbuilder.cs, EnumBuilder.cs, FieldBuilder.cs,
990 MethodBuilder.cs, ModuleBuilder.cs, ParameterBuilder.cs,
991 PropertyBuilder.cs, TypeBuilder.cs: Implemented SetCustomAttribute () methods.
993 Wed Feb 20 14:54:01 CET 2002 Paolo Molaro <lupus@ximian.com>
995 * AssemblyBuilder.cs: add SetCustomAttribute () to keep the compiler
998 Fri Feb 15 18:15:04 CET 2002 Paolo Molaro <lupus@ximian.com>
1000 * ILGenerator.cs: finally block support and fixes.
1002 Thu Feb 14 18:55:52 CET 2002 Paolo Molaro <lupus@ximian.com>
1004 * FieldBuilder.cs: Add SetRVAData().
1005 * ILGenerator.cs: speed up code array growth.
1006 * TypeBuilder.cs: fix IsValueTypeImpl(). Add class_size member.
1007 Implement DefineInitializedData().
1009 Tue Jan 22 23:01:11 CET 2002 Paolo Molaro <lupus@ximian.com>
1011 * EnumBuilder.cs, TypeBuilder.cs: updates for changes in Type.cs.
1012 * ModuleBuilder.cs: fix lookup of nested types.
1014 Tue Jan 15 22:46:21 CET 2002 Paolo Molaro <lupus@ximian.com>
1016 * ILGenerator.cs: implement some of the exception support methods.
1018 Mon Jan 14 17:07:32 CET 2002 Paolo Molaro <lupus@ximian.com>
1020 * ModulerBuilder.cs: search also for subtypes in GetTypes().
1021 * TypeBuilder.cs: bugfix in FullName. Implemented DefineNestedType().
1023 Fri Jan 11 19:00:29 CET 2002 Paolo Molaro <lupus@ximian.com>
1025 * MethodBuilder.cs, ConstructorBuilder.cs: save parameter info.
1027 Thu Jan 10 21:07:54 CET 2002 Paolo Molaro <lupus@ximian.com>
1029 * ILGenerator.cs: handle type tokens (used for box opcode).
1031 Wed Jan 9 19:37:55 CET 2002 Paolo Molaro <lupus@ximian.com>
1033 * ILGenerator.cs: emit float and doubles.
1034 * ModuleBuilder.cs: off-by-one error fix and GetType()
1036 * TypeBuilder.cs: AttributesImpl added.
1037 * UnmanagedMarshal.cs: stubbed out class.
1039 Sat Jan 5 15:59:05 CET 2002 Paolo Molaro <lupus@ximian.com>
1041 * ILGenerator.cs: fix emission of two-bytes opcodes.
1042 Missing slot for locals array. Throw exceptions on unimplemented
1044 * OpCode.cs: add a comment: the Value property is useless.
1045 * OpCodes.cs: fix name of tail opcode (Tail -> Tailcall).
1047 2002-01-05 Ravi Pratap <ravi@ximian.com>
1049 * ConstructorBuilder.cs : Use the MonoTODO attribute.
1051 * ILGenerator.cs, Label.cs, MethodBuilder.cs, ModuleBuilder.cs,
1052 ParameterBuilder.cs, TypeBuilder.cs : Ditto.
1054 Thu Jan 3 23:26:15 CET 2002 Paolo Molaro <lupus@ximian.com>
1056 * ILGenerator.cs: typo fix.
1058 Mon Dec 24 17:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
1060 * TypeBuilder.cs: added DefineMethodOverride().
1061 * MethodBuilder.cs: add override_method member and setter.
1063 Mon Nov 19 13:58:01 CET 2001 Paolo Molaro <lupus@ximian.com>
1065 * AssemblyBuilder.cs: add method to register a string in the "#US"
1067 * EnumBuilder.cs, SignatureHelper.cs: added stubs.
1068 * ILGenerator.cs: more stuff implemented.
1069 * LocalBuilder.cs: keep track of local var index.
1071 Thu Nov 15 18:11:23 CET 2001 Paolo Molaro <lupus@ximian.com>
1073 * ConstructorBuilder.cs: implement the interesting methods.
1074 * ILGenerator.cs: adapt for use with both a MethodBuilder and a
1076 * MethodBuilder.cs: add ImplAttributes.
1077 * ParameterBuilder.cs: adapt for ConstructorBuilder.
1078 * TypeBuilder.cs: add constructors handling.
1080 Wed Nov 14 17:01:45 CET 2001 Paolo Molaro <lupus@ximian.com>
1082 * ConstructorBuilder.cs: added missing stubs and some implementation.
1083 * CustomAttributeBuilder.cs: added.
1084 * EventBuilder.cs: added.
1085 * FieldBuilder.cs: updates.
1086 * MethodBuilder.cs: stuff to implement P/Invoke methods.
1087 * ModuleBuilder.cs: added GetArrayMethod() stub.
1088 * ParameterBuilder.cs, PropertyBuilder.cs: updates.
1089 * TypeBuilder.cs: updates and stubs.
1091 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
1093 * TypeBuilder.cs: Added implementation for TypeHandle.
1095 Tue Nov 6 09:13:45 CET 2001 Paolo Molaro <lupus@ximian.com>
1097 * AssemblyBuilder.cs: define an internal constructor.
1099 2001-10-07 Miguel de Icaza <miguel@ximian.com>
1101 * AssemblyBuilder.cs: Reformatted.
1103 Added override keywords to those that needed them.
1105 Removed methods that we do not override, but just inherit
1107 Tue Sep 25 16:53:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
1109 * TypeBuilder.cs, ConstructorBuilder.cs, ModuleBuilder.cs: added.