2007-10-04 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mono / metadata / ChangeLog
index c8a31168754aca09fcb9b12241ef4186d0519857..98e8a2555a2f11d894f4f842fbfc4bd08ee87def 100644 (file)
@@ -1,3 +1,169 @@
+2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * icall-def.h, icall.c : get_bundled_machine_config() is now the
+         common function used by both DefaultConfig in System.dll and
+         InternalConfigurationHost in System.Configuration.dll.
+
+Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * class.c: automatically add to vectors only a few essential explicit
+       generic interfaces. The rest of the interfaces that arrays should
+       provide are currently implicitly added (but still not lazily, see the
+       design in the discussion of bug#325495 for the details of what is
+       needed for that). Additionally, implicit interfaces are assigned the
+       same vtable slot as the explicit interfaces (as they are compatible):
+       this enables huge memory savings since we don't need to instantiate
+       as many memthods and as large vtables anymore. Also, Since
+       GetEnumerator<T> returns an instance of a type that is required to
+       support a similarly large set of interfaces as arrays, we add
+       implicit interfaces and interface offset sharing support to those
+       types, too. This change adds all the required interfaces so that
+       the anonarray.cs test case in the bug report works (we don't add
+       all the interfaces to arrays of arrays 3-level deep and more because
+       of the memory requirements explained in the bug and since they are much
+       less common: the lazy-loading support will enabled them to work, too).
+
+2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (merge_stacks): major clean up, all type compatibility
+       checks are done by verify_type_compatibility. This fix my earlier lack
+       of understanding of the CLR type system and merge_stacks no longer looks
+       scary.
+
+       * verify.c: fixed some bad spelling.
+
+2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
+       a given stack slock.
+       
+       * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
+       verify_type_compatibility_full. This removed a near indentical function and fixed
+       handling of Int32 and IntPtr across all opcodes.
+
+Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * class.c: only vectors have the additional generic interfaces.
+
+2007-10-01  Jonathan Chambers <joncham@gmail.com>
+
+       * mono-config.c: Use g_strcasecmp instead of
+       strcasecmp like everywhere else to fix
+       compilation with MSVC.
+       
+       Code is contributed under MIT/X11 license.
+
+Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * object.c, object-internals.h: refactored the IMT code to enable
+       building a single slot at a time and lazily creating the IMT trampolines
+       and thunks.
+
+2007-09-29  Zoltan Varga  <vargaz@gmail.com>
+
+       * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
+
+       * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
+       Fixes #328501.
+       
+2007-09-29  Raja R Harinath  <harinath@gmail.com>
+
+       * loader.c (method_from_methodspec): Rearrange to avoid
+       un-necessary exposition.  Don't assert out if the method's
+       declaring type is a generic type definition.
+
+2007-09-28  Martin Baulig  <martin@ximian.com>
+
+       * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
+
+Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * class-internals.h: optimize field layout of MonoClass to
+       requires less cachelines at runtime and save a few bytes on 64 bit
+       systems.
+
+2007-09-28  Jb Evain  <jbevain@novell.com>
+
+       * reflection.c: when encoding type names in custom attributes,
+       if the type is a closed generic type, its generic arguments
+       have to be serialized as AssemblyQualifiedName, so that when
+       they are deserialized, it's possible to re-create them properly.
+       Fixes #329450.
+
+
+Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * object.c, class-internals.h: added delegate-creation counter.
+
+Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * class.c: cleanup of the code that synthetizes interfaces for
+       arrays in 2.0: saves quit a bit of corlib mempool memory.
+       Code to fix bug #325495 ifdeffed out for now until the issues
+       with memory usage and O(n^2) behaviour are fixed.
+
+Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * marshal.c: when possible, do not duplicate the name of the methods
+       in the method builder and in the generated MonoMethod.
+
+2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
+       * verify.c: added support for type checking ldind_* opcodes.
+
+2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class-internals.h (struct _MonoGenericClass): new field is_tb_open
+       which is used to distinguish the fully open instantiation of a TypeBuilder
+       with the rest. This temporary hack is required to restore the property that
+       the fully open instantiation is the same type of the generic type definition.
+
+       * class-internals.h (mono_generic_class_is_generic_type_definition):
+       new function as part of the internal API.
+
+       * class.c (inflate_generic_type): return NULL when the generic inst is
+       fully open. The fully open generic type is now the same as the generic type
+       definition for non TypeBuilder types.
+
+       * class.c (mono_generic_class_get_class): removed assert since it is
+       no longer valid, gklass->cached_class can point to the generic type definition.
+
+       * class.c (mono_generic_class_is_generic_type_definition): new.
+
+       * metadata.c (mono_generic_class_hash): added is_tb_open field
+       to the hash calculation.
+
+       * metadata.c (free_generic_class): if the generic class is associated
+       with the generic type definition, its field will come from the mempool and
+       must not be freed.
+
+       * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
+       new, this function identifies the corner case of a TypeBuilder fully open
+       instantiation.
+
+       * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
+       for lookup. Set gclass->cached_class to be the container class in case of
+       the fully open instantiation of non TypeBuilder types.
+
+       * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
+       to compare generic classes.
+
+       * reflection.c (method_encode_methodspec): remove assert that
+       no longer is valid.
+
+       * reflection.c (mono_reflection_generic_class_initialize): add
+       an aditional assert to ensure the proper type is used.
+
+2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
+       to enjoy it.
+
+2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (push_arg): Fixed support for ldarga
+       * verify.c (set_stack_value): Removed superfluous parameter, fixed the
+       MonoType used as first arg in case of instance calls.
+
 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
 
        * verify.c: Support for verifying VAR and MVAR types,