X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2FChangeLog;h=98e8a2555a2f11d894f4f842fbfc4bd08ee87def;hb=abf7aefa2feac3f92454d4d4d83973eb599271d0;hp=7604e62554b49d7322d6b1d89534a6770689b92c;hpb=6e2d82a319358072672b42a781fc3a29017aa743;p=mono.git diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 7604e62554b..98e8a2555a2 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,382 @@ +2007-10-04 Atsushi Enomoto + + * 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 + + * 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 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 + + * 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 + + * 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 + + * class.c: only vectors have the additional generic interfaces. + +2007-10-01 Jonathan Chambers + + * 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 + + * 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 + + * 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 + + * 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 + + * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61. + +Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro + + * 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 + + * 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 + + * object.c, class-internals.h: added delegate-creation counter. + +Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro + + * 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 + + * 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 + * verify.c: added support for type checking ldind_* opcodes. + +2007-09-27 Rodrigo Kumpera + + * 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 + + * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG + to enjoy it. + +2007-09-25 Rodrigo Kumpera + + * 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 + + * verify.c: Support for verifying VAR and MVAR types, + +2007-09-25 Zoltan Varga + + * icall.c (ves_icall_get_property_info): Set the reflected type of the + accessors correctly. + +Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro + + * threads.c: support OSX and other systems in + mono_thread_get_stack_bounds (bug #328026). + +2007-09-25 Martin Baulig + + * mono-debug.h + (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'. + +2007-09-24 Martin Baulig + + * mono-debug.h + (MonoDebugClassEntry): Moved the definition of this struct into + mono-debug.c to make it private. + + * mono-debug.c + (MonoDebugClassEntry): Removed `symfile_id'; since we now use one + type table per symbol file, we don't need to store the symfile id + any longer. + +2007-09-24 Martin Baulig + + Create one type table per symbol file, since a `MonoClass *' gets + invalid when its image is unloaded. + + * mono-debug.h (MonoSymbolTable): Removed `type_table'. + (MonoDebugHandle): Added `type_table'. + +Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro + + * mempool.c, mempool.h: added mono_mempool_new_size () API + to be able to specify a smaller initial size for the pool. + Adjusted the code to slowly increase pool size before using + the previous default size. + * image.c: use a small initial size for image mempools. + +2007-09-23 Zoltan Varga + + * marshal.c (emit_marshal_array): Generate valid IL for byref array case. + Fixes ##320990. + + * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): + Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal. + +2007-09-22 Zoltan Varga + + * metadata.c (mono_type_create_from_typespec): Remove an invalid + free. Fixes #327438. + +2007-09-21 Raja R Harinath + + * metadata.c (type_in_image) : Handle arrays of + generic instantiations, etc. + : Likewise. + +2007-09-21 Martin Baulig + + * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed; + these structs were never defined. + (MonoDebugHandle): Removed the `_priv' field, it was never used. + +2007-09-21 Martin Baulig + + * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'. + +Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro + + * image.c: removed the guid hash tables: we can get the same info + without the additional memory usage hit (partially fixes also bug #327052). + +2007-09-10 Massimiliano Mantione + + * profiler.h, profiler-private.h, profiler.c: add a new profiler + event to handle unloading methods. After the event is called, the + corresponding MonoMethod* must be considered invalid. + * loader.c (mono_free_method): call the new mono_profiler_method_free + event. + +2007-09-20 Mark Probst + + * domain-internals.h: New flag in MonoJitInfo which marks shared + generic methods. New hash table (shared_generics_hash) in + MonoDomain to keep track of shared generic methods. Prototypes + for functions to register and lookup shared generic methods. + + * domain.c: Support for registering and looking up shared generic + methods via a hash table (shared_generics_hash) in MonoDomain. + + * class-internals.h: New exception to signal failure of shared + compilation of a generic method. New counters for generics + sharing in MonoStats. + +Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro + + * image.c, metadata-internals.h: don't keep a file descriptor open + for loaded assemblies (bug#325988). + +2007-09-19 Raja R Harinath + + * metadata.c (signature_in_image): New. Carve out of type_in_image. + (ginst_in_image, gclass_in_image): Simplify. Change signature to + use the corresponding datatypes. + (type_in_image): Update to changes. + (CleanForImageUserData): Simplify. + (steal_gclass_in_image): Carved out of old 'gclass_in_image'. + Avoid quadratic behaviour in handling the "stolen" list by + separating the filter predicate out, and by prepending the stolen + items rather than appending them. + (steal_ginst_in_image): Likewise. + (mono_metadata_clean_for_image): Update to changes. + +2007-09-19 Martin Baulig + + * domain.c (mono_cleanup): Call mono_debug_cleanup() here. + +2007-09-19 Martin Baulig + + * mono-debug.c (mono_debug_cleanup): Don't call + mono_debugger_cleanup(); this is now called earlier from mini_cleanup(). + +2007-09-19 Raja R Harinath + + Fix crash on 'make run-test' in mcs/errors + * metadata.c (type_in_image): New. Carve out of ginst_in_image. + Avoid more potential allocations in mono_class_from_mono_type. + (ginst_in_image): Update to changes. + (gclass_in_image): Rearrange slightly. + +2007-09-18 Zoltan Varga + + * class.c (mono_class_init): Move the code that sets up class->methods to + mono_class_setup_methods () for inflated generic classes too. Ditto for properties. + + * metadata.c (mono_metadata_get_inflated_signature): New function to return a + canonical instance of an inflated generic signature. + (mono_type_create_from_typespec): Remove an invalid free. + + * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature. + +2007-09-18 Marek Habersack + + * domain-internals.h: added a declaration of the + mono_assembly_load_full_nosearch internal function. + + * assembly.c (mono_assembly_load_with_partial_name): use + mono_try_assembly_resolve return value properly. + (mono_assembly_load_full_nosearch): copied the function body from + mono_assembly_load_full, without the code to invoke assembly + search hooks. + (mono_assembly_load_full): calls the above new function and if the + assembly is not resolved, invokes the search hooks. + + * appdomain.c (mono_runtime_init): restore the global postload + assembly search handlers. + +2007-09-18 Zoltan Varga + + * class.c (mono_class_init): Make sure class->methods and class->properties + are never NULL in the generics case. + + * metadata.c (free_generic_class): Enable this again, skip the dynamic case. + +2007-09-17 Zoltan Varga + + * metadata.c (free_generic_class): Disable some code to fix the build. + + * domain.c (mono_cleanup): Fix a crash introduced by a previous patch. + + * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data + from the image mempool. + + * metadata.c (free_generic_class): Free more data from the inflated class. + + * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool. + + * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image + mempool. + (mono_type_create_from_typespec): Ditto. + + * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened + MonoImage to the caller. + (mono_init_internal): Save the opened image in a global variable. + (mono_cleanup): Close the image opened in get_runtimes_from_exe. + + * reflection.c (resolve_object): Fix a leak. + + * metadata.c: Fix the freeing of data in the generics caches. + + * metadata.c (free_generic_inst): Comment this out to fix the build. + (free_generic_class): Ditto. + + * metadata.c: Free cached generic methods, instantinations and classes when + they are removed from the caches. + (mono_metadata_free_type): Free the type itself. + + * class.c: Free the result of mono_class_inflate_generic_type () in a few + places. + +Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro + + * boehm-gc.c: restrict managed allocs to __thread supporting + architectures. + 2007-09-16 Zoltan Varga * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.