1 2008-07-22 Zoltan Varga <vargaz@gmail.com>
3 * CustomAttributeBuilder.cs (get_umarshal): Add support for all
4 MarshalAsAttribute fields to fix the build.
6 * CustomAttributeBuilder.cs (get_umarshal): Decode enums properly.
8 2008-07-21 Marek Safar <marek.safar@gmail.com>
10 * ParameterBuilder.cs, CustomAttributeBuilder.cs: Check for
11 UnmanagedType.ByValArray to be used only on fields.
13 2008-07-16 Rodrigo Kumpera <rkumpera@novell.com>
15 * MethodOnTypeBuilderInst.cs: Special case all methods
16 under compiler context as needed by mcs.
18 * MethodBuilder.cs: Change the visibility of some fields
19 to internal so MethodOnTypeBuilderInst can use it.
21 2008-07-11 Marek Safar <marek.safar@gmail.com>
23 * ModuleBuilder.cs: Couple of micro optimizations.
25 2008-07-03 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
27 * SignatureHelper.cs: Fix parameter names
28 * ModuleBuilder.cs: Fix parameter names
30 2008-06-18 Rodrigo Kumpera <rkumpera@novell.com>
32 * TypeBuilder.cs (IsAssignableTo): Fixed check for interfaces
33 defined on parent. Based on Geoff's Norton patch.
36 2008-06-12 Marek Safar <marek.safar@gmail.com>
38 * MethodBuilder.cs: Removed SetGenericMethodSignature.
40 2008-06-06 Jb Evain <jbevain@novell.com>
42 * OpCodes.cs: OpCode constrained. is of type InlineType.
44 2008-05-18 Gert Driesen <drieseng@users.sourceforge.net>
46 * TypeBuilder.cs (IsAssignableTo): When an interface is passed as
47 argument and the TypeBuilder has been created, also check if parent
48 can be assigned to type.
50 2008-05-15 Zoltan Varga <vargaz@gmail.com>
52 * TypeBuilder.cs (.ctor): Convert a null parent to typeof (object) here, not just
53 in CreateType (). Fixes #389171.
55 2008-05-11 Gert Driesen <drieseng@users.sourceforge.net>
57 * FieldBuilder.cs: Added null check for type.
58 * TypeBuilder.cs: For enums, construct UnderlyingSystemType when
59 first instance field is defined instead of having to lookup it up on
60 demand. Avoid cast in IsCompilerContext.
62 2008-05-11 Gert Driesen <drieseng@users.sourceforge.net>
64 * TypeBuilder.cs: Use Assembly.FullName instead of AssemblyName.
65 In UnderlyingSystemType, return UnderlyingSystemType of created type
66 when available. For an enum, UnderlyingSystemType is the type of the
67 first instance field. If no instance field is available, throw an
68 InvalidOperationException. Retain original behavior when operating in
70 * ConstructorBuilder.cs: Moved implementation of GetParameters to
71 GetParametersInternal to allow it to be used internally when type is
73 * CustomAttributeBuilder.cs: Added GetParameters method that uses
74 GetParametersInternal on ConstructorBuilder, and use it where
77 2008-05-03 Zoltan Varga <vargaz@gmail.com>
79 * ConstructorBuilder.cs: Revert the throw not_created () change as it causes
80 vbnc bootstrap to fail. Fixes #386419.
82 2008-05-01 Gert Driesen <drieseng@users.sourceforge.net>
84 * ConstructorBuilder.cs: Switch arguments for AORE.
86 2008-04-30 Gert Driesen <drieseng@users.sourceforge.net>
88 * ModuleBuilder.cs (DefineType): Do not perform lookup of in cache if
89 name is null to allow correct exception to be thrown (in TypeBuilder
91 * TypeBuilder: Moved name argument check to TypeBuilder ctor. Modified
92 ArgumentException parameter names to match MS. Removed duplicate check
93 for data length from DefineInitializedData. Modified check_name to
94 only throw when first character is null char.
95 * ConstructorBuilder.cs (GetParameters): Throw NotSupportedException
96 (2.0) or InvalidOperationException (1.0) when type is not yet created
97 and we're not in compiler context. Return empty array when no
98 parameters are defined.
99 (MethodHandle): Always throw NotSupportedException.
100 (DefineParameter): Prevent NRE when parameters is null.
101 (GetCustomAttributes): When not in compiler context, always throw
102 NotSupportedException.
103 * ConstructorOnTypeBuilderInst.cs: Delegate to ConstructorBuilder
104 where possible. Fixed ContainsGenericParameters and IsGenericMethod
105 to always return false. In MethodBase.Invoke, throw an
106 InvalidOperationException instead of NIE.
108 2008-04-26 Gert Driesen <drieseng@users.sourceforge.net>
110 * MethodOnTypeBuilderInst.cs: Added overrides for ReturnType and
111 GetGenericMethodDefinition. Implement GetGenericArgument,
112 IsGenericMethod(Definition). Throw NotSupportedException instead of
113 NotImplementedException.
115 2008-04-26 Jb Evain <jbevain@novell.com>
117 * ILGenerator.cs, AssemblyBuilder.cs, TypeBuilder.cs:
118 replace usages of new Type [0] by Type.EmptyTypes.
121 2008-04-22 Zoltan Varga <vargaz@gmail.com>
123 * MethodOnTypeBuilderInst.cs ConstructorOnTypeBuilderInst: New files.
125 2008-03-29 Gert Driesen <drieseng@users.sourceforge.net>
127 * AssemblyBuilder.cs: Added enum that determines the type of the
128 native (version) resource. Added fields for holding the native
129 resource type and the version culture. The versioninfo_culture was
130 introduced to hold the original culture of the assembly, since
131 the AssemblyCultureAttribute should only affect the language of the
132 versioninfo block when not used in compiler context. Move constructin
133 of native version info to DefineVersionInfoResourceImpl to allow
134 attributes to affect the versioninfo after DefineVersionInfoResource
135 has been invoked. Allow ArgumentException for invalid culture string
136 to bubble up. In compiler context, use FileVersion as default value
137 for ProductionVersion.
139 2008-03-14 Zoltan Varga <vargaz@gmail.com>
141 * FieldOnTypeBuilderInst.cs: New file.
143 2008-03-11 Marek Safar <marek.safar@gmail.com>
145 * MethodBuilder.cs (GetGenericArguments): Returns Type.EmptyType.
147 2008-03-06 Zoltan Varga <vargaz@gmail.com>
149 * AssemblyBuilder.cs: Define GetManifestModule () for net 2.0 bootstrap too.
151 * DynamicMethod.cs: Create a dynamic assembly to hold the anon hosted methods.
153 * DynamicMethod.cs: Add net 3.5 ctor overloads.
155 * ModuleBuilder.cs (RegisterToken): New icall.
157 * MethodBuilder.cs (ctor): Call ModuleBuilder.RegisterToken (), so the token gets
158 added to the internal hash table. Fixes #367668.
160 * ConstructorBuilder.cs: Ditto.
162 2008-03-06 Jb Evain <jbevain@novell.com>
164 * SignatureHelper.cs (GetMethodSigHelper): if returnType
165 is null, use typeof (void) instead. Fixes #367663.
167 2008-03-03 Rodrigo Kumpera <rkumpera@novell.com>
169 * MethodBuilder.cs (check_override): Added, verify if this method has explicit
170 override set and doesn't follow virtual settings of overriden method.
172 * TypeBuilder.cs (CreateType): Call MethodBuilder::check_override before
177 2008-01-29 Zoltan Varga <vargaz@gmail.com>
179 * ModuleBuilder.cs: Fix build.
181 * AssemblyBuilder.cs (GetTypes): Implement this entirely in managed code.
183 * ModuleBuilder.cs (GetTypes): Replace TypeBuilders with their created types to
186 * AssemblyBuilder.cs: Override GetModulesInternal () so we can return
189 2008-01-25 Zoltan Varga <vargaz@gmail.com>
191 * TypeBuilder.cs (GenerateDebugInfo): Emit debug info for nested types as well.
194 2008-01-21 Gert Driesen <drieseng@users.sourceforge.net>
196 * AssemblyBuilder.cs: Introduce magic value for AssemblyBuilderAccess
197 to signal usage from a compiler. On 2.0 profile, perform argument
198 check for access. Use AssemblyFlags passed in through AssemblyName
199 arguments. Modified SetCustomAttribute to only use the Assembly*
200 attribute for constructing the assembly name when used in compiler
201 context. Fixes corlib part of bug #354970.
203 2008-01-17 Zoltan Varga <vargaz@gmail.com>
205 * TypeBuilder.cs (GetConstructorImpl): Add back the code removed by the last
206 patch since it is needed when building mscorlib.
208 2008-01-16 Gert Driesen <drieseng@users.sourceforge.net>
210 * TypeBuilder.cs (GetConstructorImpl): Use GetConstructor on created
211 type. Original implementation did not take into account the binding
212 flags and failed with a NotSupportedException if the default binder
213 checked if a ParamArrayAttribute was defined. It also does not make
214 sense to return a ConstructorBuilder once the type is emitted.
215 (GetConstructors): When the type is emitted, use GetConstructors
217 (GetFields): Removed duplicate code.
218 (GetMethodsByName): Fixed matching of methods in the parent class
219 depending on their accessibility:
220 - Private: never include private methods of parent
221 - Public: ignore if Public flag is not set
222 - Assembly: ignore if NonPublic is not set or when on the 1.0 profile
223 - Rest (Family, FamANDAssem, FamORAssem): ignore if NonPublic flag is
225 Static methods of the parent are ignored unless the FlattenHierarchy
227 (GetProperties): When the type is emitted, use GetProperties on the
228 created type as the TypeBuilder implementation itself does not include
229 properties from the parent class.
231 2007-12-31 Gert Driesen <drieseng@users.sourceforge.net>
233 * AssemblyBuilder.cs (UnprotectedGetName): Set the public key token
236 2007-12-10 Zoltan Varga <vargaz@gmail.com>
238 * FieldBuilder.cs (GetToken): Use the MetadataToken property.
240 2007-11-20 Atsushi Enomoto <atsushi@ximian.com>
242 * GenericTypeParameterBuilder.cs : fixed regression.
243 GenericParameterAttributes also needs some special care.
245 2007-11-20 Atsushi Enomoto <atsushi@ximian.com>
247 * MethodBuilder.cs : implemented ContainsGenericParameters().
248 * GenericTypeParameterBuilder.cs : removed most of extra members
249 and added missing members for 2.0 API.
251 2007-11-18 Miguel de Icaza <miguel@novell.com>
253 * SignatureHelper.cs: Implement Equals and GetHashCode
255 2007-11-17 Miguel de Icaza <miguel@novell.com>
257 * SignatureHelper.cs: Preparational tasks to support the
258 AddArgument overloads that allow the specification of modopts and
261 Refactor code, add new parameters.
263 * SignatureHelper.cs (AddArguments): Add new 2.0 API, used by
264 new versions of the DLR. Currently does not have support for
265 modreq, modopts. Just a simple wrapper as consumed by the DLR.
267 2007-11-16 Atsushi Enomoto <atsushi@ximian.com>
269 * AssemblyBuilder.cs : added missing 2.0 member.
270 * DynamicMethod.cs : removed extra stuff.
271 * DynamicILInfo.cs : no public .ctor().
272 * ILGenerator.cs : fixed 2.0 member signatures.
274 2007-11-16 Atsushi Enomoto <atsushi@ximian.com>
276 * EnumBuilder.cs, TypeBuilder.cs : implemented missing 2.0
277 stuff, in harmless manner.
279 2007-11-16 Atsushi Enomoto <atsushi@ximian.com>
281 * ConstructorBuilder.cs : added CallingConvention.
283 2007-11-16 Atsushi Enomoto <atsushi@ximian.com>
285 * SignatureHelper.cs : Module can be null, and for non-
286 ModuleBuilder argument, throw ArgumentException.
287 Added missing 2.0 stuff.
289 2007-11-08 Rodrigo Kumpera <rkumpera@novell.com>
291 * TypeBuilder.cs: Workaround for #82625 not needed anymore.
292 GetFields() returns the created type fields.
294 2007-10-15 Gert Driesen <drieseng@users.sourceforge.net>
296 * ILGenerator.cs: Added missing null checks. Removed extra tabs.
298 2007-09-23 Gert Driesen <drieseng@users.sourceforge.net>
300 * AssemblyBuilder.cs: Added missing paramname to ArgumentExceptions.
301 Use String.Length to check for zero-length string.
303 2007-09-23 Zoltan Varga <vargaz@gmail.com>
305 * AssemblyBuilder.cs (GetManifestModule): Return a ModuleBuilder here to
308 2007-09-22 Gert Driesen <drieseng@users.sourceforge.net>
310 * TypeBuilder.cs: Do not include static methods of base class in
311 GetMethod(s). Fixes bug #327482.
313 2007-09-14 Zoltan Varga <vargaz@gmail.com>
315 * AssemblyBuilder.cs (DefineVersionInfoResource): Allow the arguments to be
318 2007-09-11 Jb Evain <jbevain@novell.com>
320 * DynamicMethod.cs: store the owner of the DynamicMethod.
322 2007-09-09 Zoltan Varga <vargaz@gmail.com>
324 * AssemblyBuilder.cs (DefineUnmanagedResource): Open file read-only. Fixes
327 2007-09-02 Zoltan Varga <vargaz@gmail.com>
329 * TypeBuilder.cs: Add a workaround for #82625 to make nemerle work again.
331 2007-08-29 Gert Driesen <drieseng@users.sourceforge.net>
333 * AssemblyBuilder.cs: In DefineIconResource, open icon in read-only
334 mode. Fixes bug #82617.
336 2007-08-17 Rolf Bjarne Kvinge <RKvinge@novell.com>
338 * ILGenerator.cs: Change BeginCatchBlock to end the current filter block if called with a null exceptionType. Added ILExceptionBlock.FILTER_START to be able to track if we're in a filter block or not. Renamed PatchLastClauseStart to PatchFilterClause to match better what it does, and make it update the handler's type to FILTER. Fixes #81431.
340 2007-08-10 Zoltan Varga <vargaz@gmail.com>
342 * DynamicILInfo.cs: New file.
344 * DynamicMethod.cs (GetDynamicILInfo): New 2.0 method.
346 2007-07-11 Rodrigo Kumpera <rkumpera@novell.com>
348 * TypeBuilder.cs (CreateType): method did not check for enum type with defined methods and fixed compatibility issue in case of calling CreateType again after the first one failed, it now returns null as well.
350 2007-07-10 Zoltan Varga <vargaz@gmail.com>
352 * OpCodeType.cs EventToken.cs FieldToken.cs SignatureToken.cs PackingSize.cs
353 StringToken.cs AssemblyBuilderAccess.cs FlowControl.cs MethodToken.cs
354 ParameterToken.cs TypeToken.cs PropertyToken.cs OperandType.cs PEFileKinds.cs
355 StackBehaviour.cs: 2.0 updates.
357 2007-07-07 Gert Driesen <drieseng@users.sourceforge.net>
359 * MethodBuilder.cs: Code formatting. Spaces to tabs.
360 * TypeBuilder.cs: Same.
362 2007-07-06 Gert Driesen <drieseng@users.sourceforge.net>
364 * TypeBuilder.cs: Throw InvalidOperationException when attempting to
365 construct non-abstract interface without base type. Modified SetParent
366 to match MS: in 2.0 profile, throw InvalidOperationException when
367 parent is null and TypeBuilder is non-abstract interface. When
368 parent is null and TypeBuilder is not an interface, then set object
369 as parent. In 1.0 profile, throw ArgumentNullException when parent is
372 2007-07-06 Gert Driesen <drieseng@users.sourceforge.net>
374 * TypeBuilder.cs: Implemented IsCOMObjectImpl.
376 2007-07-04 Atsushi Enomoto <atsushi@ximian.com>
378 * DynamicMethod.cs : 2.0 API fix.
380 2007-06-21 Zoltan Varga <vargaz@gmail.com>
382 * DynamicMethod.cs: Applied patch from Robert Jordan (robertj@gmx.net). Add
383 a destructor which frees the runtime data for the method.
385 2007-05-21 Gert Driesen <drieseng@users.sourceforge.net>
387 * TypeBuilder.cs: Changed HasElementTypeImpl to return false on 2.0
388 profile when type is not baked.
390 2007-05-21 Jb Evain <jb@nurv.fr>
394 Tag methods and types as HasSecurity when adding a
395 SuppressUnmanagedCodeSecurityAttribute on them.
396 Makes peverify happy.
398 2007-05-16 Gert Driesen <drieseng@users.sourceforge.net>
400 * TypeBuilder.cs (GetField): Return MonoField instance if the type is
401 already created. Fixed other part of bug #81368.
403 2007-05-16 Zoltan Varga <vargaz@gmail.com>
405 * TypeBuilder.cs (GetFields): Return MonoField objects if the type is already
408 * FieldBuilder.cs (SetValue): Make this not supported again.
410 * FieldBuilder.cs: Support calling SetValue (). Fixes #81638.
412 2007-05-06 Zoltan Varga <vargaz@gmail.com>
414 * TypeBuilder.cs (CreateType): Fix build.
416 * TypeBuilder.cs (.ctor): Convert null parent to typeof (object). Fixes #81530.
418 * TypeBuilder.cs (UnderlyingSystemType): Remove commented out code.
420 2007-04-15 Alp Toker <alp@atoker.com>
422 * ConstructorBuilder.cs: Make use of
423 ConstructorInfo.TypeConstructorName/ConstructorName.
425 2007-04-09 Alp Toker <alp@atoker.com>
427 * ConstructorBuilder.cs: Remove redundant overrides.
429 2007-04-03 Marek Safar <marek.safar@gmail.com>
431 * OpCodes.cs: Removed obsolete opcodes.
433 2007-04-03 Alp Toker <alp@atoker.com>
435 * GenericTypeParameterBuilder.cs: SetInterfaceConstraints(Type[]) is
437 * MethodBuilder.cs: MakeGenericMethod(Type[]) is params.
439 2007-03-19 Marek Safar <marek.safar@gmail.com>
441 * MethodBuilder.cs: MethodImplAttribute cannot be destructive and overwrite
444 2007-03-17 Marek Safar <marek.safar@gmail.com>
446 * MethodBuilder.cs: Implemented conversion of PreserveSigAttribute pseudo
449 2007-03-17 Zoltan Varga <vargaz@gmail.com>
451 * ILGenerator.cs (Emit): Disallow ldtoken on a DynamicMethod as well.
453 * ILGenerator.cs (Emit): Do not allow ldftn on a DynamicMethod to be
454 compatible with MS.NET. Fixes #81157.
456 2007-03-13 Miguel de Icaza <miguel@novell.com>
458 * OpCode.cs: Add a couple of operators for jsc.sf.net
460 2007-03-12 Zoltan Varga <vargaz@gmail.com>
462 * DynamicMethod.cs: Add a field used by unmanaged code.
464 2007-03-06 Rolf Bjarne Kvinge <RKvinge@novell.com>
466 * MonoArrayMethod.cs: Use 'void' as return type in ToString when
467 the return type is null. Fixes #80435.
469 2007-03-06 Gert Driesen <drieseng@users.sourceforge.net>
471 * EnumBuilder.cs: On 2.0 profile, using current EnumBuilder as
472 field type in DefinedLiteral. Fixes bug #81007.
474 2007-02-25 Marek Safar <marek.safar@gmail.com>
476 * MethodBuilder.cs: Empty string is not allowed for DllImport name.
478 2007-02-13 Marek Safar <marek.safar@gmail.com>
480 * ModuleBuilder.cs: Add GetRegisteredType to expose name_cache for internal
483 * TypeBuilder.cs: Optimized generation of unmanaged data helpers.
484 An unmanaged data class helper can be re-used when its size matches to
485 size of requested class.
487 2007-01-25 Radek Doulik <rodo@novell.com>
489 * ModuleBuilder.cs: return created type from GetType in case the
490 type builder type was already created. Added test-555.cs as
493 Tue Jan 23 17:45:07 CET 2007 Paolo Molaro <lupus@ximian.com>
495 * ModuleBuilder.cs, AssemblyBuilder.cs: mark the GC-tracked field
498 2007-01-16 Rolf Bjarne Kvinge <RKvinge@novell.com>
500 * EnumBuilder.cs: value__ must have RTSpecialName flag set.
503 Fri Dec 22 19:42:56 CET 2006 Paolo Molaro <lupus@ximian.com>
505 * ModuleBuilder.cs: associate a resource writer with its
506 actual resource (bug #80339).
508 2006-10-06 Miguel de Icaza <miguel@novell.com>
510 * AssemblyBuilder.cs: Am doing a try/catch for pulling the LCID
511 from the AssemblyCulture that is provided, as Microsoft allows
512 arbitrary locales (even non-existing ones) to be specified.
514 The .locale information is actually pulled from the AssemblyName,
515 not from this lcid. But this LCID is used to encode the
516 resource. In my exploration of this, we are setting this field,
517 even if CSC never sets the field itself (its always zero).
519 Maybe we should completely remove this.
521 2006-09-12 Mart Roosma <roosma@gmail.com>
523 * DynamicMethod.cs: Allow empty name and null return type.
526 2006-09-05 Miguel de Icaza <miguel@novell.com>
528 * TypeBuilder.cs (SetParent): Null parent is allowed for
531 2006-09-02 Zoltan Varga <vargaz@gmail.com>
533 * DynamicMethod.cs: Fix a warning.
535 * TypeBuilder.cs: Allow static methods on interfaces. Fixes #79249.
537 2006-08-18 Zoltan Varga <vargaz@gmail.com>
539 * *.cs: Use String.Empty instead of "" in a lot of places.
541 2006-07-14 Zoltan Varga <vargaz@gmail.com>
543 * ConstructorBuilder.cs (GetILGenerator): Avoid creating a new ILGenerator each time
544 this is called. Fixes #78859.
546 2006-07-11 Zoltan Varga <vargaz@gmail.com>
548 * MethodBuilder.cs (SetCustomAttribute): Fix handling of SpecialNameAttribute.
550 2006-07-09 Gert Driesen <drieseng@users.sourceforge.net>
552 * DynamicMethod.cs: Fix check for empty method body, avoids SIGSEV.
554 2006-07-08 Zoltan Varga <vargaz@gmail.com>
556 * DynamicMethod.cs: Create all other DynamicMethod's referenced by
557 this method as well. Check for an empty method body.
559 * ILGenerator.cs (Emit): Handle DynamicMethod's which might not have a
562 2006-05-15 Zoltan Varga <vargaz@gmail.com>
564 * AssemblyBuilder.cs (MonoResource): Add a 'stream' field.
566 * ModuleBuilder.cs (DefineManifestResource): Add new net 2.0 method.
568 2006-04-26 Miguel de Icaza <miguel@novell.com>
570 * MethodBuilder.cs: better error messages when we close the
573 2006-03-28 Marek Safar <marek.safar@seznam.cz>
575 * ILGenerator.cs: Delayed the exception stack creation. It saves ~1.5 MB
576 for corlib compilation.
578 2006-03-27 Marek Safar <marek.safar@seznam.cz>
580 * ILGenerator.cs: Tune up label defaults, switched to double resizing.
582 2006-03-15 Zoltan Varga <vargaz@gmail.com>
584 * AssemblyBuilder.cs (AddTypeForwarder): New internal method for
585 adding type forwarders to an assembly.
587 2006-02-27 Gert Driesen <drieseng@users.sourceforge.net>
589 * ConstructorBuilder.cs: In AddDeclarativeSecurity, throw an
590 ArgumentOutOfRangeException instead of an ArgumentException if action
591 is a Request* action. Fixes bug #77640.
592 * MethodBuilder.cs: Same.
593 * TypeBuilder.cs: Same.
595 Mon Feb 27 17:12:40 CET 2006 Paolo Molaro <lupus@ximian.com>
597 * ModuleBuilder.cs: unlink the file before saving
598 otherwise we might overwrite a file mmapped by the runtime.
600 2006-02-17 Zoltan Varga <vargaz@gmail.com>
602 * DynamicMethod.cs: Implement DefineParameter ().
604 * ParameterBuilder.cs: Add support for DynamicMethod parents.
606 2006-02-15 Martin Baulig <martin@ximian.com>
608 * TypeBuilder.cs (TypeBuilder.DefineMethod): Also enable the
609 2-argument version in the `BOOTSTRAP_NET_2_0' profile.
610 (TypeBuilder.DefineGenericMethod): Removed.
612 2006-02-14 Martin Baulig <martin@ximian.com>
614 * ConstructorBuilder.cs
615 (ConstructorBuilder.IsGenericMethod): Override this and return
616 false; the MS runtime doesn't throw an exception here.
617 (ConstructorBuilder.IsGenericMethodDefinition): Likewise.
620 (MethodBuilder.IsGenericMethod): Implement this.
621 (MethodBuilder.IsGenericMethodDefinition): Likewise.
623 2006-02-03 Zoltan Varga <vargaz@gmail.com>
625 * TypeBuilder.cs (CreateType): Add a check for Sealed parents.
627 2006-02-01 Zoltan Varga <vargaz@gmail.com>
629 * OpCodes.cs: Readonly is a net 2.0 only field.
631 Tue Jan 31 13:37:02 CET 2006 Paolo Molaro <lupus@ximian.com>
633 * OpCodes.cs: Added Readonly field.
635 2006-01-29 Raja R Harinath <harinath@gmail.com>
637 * GenericTypeParameterBuilder.cs (DeclaringType): Return the
638 declaring type of a generic method.
640 2005-12-15 Raja R Harinath <rharinath@novell.com>
642 * TypeBuilder.cs (IsGenericType): Implement override.
644 2005-12-07 Martin Baulig <martin@ximian.com>
646 * GenericTypeParameterBuilder.cs: Add support for custom attributes.
647 (GenericTypeParameterBuilder.cattrs): New field.
648 (GenericTypeParameterBuilder.SetCustomAttribute): Implement this.
650 Mon Dec 5 15:13:26 CET 2005 Paolo Molaro <lupus@ximian.com>
652 * ILGenerator.cs: fixed emitting doubles on ARM.
654 2005-12-02 Alp Toker <alp@atoker.com>
656 * GenericTypeParameterBuilder.cs:
657 * TypeBuilder.cs: DeclaringMethod should return MethodBase, not MethodInfo
659 2005-11-19 Zoltan Varga <vargaz@gmail.com>
661 * AssemblyBuilder.cs: Add support for setting FileVersion unmanaged
662 resource. Fixes #64427.
664 2005-11-18 Zoltan Varga <vargaz@gmail.com>
666 * ParameterBuilder.cs (SetCustomAttribute): Handle DefaultParameterValueAttribute as well.
668 * CustomAttributeBuilder.cs: Add support for decoding more types of
669 constructor parameters.
671 2005-11-11 Zoltan Varga <vargaz@gmail.com>
673 * TypeBuilder.cs (SetCustomAttribute): Handle ComImportAttribute as well.
675 2005-11-11 Marek Safar <marek.safar@seznam.cz>
677 * EnumBuilder.cs, GenericTypeParameterBuilder.cs: Reflect Type changes.
679 2005-11-06 Zoltan Varga <vargaz@freemail.hu>
681 * Label.cs: Add == and != operators.
683 2005-10-30 Zoltan Varga <vargaz@freemail.hu>
685 * FieldBuilder.cs: Add implementation of new UMarshal property.
687 2005-10-27 Zoltan Varga <vargaz@gmail.com>
689 * FieldBuilder.cs MethodBuilder.cs ConstructorBuilder.cs: Add support for
690 returing custom attributes in created types. MS.NET supports this by
691 returning non-builder objects from GetMethod/GetField etc., but we return
692 builder objects in this case. Fixes #76521.
694 2005-10-24 Martin Baulig <martin@ximian.com>
696 * TypeBuilder.cs (TypeBuilder.IsGenericTypeDefinition): Override this.
698 2005-10-03 Atsushi Enomoto <atsushi@ximian.com>
700 * CustomAttributeBuilder.cs : internal attributes should be allowed.
703 2005-09-26 Marek Safar <marek.safar@seznam.cz>
705 * PropertyBuilder.cs: Throw NotSupportedException for unsupported
708 2005-09-14 Martin Baulig <martin@ximian.com>
711 (LocalBuilder.Mono_GetLocalIndex): New static internal method;
712 same as the .NET 2.0 property `LocalIndex'.
714 Mon Sep 5 18:08:09 CEST 2005 Paolo Molaro <lupus@ximian.com>
716 * EventBuilder.cs, FieldBuilder.cs, MethodBuilder.cs, TypeBuilder.cs,
717 PropertyBuilder.cs: take care of the SpecialName attribute (bug #75768).
719 2005-09-01 Raja R Harinath <rharinath@novell.com>
721 * CustomAttributeBuilder.cs (get_umarshal): Don't cause a nullref
722 exception when passed a custom marshaller type that belongs to the
723 assembly being built. When user specifies MarshalType rather than
724 MarshalTypeRef, don't attempt to resolve the type.
726 2005-08-31 Raja R Harinath <rharinath@novell.com>
728 * CustomAttributeBuilder.cs (get_umarshal): Fix typo. The name of
729 the field is "SizeParamIndex", not "SizeSizeParamIndex".
731 * ParameterBuilder.cs (SetCustomAttribute) [MarshalAsAttribute]:
732 Set ParameterAttributes.HasFieldMarshal flag.
734 2005-08-19 Zoltan Varga <vargaz@freemail.hu>
736 * DynamicMethod.cs (CreateDelegate): Don't cache the delegate since it
737 needs to be different for each target.
739 * DynamicMethod.cs (CreateDynMethod): Call ilgen.label_fixup ().
741 * DynamicMethod.cs (AddRef): Reserve every second ref slot for use by the
744 2005-08-05 Gert Driesen <drieseng@users.sourceforge.net>
746 * AssemblyBuilder.cs: Implement _AssemblyBuilder, CA fixes to
747 correspond with MS.NET
748 * ConstructorBuilder.cs: Implement _ConstructorBuilder, CA fixes to
749 correspond with MS.NET
750 * CustomAttributeBuilder.cs: Implement _CustomAttributeBuilder, CA
751 fixes to correspond with MS.NET
752 * EnumBuilder.cs: Implement _EnumBuilder, CA fixes to correspond with
754 * EventBuilder.cs: Implement _EventBuilder, CA fixes to correspond
756 * FieldBuilder.cs: Implement _FieldBuilder, CA fixes to correspond
758 * LocalBuilder.cs: Implement _LocalBuilder, CA fixes to correspond
760 * MethodBuilder.cs: Implement _MethodBuilder, CA fixes to correspond
762 * MethodRental.cs: CA fixes to correspond with MS.NET, implemented
764 * ModuleBuilder.cs: Implement _ModuleBuilder, CA fixes to correspond
766 * ILGenerator.cs: Implement _ILGenerator, CA fixes to correspond
768 * ParameterBuilder.cs Implement _ParameterBuilder, CA fixes to
769 correspond with MS.NET
770 * PropertyBuilder.cs: Implement _PropertyBuilder, CA fixes to
771 correspond with MS.NET
772 * SignatureHelper.cs: Implement _SignatureHelper, CA fixes to
773 correspond with MS.NET
774 * TypeBuilder.cs: Implement _TypeBuilder, CA fixes to correspond
777 2005-07-21 Jb Evain <jbevain@gmail.com>
779 * ILGenerator.cs: Implement filter blocks support.
782 2005-07-21 Zoltan Varga <vargaz@freemail.hu>
784 * ILGenerator.cs (BeginFaultBlock): Call InternalEndClause () here
785 too. Reported by Jeroen Frijters.
787 2005-07-11 Martin Baulig <martin@ximian.com>
789 * TypeBuilder.cs (TypeBuilder.CreateType): Call
790 create_generic_class() here as well; fixes #75454.
792 2005-06-27 Marek Safar <marek.safar@seznam.cz>
794 * TypeBuilder.cs (check_name): Wrong exception argument order.
796 2005-06-14 Sebastien Pouliot <sebastien@ximian.com>
798 * AssemblyBuilder.cs: Override UnprotectedGetName to set the public
801 2005-06-12 Gert Driesen <drieseng@users.sourceforge.net>
803 * MethodBuilder.cs: In CreateMethodBody, throw
804 ArgumentOutOfRangeException instead of ArgumentException when count
805 is not within range of array. Do not allow zero length method body
806 to be emitted when using 2.0 profile. Fixes bug #75236.
808 2005-06-12 Gert Driesen <drieseng@users.sourceforge.net>
810 * FieldBuilder.cs: FieldBuilder.FieldHandle should throw
811 NotSupportedException to match MS.NET (both 1.x and 2.x).
812 Fixes regression introduced in r45750.
813 * MethodBuilder.cs: MethodBuilder.MethodHandle should throw
814 NotSupportedException to match MS.NET (both 1.x and 2.x).
815 Fixes regression introduced in r45750.
817 2005-06-09 Kamil Skalski <nazgul@nemerle.org>
818 * ConstructorBuilder.cs FieldBuilders.cs MethodBuilder.cs: Return
819 RuntimeHandles when requested
821 * TypeBuilder.cs: Add static Get{Method,Constructor,Field} methods
822 from .NET 2.0 beta 2 API for obtaining instanciated *Info objects
823 from non-instanciated counterparts
825 2005-06-08 Zoltan Varga <vargaz@freemail.hu>
827 * ConstructorBuilder.cs FieldBuilder.cs MethodBuilder.cs PropertyBuilder.cs:
828 Add 2.0 Module property.
830 * *.cs: Updates for net 2.0 beta 2.
832 2005-06-07 Zoltan Varga <vargaz@freemail.hu>
834 * *Token.cs: Add net 2.0 Equals methods.
836 * *.cs: Updates for net 2.0 beta 2.
838 * *.cs: Updates for net 2.0 beta 2.
840 2005-06-06 Zoltan Varga <vargaz@freemail.hu>
842 * AssemblyBuilder.cs: Update after PortableExecutableKinds name change.
844 2005-06-03 Zoltan Varga <vargaz@freemail.hu>
846 * MethodBuilder.cs CustomAttributeBuilder.cs: Rework DllImportAttribute
847 decoding to improve compatibility with MS.NET.
849 * MethodBuilder.cs (SetCustomAttribute): Set PinvokeImpl attribute if
850 a DllImportAttribute is present.
852 2005-06-02 Zoltan Varga <vargaz@freemail.hu>
854 * MethodBuilder.cs (SetCustomAttribute): Handle the case when the
855 calling convention inside the DllImportAttribute is empty.
857 2005-06-01 Zoltan Varga <vargaz@freemail.hu>
859 * MethodBuilder.cs (SetCustomAttribute): Handle DllImportAttribute
862 * CustomAttributeBuilder.cs: Add a decode_cattr helper method.
864 2005-05-27 Vladimir Vukicevic <vladimir@pobox.com>
866 * MethodBuilder.cs: Add extra_flags field to encode P/Invoke
867 bits that can't be specified via MethodBuilder directly; fixes
870 2005-05-25 Zoltan Varga <vargaz@freemail.hu>
872 * GenericTypeParameterBuilder.cs: Return this in UnderlyingSystemType.
874 2005-05-25 Lluis Sanchez Gual <lluis@novell.com>
876 * ModuleBuilder.cs: Implemented DefineDocument(). Generate debug
877 info when saving the module.
878 * ILGenerator.cs: Keep marked sequence points in a list.
879 Added a GenerateDebugInfo method, which dumps the info collected
880 during code generation.
882 * ConstructorBuilder.cs:
883 * MethodBuilder.cs: Added method for generating debug info.
884 * LocalBuilder.cs: Added StartOffset and EndOffset properties.
885 * CustomAttributeBuilder.cs: Use IsInstanceOfType instead of
886 IsAssignableFrom when possible.
888 2005-05-20 Miguel de Icaza <miguel@novell.com>
890 * TypeBuilder.cs (UnderlyingSystemType): should always return this
891 according to Zoltan. Old code left there, but should probably be removed.
893 2005-05-13 Zoltan Varga <vargaz@freemail.hu>
895 * MethodBuilder.cs (fixup): Take into account CreateMethodBody as
898 * ConstructorBuilder.cs MethodBuilder.cs: Check that elements of
899 parameterTypes are not null. Fixes #74928.
901 2005-05-12 Zoltan Varga <vargaz@freemail.hu>
903 * ConstructorBuilder.cs MethodBuilder.cs (fixup): Fix this.
905 * ConstructorBuilder.cs MethodBuilder.cs (fixup): Throw an exception if a
906 method body is empty. Fixes #74906.
908 2005-04-13 Marek Safar <marek.safar@seznam.cz>
910 * TypeBuilder.cs (SetCustomAttribute): StructLayoutAttribute.CharSet
911 has to overwrite current settings.
913 2005-04-05 Sebastien Pouliot <sebastien@ximian.com>
915 * AssemblyBuilder.cs: Don't call GetCurrentDirectory if building an
916 assembly that will never be serialized to disk (because CAS may not
917 allow disk access but still allow generating a in-memory assembly).
919 2005-03-24 Miguel de Icaza <miguel@novell.com>
921 * DynamicMethod.cs (CreateDelegate): Add second overload based on
922 the first one that allows for a `target' argument.
924 2005-03-24 Sebastien Pouliot <sebastien@ximian.com>
926 * MethodRental.cs: Added Demand for UnmanagedCode on SwapMethodBody
929 2005-03-16 Zoltan Varga <vargaz@freemail.hu>
931 * MethodBuilder.cs: Add internal BestFitMapping and
932 ThrowOnUnmappableChar properties used by mcs.
934 2005-03-09 Marek Safar <marek.safar@seznam.cz>
936 * ILGenerator.cs (DeclareLocal): Throw an exception for null argument.
938 2005-03-01 Zoltan Varga <vargaz@freemail.hu>
940 * CustomAttributeBuilder.cs UnmanagedMarshal.cs: Allow sizeConst and
941 sizeParamIndex to be -1, which means they are not given.
943 * CustomAttributeBuilder.cs (get_umarshal): Only call the internal
944 LPArray creation method if sizeConst of sizeParamIndex is given.
946 * UnmanagedMarshal.cs: Add has_size field.
948 2005-02-28 Zoltan Varga <vargaz@freemail.hu>
950 * CustomAttributeBuilder.cs (get_umarshal): Marshal sizeConst and
951 sizeParamIndex fields as well.
953 * UnmanagedMarshal.cs: Add param_num field and a new internal creation
954 method which sets it.
956 2005-02-11 Zoltan Varga <vargaz@freemail.hu>
958 * TypeBuilder.cs (IsAssignableTo): New helper method. Fixes #70838.
960 * TypeBuilder.cs: Fix warning.
962 2005-01-21 Rafael Teixeira <rafaelteixeirabr@hotmail.com>
964 * MethodBuilder.cs, TypeBuilder: missing 'params' in some method signature
965 patch by Kamil Skalski <nazgul@nemerle.org>
967 2005-01-18 Geoff Norton <gnorton@customerdna.com>
969 * ModuleBuilder.cs: Interfaces should have null BaseType.
972 2005-01-18 Miguel de Icaza <miguel@ximian.com>
974 * TypeBuilder.cs: Add check for creation. Fix from Geoff.
976 2004-12-16 Zoltan Varga <vargaz@freemail.hu>
978 * CustomAttributeBuilder.cs: Fix a warning.
980 Wed Dec 15 11:34:13 CET 2004 Paolo Molaro <lupus@ximian.com>
982 * ModuleBuilder.cs, EnumBuilder.cs: actually add the enumbuilder
983 to the type list of the module (bug#70488).
985 2004-12-09 Martin Baulig <martin@ximian.com>
987 * GenericTypeParameterBuilder.cs
988 (GenericTypeParameterBuilder.IsValueType): Fixed the FIXME.
990 2004-12-08 Zoltan Varga <vargaz@freemail.hu>
992 * AssemblyBuilder.cs: Move corlib_internal field here from Assembly.
994 * AssemblyBuilder.cs: Add corlib_internal to the ctor parameters.
996 2004-12-06 Ben Maurer <bmaurer@ximian.com>
998 * TypeBuilder.cs (CreateType): Creating a type twice does not
1001 2004-11-22 Zoltan Varga <vargaz@freemail.hu>
1003 * ModuleBuilder.cs: Check that all types inside the module are created.
1006 2004-11-13 Ben Maurer <bmaurer@ximian.com>
1008 * ModuleBuilder.cs (Save): Use new WriteToFile icall.
1010 2004-11-04 Zoltan Varga <vargaz@freemail.hu>
1012 * TypeBuilder.cs: Make some members work if the type is created since
1015 2004-10-30 Zoltan Varga <vargaz@freemail.hu>
1017 * CustomAttributeBuilder.cs: Check that arguments are not
1018 multi-dimensional arrays.
1020 2004-10-12 Martin Baulig <martin@ximian.com>
1022 * TypeBuilder.cs (TypeBuilder.setup_generic_class): Renamed to
1023 create_generic_class() and added a new setup_generic_class().
1024 (TypeBuilder.DefineGenericParameters): Call setup_generic_class()
1025 before creating the type parameters.
1027 2004-10-11 Martin Baulig <martin@ximian.com>
1029 * TypeBuilder.cs (TypeBuilder.generic_container): New private field.
1031 * MethodBuilder.cs (MethodBuilder.generic_container): New private field.
1033 * GenericTypeParameterBuilder.cs
1034 (GenericTypeParameterBuilder.GetGenericTypeParameterConstraints):
1035 Return `Type.EmptyTypes' instead of an array of `typeof (object)'.
1037 2004-10-08 Zoltan Varga <vargaz@freemail.hu>
1039 * ModuleBuilder.cs: Create global type after creation.
1041 2004-10-06 Zoltan Varga <vargaz@freemail.hu>
1043 * ModuleBuilder.cs (GetTypes): Fix length of returned array. Fixes
1046 2004-10-04 Zoltan Varga <vargaz@freemail.hu>
1048 * ModuleBuilder.cs (DefineType): Check for duplicate type names. Fixes
1051 2004-10-03 Zoltan Varga <vargaz@freemail.hu>
1053 * AssemblyBuilderAccess.cs: Remove [Flags].
1055 * PackingSize.cs: Add new 2.0 members. Remove [Flags].
1057 * AssemblyBuilder.cs: Add net 2.0 Save method.
1059 * LocalBuilder.cs: Make this inherit from LocalVariableInfo under
1060 net 2.0. Reorganize fields so the layout visible to the runtime is the
1061 same under 1.0 and 2.0. Add 2.0 properties.
1063 2004-10-02 Gert Driesen <drieseng@users.sourceforge.net>
1065 * TypeBuilder.cs: throw NotSupportedException when defining default
1066 ctor if parent type does not have default ctor
1068 2004-09-30 Zoltan Varga <vargaz@freemail.hu>
1070 * TypeBuilder.cs: Make 'created' field visible to the runtime.
1072 2004-09-28 Martin Baulig <martin@ximian.com>
1074 * GenericTypeParameterBuilder.cs
1075 (GenericTypeParameterBuilder.ContainsGenericParameters): Return
1076 true here; System.Type.ContainsGenericParameters returns true when
1077 called on a type parameter, so let's do the same here.
1079 2004-09-27 Zoltan Varga <vargaz@freemail.hu>
1081 * ConstructorBuilder.cs: Add 2.0 GetILGenerator(size) method.
1083 2004-09-26 Zoltan Varga <vargaz@freemail.hu>
1085 * UnmanagedMarshal.cs: Add ToMarshalAsAttribute method.
1087 2004-09-25 Zoltan Varga <vargaz@freemail.hu>
1089 * TypeBuilder.cs: Add IsCreated method.
1091 2004-09-24 Zoltan Varga <vargaz@freemail.hu>
1093 * FieldBuilder.cs: Add dummy GetFieldOffset method.
1095 2004-09-24 Martin Baulig <martin@ximian.com>
1097 * GenericTypeParameterBuilder.cs
1098 (GenericTypeParameterBuilder.GetGenericParameterConstraints): Override.
1100 2004-09-23 Zoltan Varga <vargaz@freemail.hu>
1102 * DynamicMethod.cs: Add MetadataToken property and tweak Module property.
1104 2004-09-23 Martin Baulig <martin@ximian.com>
1106 * GenericTypeParameterBuilder.cs
1107 (GenericTypeParameterBuilder.SetGenericParameterAttributes): New
1108 public method, replaces the old Mono_* hacks.
1110 2004-09-20 Sebastien Pouliot <sebastien@ximian.com>
1112 * AssemblyBuilder.cs: Fixed assembly-level permissions. I don't know
1113 why I splitted them all into individual entries when only a single set
1114 is accepted for each security action :(.
1116 2004-09-17 Zoltan Varga <vargaz@freemail.hu>
1118 * CustomAttributeBuilder.cs: Applied patch from Marcus Urban
1119 (mathpup@mylinuxisp.com). Add support for defining custom
1120 marshallers by calling SetCustomAttribute.
1122 2004-09-16 Sebastien Pouliot <sebastien@ximian.com>
1124 * AssemblyBuilder.cs: Keep a copy of the 3 permission set as an array
1125 of RefEmitPermissionSet. This will allow to reuse existing
1126 functionalities already present in the runtime.
1128 2004-09-12 Marek Safar <marek.safar@seznam.cz>
1130 * TypeBuilder.cs: Do not create default constructor for
1133 2004-09-09 Zoltan Varga <vargaz@freemail.hu>
1135 * TypeBuilder.cs: Set the table_idx of the global type to 1.
1137 * ModuleBuilder.cs: Save the main module of the assembly even if it is
1140 2004-09-02 Ben Maurer <bmaurer@users.sourceforge.net>
1142 * LocalBuilder.cs: another s.ioe
1144 2004-09-02 Ben Maurer <bmaurer@users.sourceforge.net>
1146 * ModuleBuilder.cs: dont throw an S.IOE for debugging stuff.
1149 2004-09-02 Martin Baulig <martin@ximian.com>
1151 * MethodBuilder.cs (MethodBuilder.GetParameters): Throw a
1152 NotSupportedException() until the type has been fully created.
1154 2004-09-01 Martin Baulig <martin@ximian.com>
1156 * IMonoSymbolWriter.cs: Removed.
1158 * ModuleBuilder.cs, LocalBuilder.cs, ILGenerator.cs: Removed the
1161 2004-08-13 Sebastien Pouliot <sebastien@ximian.com>
1163 * AssemblyBuilder.cs: (Partly) Fix delay-signing issue (#56621) when
1164 MCS is used on the MS runtime (other part of the fix is for MCS).
1166 2004-08-11 Marek Safar <marek.safar@seznam.cz>
1168 * AssemblyBuilder.cs: Added AddPermissionRequests method
1169 used be mcs for SecurityPermissionAttribute handling.
1171 2004-08-08 Zoltan Varga <vargaz@freemail.hu>
1173 * EnumBuilder.cs: Call setup_enum_type () in the constructor. Fixes
1176 2004-08-07 Jackson Harper <jackson@ximian.com>
1178 * AssemblyBuilder.cs: "neutral" culture is invariant culture
1181 2004-08-07 Atsushi Enomoto <atsushi@ximian.com>
1183 * OpCodes.cs : csc complains CS1034 Line cannot exceed 2046 characters.
1185 2004-08-05 Duncan Mak <duncan@ximian.com>
1187 * OpCodes.cs (TakesSingleByteArgument): Add this back.
1189 2004-08-05 Duncan Mak <duncan@ximian.com>
1191 This patch is based on an idea of Ben's to reduce the code size
1194 * OpCodes.cs: Instead pushing the data onto the stack when each
1195 OpCode is initialized, pack the data into 2 ints and store only
1196 that. Furthermore, the names of each OpCode are stored in a
1197 separate string array in the new OpCodeNames class.
1199 * OpCodeNames.cs: The names of each OpCode are moved here to delay
1200 the initialization of the strings, as they are not used frequently.
1202 * OpCode.cs: Rewrote this to take in everything as 2 ints.
1204 2004-07-29 Martin Baulig <martin@ximian.com>
1206 * ILGenerator.cs (ILGenerator.Mono_GetCurrentOffset): New static
1209 * ModuleBuilder.cs (ModuleBuilder.Mono_GetGuid): New static
1212 2004-07-24 Martin Baulig <martin@ximian.com>
1214 * TypeBuilder.cs (TypeBuilder.UnspecifiedTypeSize): Set this to 0
1215 and initialize it to 0 everywhere.
1217 2004-07-22 Martin Baulig <martin@ximian.com>
1219 * ILGenerator.cs (ILGenerator.BeginFaultBlock): Implemented.
1221 2004-07-07 Miguel de Icaza <miguel@ximian.com>
1223 * LocalBuilder.cs: Remove MakePinned, we are now going to use
1224 ILGenerator.DeclaraLocal that takes the `bool pinned' argument.
1226 * ILGenerator.cs (DeclareLocal): Add `pinned' version of the
1227 method on the 2.0 profile.
1229 2004-07-02 Zoltan Varga <vargaz@freemail.hu>
1231 * EnumBuilder.cs (CreateType): Call a new icall to set the internal
1232 type field. Fixes #59833.
1234 Thu Jun 24 15:33:04 CEST 2004 Paolo Molaro <lupus@ximian.com>
1236 * ParameterBuilder.cs: implement SetConstant ().
1238 Wed Jun 23 15:40:48 CEST 2004 Paolo Molaro <lupus@ximian.com>
1240 * TypeBuilder.cs: handle properly the case when SetParent()
1241 is called (requires an updated runtime, too bug#60474).
1243 Wed Jun 23 14:20:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
1245 * EnumBuilder.cs, TypeBuilder.cs: patch from Gert Driesen
1246 to implement EnumBuilder (slightly tweaked).
1248 2004-06-15 Gert Driesen <drieseng@users.sourceforge.net>
1250 * MethodRental.cs: fixed value of JitOnDemand
1252 2004-06-09 Gert Driesen <drieseng@users.sourceforge.net>
1254 * FieldBuilder.cs: fixed implementation to match MS.NET,
1255 meaning throw InvalidOperationException for methods that
1256 should not be allowed to execute when type has been
1257 created, and throw NotSupportedException for methods and
1258 properties that should not be called on FieldBuilder
1260 2004-06-09 Gert Driesen <drieseng@users.sourceforge.net>
1262 * MethodBuilder.cs: move check to see if type has already
1263 been created up, to match MS.NET behaviour. Fix GetHashCode
1266 2004-06-09 Gert Driesen <drieseng@users.sourceforge.net>
1268 * MethodRental.cs: Added check for method size
1270 2004-06-08 Martin Baulig <martin@ximian.com>
1272 * ILGenerator.cs (TokenGenerator.GetToken): Added overloaded
1273 version which takes a MethodInfo and a Type[].
1274 (IlGenerator.EmitCall): When emitting a call to a varargs method,
1275 use the new GetToken() to pass the optional argument types to the
1278 * ModuleBuilder.cs (ModuleBuilder.getMethodToken): New interncall.
1280 2004-05-29 Gert Driesen (drieseng@users.sourceforge.net)
1282 * AssemblyBuilder.cs: removed extra method, fixes public API
1283 compatibility with MS.NET
1284 * TypeBuilder.cs: removed extra method, fixes public API
1285 compatibility with MS.NET
1287 2004-05-28 Jackson Harper <jackson@ximian.com>
1289 * CustomAttributeBuilder.cs: GetBlob now takes a ref to the
1290 assembly so it can encode type names properly.
1292 2004-05-25 Sebastien Pouliot <sebastien@ximian.com>
1294 * MethodBuilder.cs: Now use FastNewGuidArray to create new random
1295 Guids without using CryptoConfig. Speed up for MCS.
1297 2004-05-14 Zoltan Varga <vargaz@freemail.hu>
1299 * MethodBuilder.cs: Add Equals and GetHashCode.
1301 * TypeBuilder.cs: Add IsSubclassOf.
1303 2004-05-13 Zoltan Varga <vargaz@freemail.hu>
1305 * AssemblyBuilder.cs: Make extra methods internal. mcs was changed
1306 to handle this a long time ago.
1308 * TypeBuilder.cs: Add IsAssignableFrom and IsInstanceOfType.
1310 * TypeBuilder.cs MethodBuilder.cs ConstructorBuilder.cs: Implement
1313 * TypeBuilder.cs (ToString): Make this consistent with MS.NET.
1315 2004-05-11 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1317 * OpCodes.cs: Refactored to avoid the static constructor
1319 2004-05-10 Gert Driesen (drieseng@users.sourceforge.net)
1320 * AssemblyBuilder.cs: fixed warning
1321 * MethodRental.cs: added private default ctror to match MS.NET
1323 2004-05-03 Lluis Sanches Gual <lluis@ximian.com>
1325 * ModuleBuilder.cs: Use name const to load the debugger assembly.
1327 2004-05-01 Todd Berman <tberman@sevenl.net>
1329 * ModuleBuilder.cs: Load the proper assembly for a gac-only install.
1331 2004-04-29 Ben Maurer <bmaurer@users.sourceforge.net>
1333 * ILGenerator.cs, ModuleBuilder.cs: readonlyificate.
1335 2004-04-28 Zoltan Varga <vargaz@freemail.hu>
1337 * MethodRental.cs: New file.
1339 2004-04-28 Raja R Harinath <rharinath@novell.com>
1341 * TypeBuilder.cs (SetCustomAttribute): Handle the presence of the
1342 full type name in the data stream. This is emitted for value
1343 types by the Mono runtime.
1345 2004-04-23 Atsushi Enomoto <atsushi@ximian.com>
1347 * ConstructorBuilder.cs, DynamicMethod.cs, EnumBuilder.cs,
1348 GenericTypeParameterBuilder.cs, MethodBuilder.cs, ModuleBuilder.cs,
1349 OpCodes.cs, TypeBuilder.cs :
1350 The fix should be easier ;)
1352 2004-04-23 Atsushi Enomoto <atsushi@ximian.com>
1354 * ConstructorBuilder.cs, DynamicMethod.cs, EnumBuilder.cs,
1355 GenericTypeParameterBuilder.cs, MethodBuilder.cs, ModuleBuilder.cs,
1356 OpCodes.cs, TypeBuilder.cs :
1357 NET_2_0 related build fix.
1359 2004-04-07 Martin Baulig <martin@ximian.com>
1361 * GenericTypeParameterBuilder.cs
1362 (Mono_SetReferenceTypeConstraint): New public method.
1363 (Mono_SetValueTypeConstraint): New public method.
1365 2004-04-07 Bernie Solomon <bernard@ugsolutions.com>
1367 * MethodBuilder.cs, TypeBuilder.cs: always have
1368 slot for generic_params for consistent offsets.
1370 2004-04-07 Martin Baulig <martin@ximian.com>
1372 * GenericTypeParameterBuilder.cs
1373 (Mono_SetConstructorConstraint): New public method.
1375 2004-04-07 Martin Baulig <martin@ximian.com>
1377 * GenericTypeParameterBuilder.cs: New file.
1379 * TypeBuilder.cs (TypeBuilder.DefineGenericParameters): New public
1380 method. This is the new public API.
1381 (TypeBuilder.DefineGenericParameter): Removed.
1382 (TypeBuilder.SetGenericParameterConstraints): Removed.
1384 * MethodBuilder.cs (MethodBuilder.DefineGenericParameters): New public
1385 method. This is the new public API.
1386 (MethodBuilder.DefineGenericParameter): Removed.
1387 (MethodBuilder.SetGenericParameterConstraints): Removed.
1389 2004-04-01 Martin Baulig <martin@ximian.com>
1391 * OpCodes.cs (OpCodes.Constrained): New opcode.
1393 2004-04-01 Ben Maurer <bmaurer@users.sourceforge.net>
1395 * LocalBuilder.cs: Fix pinned support.
1397 2004-03-30 Martin Baulig <martin@ximian.com>
1399 * TypeBuilder.cs (TypeBuilder.SetGenericParameterConstraints):
1400 Added `bool has_ctor_constraint' argument.
1402 * MethodBuilder.cs (MethodBuilder.SetGenericParameterConstraints):
1403 Added `bool has_ctor_constraint' argument.
1405 2004-03-29 Ben Maurer <bmaurer@users.sourceforge.net>
1407 * LocalBuilder.cs: pinned support.
1409 2004-03-29 Martin Baulig <martin@ximian.com>
1411 * TypeBuilder.cs (TypeBuilder.ContainsGenericParameters): Implemented.
1413 2004-03-25 Sebastien Pouliot <sebastien@ximian.com>
1415 * AssemblyBuilder.cs: Changed strongname support to match MS
1416 implementation (i.e. attributes are used by the compiler - not by
1419 2004-03-24 Zoltan Varga <vargaz@freemail.hu>
1421 * TypeBuilder.cs (GetMethod): Implement.
1423 * CustomAttributeBuilder.cs: Reenable argument checking with MS.NET
1424 compatibility tweaks.
1426 2004-03-23 Martin Baulig <martin@ximian.com>
1428 * TypeBuilder.cs (TypeBuilder.GetEvents_internal): New internal
1429 method; this is basically GetEvents(), but see the FIXME in that method.
1431 2004-03-23 Zoltan Varga <vargaz@freemail.hu>
1433 * CustomAttributeBuilder.cs: Disable argument checking since it causes
1436 2004-03-22 Zoltan Varga <vargaz@freemail.hu>
1438 * CustomAttributeBuilder.cs (Initialize): Add more argument checking.
1441 2004-03-09 Jackson Harper <jackson@ximian.com>
1443 * CustomAttributeBuilder.cs: Add some argument checking. Handle
1444 default arguments properly.
1446 2004-03-09 Sebastien Pouliot <spouliot@videotron.ca>
1448 * AssemblyBuilder.cs: The strong name key file existance will now be
1449 checked in the current compilation directory AND in the assembly
1450 output directory. Fix bugzilla entry #55320.
1452 2004-02-23 Martin Baulig <martin@ximian.com>
1454 * MethodBuilder.cs (MethodBuilder.SetGenericMethodSignature):
1455 Added MethodAttributes and CallingConventions arguments.
1457 2004-02-02 Zoltan Varga <vargaz@freemail.hu>
1459 * TypeBuilder.cs: Implement DefineUninitializedData and
1460 AddDeclarativeSecurity.
1462 2004-01-27 Zoltan Varga <vargaz@freemail.hu>
1464 * AssemblyBuilder.cs (SetCustomAttribute): Move the reading of the
1465 keyfile to the Save () method.
1467 2004-01-26 Sebastien Pouliot <spouliot@videotron.ca>
1469 * AssemblyBuilder.cs: Save will now strongname the assembly is (a) a
1470 StrongName is present and (b) the signature isn't delayed.
1472 2004-01-24 David Sheldon <dave-mono@earth.li>
1474 * AssemblyBuilder.cs: Added override for GetFiles() that throws
1475 NotSupportedException.
1477 2004-01-15 Zoltan Varga <vargaz@freemail.hu>
1479 * AssemblyBuilder.cs (Save): Handle entry points with an int return
1482 * AssemblyBuilder.cs (Save): If the entry point is in a module, create
1483 a new entry point which calls the real one, since the entry point must
1484 be in the module which contains the manifest.
1486 * ModuleBuilder.cs (Save): Create the global type automatically if not
1489 2004-01-13 Zoltan Varga <vargaz@freemail.hu>
1491 * AssemblyBuilder.cs (DefineVersionInfoResource): Set more
1492 version info properties.
1494 2004-01-08 Zoltan Varga <vargaz@freemail.hu>
1496 * CustomAttributeBuilder.cs (string_arg): New helper method.
1498 * AssemblyBuilder.cs (DefineVersionInfoResource): Implement.
1500 * AssemblyBuilder.cs (SetCustomAttribute): Use the new helper method.
1502 * AssemblyBuilder.cs (DefineUnmanagedResource): Implement.
1504 * AssemblyBuilder.cs (DefineIconResource): New internal method to
1507 * TypeBuilder.cs (IsDefined): Implement this, since some corlib classes
1508 make calls to IsDefined.
1510 2004-01-06 Zoltan Varga <vargaz@freemail.hu>
1512 * AssemblyBuilder.cs: Fix warning.
1514 2004-01-05 Zoltan Varga <vargaz@freemail.hu>
1516 * AssemblyBuilder.cs (DefineVersionInfoResource): Implement.
1518 2003-12-29 Ben Maurer <bmaurer@users.sourceforge.net>
1520 * MethodBuilder.cs, ConstructorBuilder.cs: Override GetParameterCount.
1521 * ILGenerator.cs: Use GetParameterCount.
1523 2003-12-20 Zoltan Varga <vargaz@freemail.hu>
1525 * AssemblyBuilder.cs (AddModule): New internal method to support
1528 2003-12-19 Zoltan Varga <vargaz@freemail.hu>
1530 * AssemblyBuilder.cs: New internal property to support /target:module in
1533 2003-12-18 Zoltan Varga <vargaz@freemail.hu>
1535 * ILGenerator.cs: Applied patch from Ben Maurer
1536 (bmaurer@users.sourceforge.net). Allocate arrays holding label data
1537 lazily and reduce their size.
1539 2003-12-17 Zoltan Varga <vargaz@freemail.hu>
1541 * AssemblyBuilder.cs (MonoResource): New 'offset' field used by the
1544 * ModuleBuilder: Implement DefineResource.
1546 2003-12-15 Zoltan Varga <vargaz@freemail.hu>
1548 * AssemblyBuilder.cs (RefEmitPermissionSet): New helper structure.
1550 * MethodBuilder.cs (AddDeclarativeSecurity): Implement.
1552 * ConstructorBuilder.cs (AddDeclarativeSecurity): Ditto.
1554 2003-12-10 Zoltan Varga <vargaz@freemail.hu>
1556 * MethodBuilder.cs: Add stubs for missing methods.
1558 * TypeBuilder.cs (GetEvents): Add new override.
1560 * ModuleBuilder.cs: Implement some missing methods, add stubs for others.
1562 * AssemblyBuilder.cs (GetFiles): Get rid of unneccessary override.
1564 * AssemblyBuilder.cs (ImageRuntimeVersion): Add override to keep
1565 signature compatibility with MS.NET.
1567 * TypeBuilder.cs (MemberType): Get rid of unneccessary override.
1569 2003-12-08 Martin Baulig <martin@ximian.com>
1571 * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Removed; use the
1572 new `MonoGenericParam' class instead (in S.R/MonoGenericInst.cs).
1574 2003-12-08 Zoltan Varga <vargaz@freemail.hu>
1576 * ModuleBuilder.cs: Double the size of the types array during insertion
1577 do avoid excessive memory allocation and copying. Track the number of
1578 types in a separate variable.
1580 * TypeBuilder.cs: Same for the 'fields' and 'methods' arrays.
1582 2003-12-03 Zoltan Varga <vargaz@freemail.hu>
1584 * ModuleBuilder.cs (DefinePInvokeMethod): Implement.
1586 * ModuleBuilder.cs (DefineGlobalMethod): Implement the Net 1.2 variants.
1588 2003-11-28 Dick Porter <dick@ximian.com>
1590 * ModuleBuilder.cs: Do string compares with the Invariant culture.
1592 2003-11-28 Zoltan Varga <vargaz@freemail.hu>
1594 * AssemblyBuilder.cs (SetCustomAttribute): Implement automatic
1595 generation of build and revision numbers. Fixes #46492.
1597 2003-11-25 Zoltan Varga <vargaz@freemail.hu>
1599 * TypeBuilder.cs: Implement GetField.
1601 2003-11-24 Zoltan Varga <vargaz@freemail.hu>
1603 * DynamicMethod.cs: New class.
1605 * ILGenerator.cs MethodBuilder.cs ConstructorBuilder.cs: Retrieve
1606 tokens from a token generator object instead of from the ModuleBuilder,
1607 to support the implementation of DynamicMethod. Also get rid of the
1608 unused 'mbuilder' field.
1610 * ModuleBuilder.cs: Create a token generator object which can be
1611 passed to ILGenerator.
1613 * LocalBuilder.cs ILGenerator.cs: Get rid of 'module' field, obtain
1614 needed objects from the ilgen object instead.
1616 2003-11-21 Zoltan Varga <vargaz@freemail.hu>
1618 * TypeBuilder.cs FieldBuilder.cs MethodBuilder.cs ConstructorBuilder.cs: Add support for custom modifiers from NET 1.2.
1620 * ILGenerator.cs: Remove unused abuilder member.
1622 2003-11-19 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1624 * OpCodes.cs: Remove Boxval for v1.1+
1626 2003-11-19 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
1628 * OpCodes.cs: Small rearrange to fix csc compiler warning about obsolete member used
1630 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
1632 * AssemblyBuilderAccess.cs PackingSize: Add [Flags].
1634 * AssemblyBuilder.cs (DefineDynamicModule): Make internal method
1637 * AssemblyBuilder.cs (Save): Write out the main module at the end.
1639 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
1641 * ConstructorBuilder.cs (.ctor): Automatically add RTSpecialName flag
1644 2003-11-06 Martin Baulig <martin@ximian.com>
1646 * ModuleBuilder.cs (ModuleBuilder.Save): Call `build_metadata'
1647 before writing the symbol file.
1649 2003-11-06 Zoltan Varga <vargaz@freemail.hu>
1651 * AssemblyBuilder.cs (.ctor): Initialize the 'dir' field to something
1654 * AssemblyBuilder.cs (Save): Set 'created' flag.
1656 * AssemblyBuilder.cs (get_next_table_index): Moved to ModuleBuilder,
1657 since table indexes are per-module.
1659 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
1661 * TypeBuilder.cs (DefineDefaultConstructor): Pass an array instead of
1662 null to DefineConstructor, to avoid NullReferenceExceptions in the
1665 * AssemblyBuilder.cs ModuleBuilder.cs ILGenerator.cs: Move getUSIndex
1666 and getToken methods, and the associated icalls to ModuleBuilder,
1667 since tokens are per-module.
1669 * AssemblyBuilder.cs ModuleBuilder.cs: Partially revert the previous
1670 patch, since having the 'is_main' field is useful in the unmanaged
1673 * AssemblyBuilder.cs ModuleBuilder.cs: Move the metadata creation and
1674 file creation logic to ModuleBuilder:Save (), since this needs to be
1675 done for every module. Also move the corresponding icalls to
1678 2003-11-03 Zoltan Varga <vargaz@freemail.hu>
1680 * AssemblyBuilder.cs ModuleBuilder.cs: First steps toward a fix for
1681 #48700 (proper module support in Ref.Emit). Remove is_main field from
1682 ModuleBuilder and add a mainModule field to AssemblyBuilder instead.
1683 This is neccesary, since the main module is determined during the
1684 Save () call: the module with the same file name as the assembly is
1685 the main module. Also create a default main module, if one is not
1688 2003-11-03 Martin Baulig <martin@ximian.com>
1690 * OpCodes.cs: Added Ldelem_Any, Stelem_Any and Unbox_Any from .NET 1.2.
1692 2003-10-18 Sebastien Pouliot <spouliot@videotron.ca>
1694 * AssemblyBuilder.cs (SetCustomAttribute): Changed PK extraction to
1695 use Mono.Security.StrongName (#49785).
1697 2003-10-18 Zoltan Varga <vargaz@freemail.hu>
1699 * AssemblyBuilder.cs (SetCustomAttribute): Extract the public key from
1702 2003-10-17 Zoltan Varga <vargaz@freemail.hu>
1704 * AssemblyBuilder.cs (SetCustomAttribute): Ignore empty keyfile name.
1706 * AssemblyBuilder.cs: Moved loading of the public key file into
1707 managed code from reflection.c.
1709 * AssemblyBuilder.cs: Set cultureInfo and version from the AssemblyName
1710 passed to the constructor.
1712 2003-10-13 Martin Baulig <martin@ximian.com>
1714 * MethodBuilder.cs (MethodBuilder): Added
1715 `TypeBuilder.MonoGenericParam[] generic_params' field.
1716 (DefineGenericParameter, SetGenericMethodSignature): New public methods.
1718 * TypeBuilder.cs (DefineGenericMethod): New public method.
1720 2003-10-13 Zoltan Varga <vargaz@freemail.hu>
1722 * OpCode.cs: Fix Value property. Fixes #49328.
1724 2003-10-03 Zoltan Varga <vargaz@freemail.hu>
1726 * TypeBuilder.cs (CreateType): Fire TypeResolve events for unfinished
1727 nested value types. Fixes #47022.
1729 2003-09-29 Zoltan Varga <vargaz@freemail.hu>
1731 * TypeBuilder.cs: Really fix #48695.
1733 Sat Sep 27 16:17:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
1735 * ILGenerator.cs: instance fields are loaded from this.
1737 2003-09-26 Zoltan Varga <vargaz@freemail.hu>
1739 * TypeBuilder.cs (DefineDefaultConstructor): Make this work on types
1740 without a parent. Fixes #48695.
1742 2003-09-17 Martin Baulig <martin@ximian.com>
1744 * TypeBuilder.cs (TypeBuilder.CreateType): Don't append the type
1745 parameters to the type name; ie. use `Stack' instead of `Stack<T>'.
1747 2003-09-06 Martin Baulig <martin@ximian.com>
1749 * TypeBuilder.cs (TypeBuilder.IsUnboundGenericParameter): Implemented.
1751 2003-09-04 Martin Baulig <martin@ximian.com>
1753 * TypeBuilder.cs (TypeBuilder.MonoGenericParam): Make this nested
1754 class internal, not protected.
1756 2003-08-29 Martin Baulig <martin@ximian.com>
1758 * TypeBuilder.cs (TypeBuilder.DefineGenericParameter): New public
1759 method. We can now create generic types.
1760 (TypeBuilder.GetGenericTypeDefinition): Override this; call the
1761 `setup_internal_class' interncall before calling our base impl.
1763 Sat Aug 2 13:04:55 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
1765 * ILGenerator.cs: Emission of doubles now utilise the Double.AssertEndianity
1766 icall to assert double word endianity on ARM.
1768 2003-07-25 Duncan Mak <duncan@ximian.com>
1770 * OpCodes.cs (Boxval): Marked with ObsoleteAttribute.
1772 2003-07-24 Miguel de Icaza <miguel@ximian.com>
1774 * TypeBuilder.cs: Added generics stubs.
1776 * EnumBuilder.cs: Added generics stubs, changed bracing style for
1779 2003-07-23 Duncan Mak <duncan@ximian.com>
1781 * SignatureHelper.cs: This class does not have the
1782 SerializableAttribute.
1784 2003-07-11 Zoltan Varga <vargaz@freemail.hu>
1786 * AssemblyBuilder.cs: Added argument checking to all methods according
1787 to the MSDN docs. Also marked DefineUnmanagedResource and its friends
1789 * ModuleBuilder.cs: Added new property FileName used by AssemblyBuilder.
1790 * ModuleBuilder.cs AssemblyBuilder.cs: Implemented IsTransient ().
1792 2003-06-15 Zoltan Varga <vargaz@freemail.hu>
1794 * EventBuilder.cs: Add argument checking to methods.
1796 Thu Jun 5 20:18:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
1798 * AssemblyBuilder.cs: implemented DefineResource ().
1800 Thu Jun 5 12:36:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
1802 * OpCode.cs: implemented Equals/GetHashCode.
1804 Tue Jun 3 11:14:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
1806 * ILGenerator.cs, OpCode.cs: optimize opcode space usage.
1808 Tue Jun 3 11:13:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
1810 * UnmanagedMarshal.cs: add ability to define custom attributes (the MS
1811 runtime doesn't support this).
1813 2003-05-30 Zoltan Varga <vargaz@freemail.hu>
1815 * TypeBuilder.cs: Implement DefineTypeInitializer.
1817 2003-05-21 Zoltan Varga <vargaz@freemail.hu>
1820 - Implement DefineInitializedData in terms of DefineUninitializedData
1821 - Name the types of global fields $ArrayType$<len> to cut back on the
1822 number of types created
1823 - Add argument checking
1825 2003-05-19 Zoltan Varga <vargaz@freemail.hu>
1827 * AssemblyBuilder.cs: Implement GetDynamicModule. "Implement" various
1828 methods not supported under MS.NET.
1830 2003-05-18 Martin Baulig <martin@ximian.com>
1832 * AssemblyBuilder.cs (corlib_void_type): New internal field.
1833 (SetCorlibTypeBuilders): Added overloaded version which takes 4
1834 arguments to set the `corlib_void_type'.
1836 * TypeBuilder.cs: Use `pmodule.assemblyb.corlib_void_type' instead
1837 of `typeof (void)' to make this work when compiling corlib.
1839 Thu May 15 19:16:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
1841 * MethodBuilder.cs: off by one in CreateMethodBody().
1842 * TypeBuilder.cs: if the return type for a method is null, use void.
1844 2003-04-28 Miguel de Icaza <miguel@ximian.com>
1846 * MethodBuilder.cs: Mono allows the parameter position to be zero
1847 to indicate the "returns:" attribute.
1849 2003-04-20 Miguel de Icaza <miguel@ximian.com>
1851 * ILGenerator.cs (EmitCall): Implement.
1853 Flag a few unimplemented methods with MonoTODO, make coding style
1854 for method definitions Mono consistent.
1856 2003-04-17 Zoltan Varga <vargaz@freemail.hu>
1858 * ILGenerator.cs: Implement EmitWriteLine methods.
1860 * TypeBuilder.cs (CreateType): Avoid creating a default constructor
1861 for the global type.
1863 2003-04-15 Miguel de Icaza <miguel@ximian.com>
1865 * TypeBuilder.cs (DefineDefaultConstructor): Make it generate code
1866 by default for a default constructor. This is what the MS runtime
1867 does. The PythonNet code expected this.
1869 (TypeBuilder.GetConstructorImpl): Implement this.
1871 (TypeBuilder.CreateType): If there are no constructors defined, we
1874 Tue Apr 15 13:50:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
1876 * ModuleBuilder.cs, TypeBuilder.cs: set nesting_type before
1877 calling setup_internal_class ().
1879 2003-03-27 Zoltan Varga <vargaz@freemail.hu>
1881 * AssemblyBuilder.cs: Added 'access' member, which is needed by the
1884 2003-03-26 Zoltan Varga <vargaz@freemail.hu>
1886 * ILGenerator.cs: Implemented ThrowException.
1888 2003-03-10 Zoltan Varga <vargaz@freemail.hu>
1890 * ILGenerator.cs: Propagate maxstack info along branches.
1892 2003-03-06 Zoltan Varga <vargaz@freemail.hu>
1894 * ILGenerator.cs (Emit): Do not pop the arguments off the stack for
1895 ldftn etc. Fixes bug #39196.
1897 2003-02-28 Zoltan Varga <vargaz@freemail.hu>
1899 * ILGenerator.cs (Emit): Add fixup for already created methods and
1900 fields. Do not add fixup for types since their table index do not
1903 2003-02-26 Zoltan Varga <vargaz@freemail.hu>
1905 * TypeBuilder.cs (DefineInitializedData): Removed unnecessary assignments.
1907 * ModuleBuilder.cs (DefineInitializedData): Do not call
1908 TypeBuilder::DefineInitializedData since that would mean defining a
1909 nested type of the global type, which is wrong. Instead define a
1910 new public type as MS does.
1912 * ModuleBuilder.cs (DefineUninitializedData): Ditto.
1914 Thu Feb 13 18:40:52 CET 2003 Paolo Molaro <lupus@ximian.com>
1916 * ModuleBuilder.cs: add the basic initialization call.
1918 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
1920 * AssemblyBuilder.cs: Added basic error checking to some methods
1921 according to the MSDN docs.
1923 2003-02-10 Zoltan Varga <vargaz@freemail.hu>
1925 * ConstructorBuilder.cs:
1926 - Added basic error checking to all methods according to the MSDN docs.
1927 - modified a lot of methods to throw NotSupportedException, to comply
1930 2003-02-09 Zoltan Varga <vargaz@freemail.hu>
1933 - Added basic error checking to all methods according to the MSDN docs.
1934 - fixed AssemblyQualifiedName.
1935 - implemented 'Size'.
1936 - modified a lot of methods to throw NotSupportedException, to comply
1938 - changes tested by running a full bootstrap.
1940 2003-02-09 Martin Baulig <martin@ximian.com>
1942 * AssemblyBuilder.cs (AssemblyBuilder.methods): Removed. This was
1943 a hack for the symbol writer which is no longer needed.
1945 2003-02-09 Martin Baulig <martin@ximian.com>
1947 * IMonoSymbolWriter.cs (DefineNamespace, OpenMethod): New methods.
1949 2003-02-09 Martin Baulig <martin@ximian.com>
1951 * IMonoSymbolWriter.cs (MarkSequencePoint): New method which takes
1952 just the required arguments as scalars, not arrays.
1954 * ILGenerator.cs (ILGenerator.MarkSequencePoint): Use that new
1955 interface method; unnecessarily creating such a large number of
1956 arrays is both slow and too memory consuming.
1958 2003-02-08 Zoltan Varga <vargaz@freemail.hu>
1960 * MethodBuilder.cs: Added error checking to methods so they conform to
1961 MSDN docs. Implemented 'GetModule' and 'CallingConvention' members.
1962 Some other tweaks to improve compatibility with MS .NET.
1964 * TypeBuilder.cs: Added 'is_created' property which will be used for
1965 checking 'type is already created' errors.
1967 2003-02-07 Martin Baulig <martin@ximian.com>
1969 * ModuleBuilder.cs (.ctor): Added `bool IsMainModule' argument.
1970 (Save): New internal method; creates the module's symbol file if
1971 we're compiling with debugging information.
1973 * AssemblyBuilder.cs (EmbedResource): Added internal overloaded
1974 version of this method which takes a `byte[] blob' instead of a file.
1975 (DefineDynamicMethod): If this is the first module, tell the
1976 ModuleBuilder that this is the main module.
1977 (Save): Call a new interncall `build_metadata' to create the final
1978 metadata and save all the symbol files before creating the actual
1981 * IMonoSymbolWriter.cs: New public class; it is in the namespace
1982 Mono.CSharp.Debugger. The Mono symbol writer implements this interface.
1984 2003-02-04 Zoltan Varga <vargaz@freemail.hu>
1986 * AssemblyBuilder.cs: added GetToken (SignatureHelper).
1988 * ILGenerator.cs: implemented EmitCalli() methods
1990 * SignatureHelper.cs: implemented GetMethoSigHelper() methods.
1992 2003-01-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1994 * MethodBuilder.cs: GetBaseDefinition () returns this.
1996 Mon Jan 27 17:07:38 CET 2003 Paolo Molaro <lupus@ximian.com>
1998 * CustomAttributeBuilder.cs, FieldBuilder.cs: applied
1999 (reformatted) patch from "Jerome Laban" <jlaban@wanadoo.fr>
2000 to fix ByValStr and ByValArray encodings.
2002 2003-01-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2004 * AssemblyBuilder.cs: fixed compilation with csc.
2006 2003-01-26 Miguel de Icaza <miguel@ximian.com>
2008 * AssemblyBuilder.cs (Save): Set the executable bit at the end.
2009 This uses a non-official enumeration value to call SetFileAttributes.
2011 2003-01-17 Zoltan Varga <vargaz@freemail.hu>
2013 * MethodBuilder.cs ConstructorBuilder.cs: modify GetParameters() so it
2014 returns information even when the app did not use DefineParameter() to
2015 define the parameters.
2017 * ConstructorBuilder.cs (ctor): allways define SpecialName attribute
2018 for constructors as done by MS.
2020 Mon Jan 13 11:37:14 CET 2003 Paolo Molaro <lupus@ximian.com>
2022 * TypeBuilder.cs, ModuleBuilder.cs: better type name cache.
2024 2003-01-10 Zoltan Varga <vargaz@freemail.hu>
2026 * ILGenerator.cs: Implemented EmitWriteLine(string).
2028 * TypeBuilder.cs (DefineInitializedData): Call DefineNestedType()
2029 instead of DefineType() so the auxiliary types do not pollute the
2030 global namespace. This is consistent with the behaviour of MS .NET.
2032 Fri Jan 10 16:03:30 CET 2003 Paolo Molaro <lupus@ximian.com>
2034 * ILGenerator.cs, MethodBuilder.cs, TypeBuilder.cs,
2035 ConstructorBuilder.cs: some tweaks to reduce memory usage.
2037 Thu Jan 2 18:46:09 CET 2003 Paolo Molaro <lupus@ximian.com>
2039 * ModuleBuilder.cs, TypeBuilder.cs: support global fields and methods.
2041 Thu Dec 19 00:06:57 CET 2002 Paolo Molaro <lupus@ximian.com>
2043 * AssemblyBuilder.cs: remove duplicated user string entries.
2045 2002-12-11 Zoltan Varga <vargaz@freemail.hu>
2047 * FieldBuilder.cs: added 'handle' field which is needed by some new
2048 code in reflection.c.
2050 2002-12-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2052 * TypeBuilder.cs: implemented GetInterfaceMap () when the Type has been
2055 Fri Nov 8 14:53:03 CET 2002 Paolo Molaro <lupus@ximian.com>
2057 * ILGenerator.cs: account for the exception object being passed to the
2058 catch handler to calc max_stack.
2060 2002-09-21 Martin Baulig <martin@gnome.org>
2062 * ModuleBuilder.cs (ModuleBuilder.symbol_writer): Make this
2063 field internal, not private.
2064 (ModuleBuilder.SymWriter_DefineLocalVariable): Removed.
2066 * LocalBuilder.cs (LocalBuilder.SetLocalSymInfo): Use the
2067 ISymbolWriter's DefineLocalVariable() method instead of the
2068 IMonoSymbolWriter hack.
2070 Mon Sep 16 19:02:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
2072 * AssemblyBuilder.c: special case some custom attributes.
2074 2002-09-12 Dick Porter <dick@ximian.com>
2076 * TypeBuilder.cs: Say _which_ Type has already been created
2078 2002-09-11 Miguel de Icaza <miguel@ximian.com>
2080 * ModuleBuilder.cs (GetTypes): Implement.
2082 Tue Sep 10 12:12:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
2084 * ConstructorBuilder.cs: added a field to hold the handle.
2086 Mon Sep 9 17:31:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
2088 * TypeBuilder.cs: prepare for the real CreateType implementation.
2090 Tue Aug 27 16:57:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
2092 * TypeBuilder.cs: remove duplicate code and fix
2093 named field reading in custom attr.
2095 2002-08-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2097 * TypeBuilder.cs: UnspecifiedTypeSize is 0.
2099 Wed Aug 14 17:38:41 CEST 2002 Paolo Molaro <lupus@ximian.com>
2101 * TypeBuilder.cs: ReflectedType and CreateType fixes.
2103 Thu Aug 8 10:25:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
2105 * AssemblyBuilder.cs: added API to embed managed resources.
2107 2002-08-03 Martin Baulig <martin@gnome.org>
2109 * TypeBuilder.cs (TypeBuilder.DeclaringType): Implemented.
2111 Thu Jul 25 13:57:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
2113 * AssemblyBuilder.cs: support linking external resources.
2115 2002-07-19 Martin Baulig <martin@gnome.org>
2117 * ILGenerator.cs (Emit (OpCode, LocalBuilder)): Throw an exception
2118 when trying to emit a local that was defined in a different ILGenerator.
2120 * LocalBuilder.cs (LocalBuilder): Added `ILGenetator' argument to
2123 Tue Jul 16 19:32:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
2125 * ILGenerator.cs: stack size check fix.
2127 Sat Jul 13 17:30:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
2129 * AssemblyBuilder.cs: add also the enum_type for compiling corlib.
2130 * TypeBuilder.cs: complete IsValueType.
2132 Sat Jul 13 15:08:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
2134 * TypeBuilder.cs: better IsValueType.
2136 2002-07-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2138 * CustomAttributeBuilder.cs: removed compile warning.
2140 Fri Jul 12 11:34:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
2142 * ILGenerator.cs: fixup typebuilder tokens as well.
2144 Tue Jul 9 19:03:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
2146 * TypeBuilder.cs: special case SerializarionAttribute.
2147 Tweaks to get correct code in corlib.
2149 2002-07-06 Miguel de Icaza <miguel@ximian.com>
2151 * ILGenerator.cs (ILGenerator.Emit): For doubles and floats, swap
2152 the bytes on big endian systems.
2154 2002-07-03 Martin Baulig <martin@gnome.org>
2156 * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): Moved
2157 these fields up after the last entry in MonoReflectionAssemblyBuilder
2160 * TypeBuilder.cs (IsValueTypeImpl): Use the AssemblyBuilder's
2161 `corlib_value_type' instead of `typeof (System.ValueType)'.
2162 (DefineNestedType): Use the AssemblyBuilder's `corlib_object_type'
2163 instead of `typeof (object)'.
2165 2002-07-02 Martin Baulig <martin@gnome.org>
2167 * AssemblyBuilder.cs (corlib_object_type, corlib_value_type): New
2168 internal fields. When compiling corlib, they point to the newly
2169 created System.Object and System.ValueType types.
2170 (SetCorlibTypeBuilders): New public function. This will be
2171 dynamically called from MCS when compiling corlib.
2173 * TypeBuilder.cs (DefineInitializedData): Use the AssemblyBuilder's
2174 `corlib_value_type' as parent type instead of `typeof (System.ValueType)'
2175 to make it work when compiling corlib.
2177 * ModuleBuilder.cs (assemblyb): Made this field internal, not private.
2179 Tue Jul 2 18:34:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
2181 * TypeBuilder.cs: implemented AssemblyQualifiedName.
2182 * MethodBuilder.cs, ConstructorBuilder.cs: special case custom attr.
2184 Mon Jul 1 16:17:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
2186 * TypeBuilder.cs: implemented AddInterfaceImplementation().
2188 2002-06-28 Martin Baulig <martin@gnome.org>
2190 * MethodBuilder.cs (GetParameters): Return all parameters, not all
2193 2002-06-27 Martin Baulig <martin@gnome.org>
2195 * ConstructorBuilder.cs (GetParameters): Implemented.
2197 Mon Jun 17 14:55:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
2199 * ModuleBuilder.cs, TypeBuilder.cs: fixes for nested types handling.
2201 Fri Jun 14 16:21:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
2203 * CustomAttributeBuilder.cs: added custom attribute related internal
2205 * FieldBuilder.cs, ParameterBuilder.cs: handle MarshalAs attribute.
2206 * UnmanagedMarshal.cs: implemented.
2208 Mon Jun 10 18:58:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
2210 * PropertyBuilder.cs: implemented ReflectedType and DeclaringType
2213 2002-06-07 Martin Baulig <martin@gnome.org>
2215 * TypeBuilder.cs (TypeBuilder): Added `PackingSize packing_size' and
2216 `int type_size' fields to the constructor.
2217 (DefineNestedType): Pass packing_size and type_size to the constructor.
2219 * ModuleBuilder.cs (DefineType): Pass the packing_size and type_size
2220 fields to the TypeBuilder's constructor.
2222 2002-06-07 Martin Baulig <martin@gnome.org>
2224 * TypeBuilder.cs (DefineNestedType): There is no overload for this
2225 method which takes 5 args in the specs, removed it.
2227 Fri Jun 7 17:04:06 CEST 2002 Paolo Molaro <lupus@ximian.com>
2229 * AssemblyBuilder.cs: updates for PE/COFF rewrite.
2231 2002-05-30 Martin Baulig <martin@gnome.org>
2233 * AssemblyBuilder.cs (methods): Made this internal and don't
2234 initialize it. It will be initialized by the ModuleBuilder's
2235 GetSymbolWriter() method.
2236 (get_next_table_index): Only store the method in the `methods'
2237 array if it's not null.
2239 * ModuleBuilder.cs (GetSymbolWriter): Initialize the AssemblyBuilder's
2240 `methods' field if necessary and pass it as third argument to the
2241 symbol writer's constructor.
2243 2002-05-25 Martin Baulig <martin@gnome.org>
2245 * TypeBuilder.cs (TypeToken): Implemented.
2247 2002-05-24 Martin Baulig <martin@gnome.org>
2249 * ModuleBuilder.cs (symwriter_define_local): New private variable.
2250 (GetSymbolWriter): Look for a custom version of "DefineLocalVariable"
2251 and store it in `symwriter_define_local'.
2252 (SymWriter_DefineLocalVariable): New internal method to call the
2253 symbol writer's custom DefineLocalVariable() method. It is safe to
2254 call this method if there's no symbol writer.
2256 * LocalBuilder.cs (SetLocalSymInfo): Use the MethodBuilder'snew
2257 SymWriter_DefineLocalVariable().
2259 * MethodBuilder.cs (GetParameters): Implemented.
2261 2002-05-22 Martin Baulig <martin@gnome.org>
2263 * ModuleBuilder.cs (GetSymbolWriter): Pass the this pointer to the
2264 symbol writer's constructor.
2266 2002-05-22 Martin Baulig <martin@gnome.org>
2268 * AssemblyBuilder.cs (methods): New field.
2269 (get_next_table_index): Record all methods and constructors
2270 (table 0x06) in the `methods' array. This is read by the
2271 Mono.CSharp.Debugger.MonoSymbolWriter::get_method interncall to
2272 get the MethodBuilder / ConstructorBuilder back from the token.
2274 * *Builder.cs (get_next_table_index): Added `object obj' argument.
2275 (<constructors>): pass the this pointer to get_next_table_index ().
2277 2002-05-20 Martin Baulig <martin@gnome.org>
2279 * TypeBuilder.cs (DefineField): Call the new `create_internal_class'
2280 interncall after adding the first field. This is used when creating
2281 enum types to set `klass->enum_basetype'.
2283 Thu May 16 16:09:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
2285 * TypeBuilder.cs: complete special acse support for CharSet, Size and
2286 Pack named args in StructLayout attribute.
2288 Tue May 14 17:13:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
2290 * MethodBuilder.cs: revert change in accessibility of
2291 GetILGenerator(int).
2293 Tue May 14 13:31:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
2295 * FieldBuilder.cs, ParameterBuilder.cs: more special-casing of
2298 Fri May 10 20:57:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
2300 * CustomAttributeBuilder.cs: expose internal data for use in
2302 * FieldBuilder.cs, TypeBuilder.cs: special case FieldOffset and
2303 StructLayout attributes.
2305 Fri May 10 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
2307 * MethodBuilder.cs, ConstructorBuilder.cs: implemented InitLocals
2310 2002-04-26 Martin Baulig <martin@gnome.org>
2312 * ModuleBuilder.cs (DefineDocument): Implemented.
2314 Tue Apr 16 13:02:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
2316 * AssemblyBuilder.cs: pad output file to file alignment.
2317 * FieldBuilder.cs: ReflectedType.
2318 * ModuleBuilder.cs: added guid generation and array method creation.
2319 * MonoArrayMethod.cs: array method support code.
2321 Wed Apr 10 12:57:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
2323 * ILGenerator.cs: use a stack to keep track of exception blocks.
2325 Mon Apr 8 06:19:01 2002 Piers Haken <piersh@friskit.com>
2327 * ILGenerator.cs: added LabelField.label_base to allow for
2328 arbitrary offsets (for switch statement)
2330 Fri Apr 5 15:41:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
2332 * AssemblyBuilder.cs: simpler protocol wih the runtime to
2333 get the assembly data.
2335 Tue Mar 26 20:10:24 CET 2002 Paolo Molaro <lupus@ximian.com>
2337 * AssemblyBuilder.cs: use FileMode.Create.
2338 * ILGenerator.cs: optimize localbuilder related opcodes.
2339 Track parameters to adjust maxstack.
2340 * LocalBuilder.cS: use unsigned for position.
2342 2002-03-23 Miguel de Icaza <miguel@ximian.com>
2344 * LocalBuilder.cs: Drop the symbol_writer as LocalBuilder fields.
2345 Do this lazily in SetLocalSymInfo.
2347 2002-03-24 Martin Baulig <martin@gnome.org>
2349 * ModuleBuilder.cs (GetSymbolWriter): The MonoSymbolWriter's constructor
2350 now takes a `string assembly_filename' argument, pass it our fully
2351 qualified assembly name.
2353 2002-03-24 Nick Drochak <ndrochak@gol.com>
2355 * ILGenerator.cs: Use #if-#endif instead of if(false){} to disable
2356 code. This way there is no compiler warning.
2358 * TypeBuilder.cs: Removed the returns that came after the throws.
2359 This removes a few more compiler warnings. Also marked with MonoTODO
2360 all places where we throw NotImplemented exceptions.
2362 2002-03-23 Martin Baulig <martin@gnome.org>
2364 * SignatureHelper.cs (GetFieldSignatureHelper, GetLocalSignatureHelper):
2367 * LocalBuilder.cs (LocalBuilder): This internal constructor now takes
2368 a ModuleBuilder argument instead of a ISymbolWriter one.
2369 (SetLocalSymInfo): Create and pass type signature to DefineLocalVariable.
2371 2002-03-23 Martin Baulig <martin@gnome.org>
2373 * ILGenerator.cs (BeginScope, EndScope): Implemented.
2375 2002-03-20 Martin Baulig <martin@gnome.org>
2377 * ModuleBuilder.cs (GetSymbolWriter): New internal function. Dynamically
2378 loads the default symbol writer, catch all possible exceptions and return
2380 (ModuleBuilder): Added `bool emitSymbolInfo' argument to this internal
2381 constructor; if set, call GetSymbolWriter ().
2382 (GetSymWriter): Implemented.
2384 * LocalBuilder.cs (LocalBuilder): Added ISymbolWriter argument to this
2386 (SetLocalSymInfo): Implemented, call ISymbolWriter.DefineLocalVariable ()
2387 if the symbol writer is not null.
2389 * ILGenerator.cs (ILGenerator): Call ModuleBuilder.GetSymWriter () to get
2390 and store the symbol writer.
2391 (DeclareLocal): Pass the symbol writer to LocalBuilder's constructor.
2392 (MarkSequencePoint): Implemented, call ISymbolWriter.DefineSequencePoints ()
2393 if the symbol writer is not null.
2395 * AssemblyBuilder.cs (DefineDynamicModule): Pass the `bool emitSymbolInfo'
2396 to ModuleBuilder's constructor.
2398 Sat Mar 16 19:11:47 CET 2002 Paolo Molaro <lupus@ximian.com>
2400 * ModuleBuilder.cs: handle modified types correctly.
2402 Thu Mar 7 17:10:42 CET 2002 Paolo Molaro <lupus@ximian.com>
2404 * AssemblyBuilder.cs: allow saving bigger assemblies.
2405 * ILGenerator.cs: add fixup table for fields and methods, since
2406 at the end of the compile they may end up with a different table
2408 * ModuleBuilder.cs: add cache for type names to speed up the type
2409 lookups from the compiler.
2410 * TypeBuilder.cs: GetInterfaces () returns only interfaces in the
2411 current type, not in parents (the docs are wrong).
2413 Tue Mar 5 18:09:34 CET 2002 Paolo Molaro <lupus@ximian.com>
2415 * EventBuilder.cs: implemented.
2416 * TypeBuilder.cs: implemented DefineEvent() method and UnderlyingSystemType
2419 Mon Mar 4 20:34:52 CET 2002 Paolo Molaro <lupus@ximian.com>
2421 * ILGenerator.cs: make enough room in the byte array for string
2423 * TypeBuilder.cs: fixed GetInterfaces().
2425 Mon Mar 4 11:30:40 CET 2002 Paolo Molaro <lupus@ximian.com>
2427 * TypeBuilder.cs: implemented GetConstructors(), GetFields(),
2428 GetMethods(), GetProperties().
2430 Thu Feb 28 19:15:10 CET 2002 Paolo Molaro <lupus@ximian.com>
2432 * AssemblyBuilder.cs: call into the runtime to init some basic
2433 assembly stuff. Reserve slot 1 of typedef table for .<Module>.
2434 * ModuleBuilder.cs: call into the runtime if we need to create a
2435 modief type, such as arrays, byref etc.
2436 * TypeBuilder.cs: call into the runtime to create the MonoClass
2437 representation for the type. Throw exceptions with not implemented
2440 Wed Feb 27 18:48:47 CET 2002 Paolo Molaro <lupus@ximian.com>
2442 * ILGenerator.cs: fix nested exception blocks.
2444 Wed Feb 20 22:30:49 CET 2002 Paolo Molaro <lupus@ximian.com>
2446 * AssemblyBuilder.cs: upped compiled assembly size limit.
2447 Implemented SetCustomAttribute () methods.
2448 * CustomAttributeBuilder.cs: implemented the needed constructor
2450 * Cosntructorbuilder.cs, EnumBuilder.cs, FieldBuilder.cs,
2451 MethodBuilder.cs, ModuleBuilder.cs, ParameterBuilder.cs,
2452 PropertyBuilder.cs, TypeBuilder.cs: Implemented SetCustomAttribute () methods.
2454 Wed Feb 20 14:54:01 CET 2002 Paolo Molaro <lupus@ximian.com>
2456 * AssemblyBuilder.cs: add SetCustomAttribute () to keep the compiler
2459 Fri Feb 15 18:15:04 CET 2002 Paolo Molaro <lupus@ximian.com>
2461 * ILGenerator.cs: finally block support and fixes.
2463 Thu Feb 14 18:55:52 CET 2002 Paolo Molaro <lupus@ximian.com>
2465 * FieldBuilder.cs: Add SetRVAData().
2466 * ILGenerator.cs: speed up code array growth.
2467 * TypeBuilder.cs: fix IsValueTypeImpl(). Add class_size member.
2468 Implement DefineInitializedData().
2470 Tue Jan 22 23:01:11 CET 2002 Paolo Molaro <lupus@ximian.com>
2472 * EnumBuilder.cs, TypeBuilder.cs: updates for changes in Type.cs.
2473 * ModuleBuilder.cs: fix lookup of nested types.
2475 Tue Jan 15 22:46:21 CET 2002 Paolo Molaro <lupus@ximian.com>
2477 * ILGenerator.cs: implement some of the exception support methods.
2479 Mon Jan 14 17:07:32 CET 2002 Paolo Molaro <lupus@ximian.com>
2481 * ModulerBuilder.cs: search also for subtypes in GetTypes().
2482 * TypeBuilder.cs: bugfix in FullName. Implemented DefineNestedType().
2484 Fri Jan 11 19:00:29 CET 2002 Paolo Molaro <lupus@ximian.com>
2486 * MethodBuilder.cs, ConstructorBuilder.cs: save parameter info.
2488 Thu Jan 10 21:07:54 CET 2002 Paolo Molaro <lupus@ximian.com>
2490 * ILGenerator.cs: handle type tokens (used for box opcode).
2492 Wed Jan 9 19:37:55 CET 2002 Paolo Molaro <lupus@ximian.com>
2494 * ILGenerator.cs: emit float and doubles.
2495 * ModuleBuilder.cs: off-by-one error fix and GetType()
2497 * TypeBuilder.cs: AttributesImpl added.
2498 * UnmanagedMarshal.cs: stubbed out class.
2500 Sat Jan 5 15:59:05 CET 2002 Paolo Molaro <lupus@ximian.com>
2502 * ILGenerator.cs: fix emission of two-bytes opcodes.
2503 Missing slot for locals array. Throw exceptions on unimplemented
2505 * OpCode.cs: add a comment: the Value property is useless.
2506 * OpCodes.cs: fix name of tail opcode (Tail -> Tailcall).
2508 2002-01-05 Ravi Pratap <ravi@ximian.com>
2510 * ConstructorBuilder.cs : Use the MonoTODO attribute.
2512 * ILGenerator.cs, Label.cs, MethodBuilder.cs, ModuleBuilder.cs,
2513 ParameterBuilder.cs, TypeBuilder.cs : Ditto.
2515 Thu Jan 3 23:26:15 CET 2002 Paolo Molaro <lupus@ximian.com>
2517 * ILGenerator.cs: typo fix.
2519 Mon Dec 24 17:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
2521 * TypeBuilder.cs: added DefineMethodOverride().
2522 * MethodBuilder.cs: add override_method member and setter.
2524 Mon Nov 19 13:58:01 CET 2001 Paolo Molaro <lupus@ximian.com>
2526 * AssemblyBuilder.cs: add method to register a string in the "#US"
2528 * EnumBuilder.cs, SignatureHelper.cs: added stubs.
2529 * ILGenerator.cs: more stuff implemented.
2530 * LocalBuilder.cs: keep track of local var index.
2532 Thu Nov 15 18:11:23 CET 2001 Paolo Molaro <lupus@ximian.com>
2534 * ConstructorBuilder.cs: implement the interesting methods.
2535 * ILGenerator.cs: adapt for use with both a MethodBuilder and a
2537 * MethodBuilder.cs: add ImplAttributes.
2538 * ParameterBuilder.cs: adapt for ConstructorBuilder.
2539 * TypeBuilder.cs: add constructors handling.
2541 Wed Nov 14 17:01:45 CET 2001 Paolo Molaro <lupus@ximian.com>
2543 * ConstructorBuilder.cs: added missing stubs and some implementation.
2544 * CustomAttributeBuilder.cs: added.
2545 * EventBuilder.cs: added.
2546 * FieldBuilder.cs: updates.
2547 * MethodBuilder.cs: stuff to implement P/Invoke methods.
2548 * ModuleBuilder.cs: added GetArrayMethod() stub.
2549 * ParameterBuilder.cs, PropertyBuilder.cs: updates.
2550 * TypeBuilder.cs: updates and stubs.
2552 2001-11-10 Sean MacIsaac <macisaac@ximian.com>
2554 * TypeBuilder.cs: Added implementation for TypeHandle.
2556 Tue Nov 6 09:13:45 CET 2001 Paolo Molaro <lupus@ximian.com>
2558 * AssemblyBuilder.cs: define an internal constructor.
2560 2001-10-07 Miguel de Icaza <miguel@ximian.com>
2562 * AssemblyBuilder.cs: Reformatted.
2564 Added override keywords to those that needed them.
2566 Removed methods that we do not override, but just inherit
2568 Tue Sep 25 16:53:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
2570 * TypeBuilder.cs, ConstructorBuilder.cs, ModuleBuilder.cs: added.