2008-05-01 Miguel de Icaza <miguel@novell.com>
[mono.git] / mono / metadata / ChangeLog
index 7dee3866f1504d7f1d52736286be02e21a14dafa..f3c43a24f88f8fdca5f3bd0d2f9d0824d5083dcf 100644 (file)
@@ -1,3 +1,334 @@
+2008-05-01  Miguel de Icaza  <miguel@novell.com>
+
+       * appdomain.c (mono_domain_from_appdomain): Add new accesor
+       method. 
+
+2008-05-01  Zoltan Varga  <vargaz@gmail.com>
+
+       * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
+
+2008-05-01  Dick Porter  <dick@ximian.com>
+
+       * process.c (process_get_fileversion): Only pass 16 bits of
+       language ID to VerLanguageName.  Fixes bug 381204.
+
+2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_method_verify): Fix the comparison
+       operator for code bounds check.
+
+2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_method_verify): Check the bounds of
+       all access of the code array.
+
+2008-04-29  Kornél Pál  <kornelpal@gmail.com>
+
+       * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
+
+2008-04-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * image.c (mono_image_strong_name_position): Fix return value when the rva is
+       not valid.
+
+2008-04-28  Kornél Pál  <kornelpal@gmail.com>
+
+       * loader.c (mono_get_method_from_token, mono_method_signature): Add
+       support for METHOD_IMPL_ATTRIBUTE_NATIVE.
+       * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
+       fixup main EXE images when using mono.exe for mixed-mode assembly support.
+       * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
+       mono_runtime_load.
+       * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
+       runtime initialization from metadata.
+       * assembly.c: Remove obsolete ceGetModuleFileNameA.
+       (mono_set_rootdir): Use mono_get_module_file_name.
+       (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
+       handles.
+       * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
+       * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
+       * image.c (mono_cli_rva_image_map): Use MonoImage instead of
+       MonoCLIImageInfo. Add support for module handles.
+       (load_cli_header): Update mono_cli_rva_image_map signature.
+       (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
+       (mono_image_strong_name_position): Use mono_cli_rva_image_map.
+       (mono_image_rva_map): Add support for module handles.
+       (mono_image_ensure_section_idx): Add support for module handles.
+       (mono_image_close): Add support for module handles.
+       (do_load_header): Add support for module handles.
+       (mono_image_open_from_module_handle): New function for internal use.
+       (mono_image_open_full): Load normal images using LoadLibrary on Windows.
+       (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
+       (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
+       handles.
+       (mono_image_fixup_vtable): New function for mixed-mode assembly support.
+       * image.h: Add mono_image_fixup_vtable.
+       * coree.c: New file for mscoree.dll functions and mixed-mode assembly
+       support.
+       * coree.h: New file.
+       * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
+       unsupported native code.
+       (mono_marshal_set_callconv_from_modopt): New function splitted from
+       mono_marshal_get_managed_wrapper.
+       (mono_marshal_get_managed_wrapper): Use
+       mono_marshal_set_callconv_from_modopt.
+       (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
+       * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
+       * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
+       that results in a deadlock when the runtime is loaded in _CorDllMain.
+       * Makefile.am: Add coree.c and coree.h.
+
+       Contributed under MIT/X11 license.
+
+2008-04-28  Mark Probst  <mark.probst@gmail.com>
+
+       * generic-sharing.c: Search for type arguments in array element
+       types as well.
+
+2008-04-28  Mark Probst  <mark.probst@gmail.com>
+
+       * class-internals.h, generic-sharing.c: New, small runtime generic context.
+
+       * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
+
+       * object.c: Don't setup the RGCTX when the vtable is created,
+       because we're setting it up lazily now.
+
+2008-04-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
+       64 bit support.
+
+2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (verify_class_for_overlapping_reference_fields): 
+       If class is under fulltrust allow reference types to overllap
+       if they have the same RVA.
+
+2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * pedump.c: Added new flag valid-only, that makes the verifier
+       behaves just like --security=validil. It won't fail type load
+       due to unverifiable restrictions.
+
+2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class-internals.h (struct MonoMethod): Added a verification_success
+       field to cache verifier executions. Reduced MonoMethod:slot size by
+       one bit.
+
+2008-04-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
+       instead of a 'vt' argument to save an indirection and to allow these to be used
+       for valuetypes.
+       (scan_vtype): New helper function to scan an area using a gc descriptor.
+       (mono_gc_wbarrier_value_copy): Implement this.
+       (handle_remset): Add support for REMSET_VTYPE.
+       (find_in_remset_loc): Ditto.
+       (mono_gc_base_init): Allow some debugging options to be controlled through the
+       use of the MONO_GC_DEBUG env variable.
+       (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
+       (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
+
+2008-04-23  Martin Baulig  <martin@ximian.com>
+
+       * domain.c (mono_domain_create): Move the call to
+       mono_debug_domain_create() down, after allocating the domain id.
+
+2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       verify.c (verify_class_for_overlapping_reference_fields): Skip
+       static fields while verifying for overlapping fields as they
+       don't matter at all.
+
+2008-04-23  Marek Habersack  <mhabersack@novell.com>
+
+       * domain-internals.h: added a declaration of
+       mono_make_shadow_copy.
+
+       * assembly.c (mono_assembly_open_full): shadow copying of
+       assemblies moved to here, so that all the assemblies within the
+       application domain's private binary directories can be
+       processed. Fixes bug #380546
+
+       * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
+       mono_make_shadow_copy and made non-static. The decision whether
+       to shadow-copy an assembly is made based on its location - it's
+       copied if it's in one of the private application domain binary
+       directories and its different to the target file in the shadow
+       directory. Fixes bug #380546
+
+2008-04-22  Zoltan Varga  <vargaz@gmail.com>
+
+       * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
+
+       * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
+       types.
+
+       * reflection.c (mono_image_create_token): Handle 
+       Method/ConstructorOnTypeBuilderInst.
+       (resolve_object): Ditto.
+       (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
+       so it can be called from resolve_object. Also handle the case when the inflated
+       class already has its methods setup.
+
+2008-04-21  Martin Baulig  <martin@ximian.com>
+
+       * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
+
+2008-04-20  Geoff Norton  <gnorton@novell.com>
+
+       * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
+       pointer dereference.
+
+2008-04-15  Marek Habersack  <mhabersack@novell.com>
+
+       * appdomain.c (try_load_from): if IOMAP is in effect, call the
+       portability API to look up the assembly file. Fixes behavior in
+       situations when the application has a bin/ directory, but the
+       assembly search patch refers to Bin/ (and thus the requested file
+       name is Bin/SomeLibrary.dll). Fixes bug #379888
+
+2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       verify.c (mono_type_is_generic_argument): Extracted this check
+       from a dozen places to here.
+
+       verify.c: Fixed all issues related to boxing generic arguments
+       and their constraints.
+
+2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       verify.c (mono_class_interface_implements_interface): Fix win32 build.
+
+2008-04-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
+       isn't finished yet. Fixes #363447.
+
+2008-04-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
+       Fixes #346419.
+
+2008-04-13  Jb Evain  <jbevain@novell.com>
+
+       * domain.c: update the 2.1 profile versions.
+       Merged from the Moonlight 2 branch.
+
+2008-04-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * assembly.c (mono_assembly_load_from_full): Do the check for loading other
+       mscorlibs for the non-refonly case as well.
+
+       * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
+       in mono_assembly_load_from_full (). Fixes #378924.
+
+2008-04-11  Geoff Norton  <gnorton@novell.com>
+
+       * icall.c: The global extern environ doesn't exist on Mac.  We
+       need to call NSGetEnviron instead.
+
+2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       verify.c: Add generic method constraint verification.
+
+2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       class.c (mono_class_inflate_generic_method_full): Add a long
+       explanation to the is_mb_open hack. Remove the FIXME.
+
+2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_method_verify): Mark all unknown opcodes
+       as invalid. Mark jmp as unverifiable.
+
+2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Add code to do type constraint verification on class instances.
+
+       * verify.c (mono_verifier_verify_class): Use the type constraint 
+       verification code.
+
+2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_class_get_field_default_value): Don't pass cindex
+       as hint to mono_metadata_get_constant_index. The local is not initialized
+       and should contain garbage most of the time. This could only work
+       with a lot of luck.
+
+2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
+
+2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class-internals.h: Add generic_param_token to MonoClass::sizes union.
+
+       * class.c (mono_class_from_generic_parameter): Save the token of the
+       generic param in MonoClass::sizes.generic_param_token.
+
+       * reflection.c (mono_custom_attrs_from_class): If the class type is
+       VAR or MVAR retrieve the attributes of the generic param.
+
+2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * class.c (mono_class_init): Do class verification if the verifier
+       is enabled.
+
+2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify-internal.h: Added mono_verifier_verify_class.
+
+       * verify.c: Added mono_verifier_verify_class. It checks for
+       classes with explicit layout that have overlapping reference fields.
+
+       * pedump.c: Init the verifier state prior to verification. Fixed
+       command line arguments.
+
+2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * Makefile.am: Added verify-internals.h, hopefully fix the build.
+
+2008-04-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * verify-internals.h: Fix a warning.
+
+2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify-internals.h: New header with the verifier configuration
+       extracted from mini.c.
+
+       * verify.c: Implemented the new functions exported by verify-internals.h.
+
+2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Add proper verification of ckfinite.
+
+2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (do_conversion): Improved error message to something
+       more meanfull.
+
+       * verify.c (check_is_valid_type_for_field_ops): Fix to work
+       with primitive types.
+
+2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Added tail prefix checking. Marked icall
+       as unverifible.
+
+2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Fix the detection of branches to the middle
+       of an instruction.
+
+2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Implemented verification of volatile. and
+       unaligned. prefix. Check if a type is valid after retrieving it.
+
 2008-04-01  Dick Porter  <dick@ximian.com>
 
        * process.c (process_get_fileversion): If there's no string block,