X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2FChangeLog;h=98e8a2555a2f11d894f4f842fbfc4bd08ee87def;hb=abf7aefa2feac3f92454d4d4d83973eb599271d0;hp=2b303f0c924ec0452c37202bd8210c48544156ee;hpb=b219625e38f51a473c5e0908a5b94522a330ab28;p=mono.git diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 2b303f0c924..98e8a2555a2 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,580 @@ +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. + (mono_generic_class_get_class): Fix a leak. + + * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to + mono_metadata_free_type (). + (mono_metadata_inflate_generic_inst): Fix a leak. + +2007-09-14 Zoltan Varga + + * mono-debug.c (free_header_data): Fix a leak missed earlier. + + * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image + mempool. + + * mono-debug.c (mono_debug_close_image): Fix call to + g_hash_table_remove (). + +Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro + + * icall-def.h: redirect all the string ctor to the managed + CreateString () methods. + * string-icalls.c, string-icalls.h: removed dead code for string + ctors and icalls. + +2007-09-14 Zoltan Varga + + * mono-debug.c: Fix memory leaks. + +2007-09-14 Jonathan Chambers + + * threads-types.h: Implement mono_hazard_pointer_set and + mono_hazard_pointer_clear macros using do/while(0) to fix + compilation with MSVC. + + Code is contributed under MIT/X11 license. + +2007-09-14 Zoltan Varga + + * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of + -2 to communicate to managed code that the handle is not pinned. Fixes #82848. + +Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro + + * icall-def.h, string-icalls.c: get rid of old, no longer used, string + icalls. + +Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro + + * boehm-gc.c, gc-internal.h, object.c: allow strings to be + managed-code allocated as well. + +2007-09-13 Zoltan Varga + + * class.c (mono_class_is_assignable_from): Add support for generic variance. + +Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro + + * boehm-gc.c: fixed the build after the AOT changes. + +2007-09-13 Zoltan Varga + + * wrapper-types.h: Add an ALLOC wrapper type. + + * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to + reference managed allocator methods. + +2007-09-12 Marek Safar + + * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance + of Type array and not MonoType, a fix suggested by Hari. + +2007-09-12 Jonathan Chambers + + * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash + and delegate_invoke_impl_no_target_hash from _MonoDomain struct. + + Code is contributed under MIT/X11 license. + +2007-09-10 Massimiliano Mantione + + * domain.c, object.c, mono-config.c, object-internals.h: Fixed #82416. + +2007-09-12 Marek Habersack + + * image.c (do_mono_image_open): if assembly file fails to open and + MONO_IOMAP is in effect, try to find the path in a + case-insensitive way. + + * appdomain.c (mono_runtime_init): do not install postload hooks - + tests show that MS.NET doesn't use anything of that sort to + trigger the AppDomain.AssemblyResolve event. + (mono_try_assembly_resolve): renamed from try_assembly_resolve and + made non-static. + (mono_runtime_init): init portability helpers here. + + * assembly.c (mono_assembly_load_with_partial_name): if other + attempts fail, trigger the AppDomain.AssemblyResolve event handler + to resolve the assembly. + + * domain-internals.h: added mono_try_assembly_resolve and marked + it as internal. + +2007-09-11 Jb Evain + + * object-internals.h (MonoReflectionDynamicMethod): add + a `MonoReflectionType *owner` field. The owner is used + * reflection.c: + (mono_reflection_create_dynamic_method): use the owner of the dynamic + method as the class declaring the dynamic method. + (reflection_methodbuilder_from_dynamic_method): copy the owner of the + dynamic method to the declaring type of the methodbuilder. + +2007-09-11 Mark Probst + + * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security + rules for calling methods via reflection. + +2007-09-11 Zoltan Varga + + * reflection.c (resolve_object): Add support for MonoGenericClass. + Inflate MonoType's. + +Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro + + * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to + provide a managed method that does fast allocations without needing + a managed->unmanaged transition. Boehm GC implementation currently + enabled for ptrfree objects on sane architectures. + +Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro + + * marshal.c, marshal.h: exported a couple of useful functions and + added mono_mb_get_label () to easily handle backward branches. + +2007-09-10 Zoltan Varga + + * reflection.c (resolve_object): Inflate generic methods. Fixes #82782. + +2007-09-10 Massimiliano Mantione + + * loader.c (find_method): Fixed the regression introduced while + fixing bug #81466. + +2007-09-09 Zoltan Varga + + * class.c (mono_lookup_dynamic_token_class): Pass along the context here as + well. + + * class.c loader.c metadata.c object.c class-internals.h object-internals.h + icall.c reflection.c: Pass a MonoGenericContext argument to + mono_lookup_dynamic_token (). + + * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes + #82744. + +2007-09-09 Robert Jordan + + * object.c (mono_class_proxy_vtable): Don't create remoting trampolines + for generic methods. + + * object.c (mono_object_get_virtual_method): Handle generic methods. + Fixes bug #78882. + + Code is contributed under MIT/X11 license. + +Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro + + * image.c: fix locking in mono_image_load_file_for_image (). + +Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro + + * reflection.c, icall.c, icall-def.h: the methodinfos name field is + used only as a cache: added an icall to fill it. + +2007-09-16 Rodrigo Kumpera + + * reflection.h: exposed mono_reflection_free_type_info + * reflection.c (mono_reflection_get_type_internal): type_args is always freed + since mono_reflection_bind_generic_parameters makes a copy of it. + * reflection.c (free_type_info): subinfos should be freed. + * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and + made non static. + * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType): + replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info, + this fixes #82695 and #81726. + + +2007-09-03 Atsushi Enomoto + + * process.h, process.c: added support for user profile/info in + ProcessStartInfo. For now only Windows works. + +Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro + + * metadata.c: consider the generic arguments when comparing + signatures (bug #82614). Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro