2008-08-28 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
index 9ecbf3d371aa606d5c8b2718040c6cbd757b116d..6fd2a23bcf9d9343cf59a3bb9fc546978df54400 100644 (file)
@@ -1,3 +1,447 @@
+2008-08-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * appdomain.c (mono_runtime_set_no_exec): New internal function setting
+       the runtime into no-exec mode, useful when running the AOT compiler.
+
+       * appdomain.c gc.c object.c: Avoid executing managed code when running
+       in no-exec mode.
+       
+       * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
+
+       * reflection.c (_mono_reflection_get_type_from_info): Handle the 
+       special case when the mono_assembly_loaded () returns NULL because the 
+       search hook is not installed.
+
+2008-08-25  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
+       crashes in bstr marshalling on linux.
+
+2008-08-24  Zoltan Varga  <vargaz@gmail.com>
+
+       * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
+       with more than one parameter.
+
+2008-08-24  Miguel de Icaza  <miguel@novell.com>
+
+       * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
+       start/stop flow control as well when turning off ICANON (allows
+       C-s and C-q to be read by Console.ReadKey).
+
+2008-08-24  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_init): Move the initialization of nested classes
+       into mono_class_get_nested_types (). Fixes #418433.
+
+       * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
+       flag.
+
+       * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
+       iterating tough the nested classes of a class.
+
+2008-08-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
+       on arm.
+
+2008-08-22  Miguel de Icaza  <miguel@novell.com>
+
+       * console-io.c (sigcont_handler): Support signal chaining for
+       SIGCONT.
+
+       (console_set_signal_handlers): Use best practices with sigaction,
+       clear the structure before using it. 
+
+2008-08-22  Robert Jordan  <robertj@gmx.net>
+
+       * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
+       Fix the Windows build.
+
+2008-08-22  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_generic_sharing_enabled): Make the default
+       sharing mode 'corlib'.
+
+2008-08-21  Zoltan Varga  <vargaz@gmail.com>
+
+       * console-io.c (console_set_signal_handlers): Fix a warning.
+
+       * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
+       method normally, the JIT will take care of avoiding recursion.
+
+2008-08-20  Bill Holmes  <billholmes54@gmail.com>
+
+       * console-io.c : Fixing builds for platforms that do not have <termios.h>.
+
+       Code is contributed under MIT/X11 license.
+
+2008-08-20  Miguel de Icaza  <miguel@novell.com>
+
+       * console-io.c (sigcont_handler): We need to restore the entire
+       termios state, not only the original settings, as things like echo
+       can be controlled after this (Booish exposes this issue with its
+       own ReadLine implementation).
+
+       Additionally, we need to set the terminal back into keypad_xmit
+       mode.
+       
+       (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
+       string as a paramter as well.   Otherwise we get different
+       keyboard sequences.
+
+2008-08-20  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
+       delegates with byref out parameter passing. Fixes #351520.
+
+       * debug-helpers.c (mono_context_get_desc): New helper function to stringify
+       a generic context.
+       (mono_type_get_desc): Add the type arguments for GENERICINST.
+       (mono_method_full_name): Stringify the class name using mono_type_full_name
+       so it picks up generic arguments.
+
+2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * console-io.c: Removed debug output.
+
+2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       reflection.c (mono_reflection_create_runtime_class): Alloc
+       the nested classes linked list using the dynamic image mempool.
+       Fixes leak in corlib compilation.
+
+2008-08-19  Miguel de Icaza  <miguel@novell.com>
+
+       * console-io.c: Fix incredibly annoying behavior on the console
+       after resuming execution after control-z.   This affected every
+       console application.
+
+2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mempool-internals.h: Header for mono private mempool functions. The first
+       two function are for allocating glib linked lists using pools.
+
+       * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
+
+       * Makefile.am: Added mempool-internals.h.
+
+2008-08-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * domain.c (mono_domain_create): Call the JIT domain hook if installed.
+       (mono_domain_free): Ditto.
+
+       * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
+       be used by the JIT to store its domain-specific information, instead of putting
+       it directly into MonoDomain.
+
+       * domain.c (mono_install_create_domain_hook): New helper function to install
+       a hook which initializes domain->runtime_info.
+
+       * domain.c (mono_install_free_domain_hook): Ditto.
+       
+2008-08-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
+       asserting if the ares parameter is null.
+
+       * mono-perfcounters.c: Fix warnings.
+
+       * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
+       is not needed, don't check for interruptions either.
+       (mono_marshal_get_delegate_end_invoke): Ditto.
+
+2008-08-15  Marek Habersack  <mhabersack@novell.com>
+
+       * mono-perfcounters.c (predef_readonly_counter): added support for
+       reading the ASP.NET Requests Queued counter from another process.
+
+2008-08-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
+       MonoImage to simplify the AOT code.
+
+2008-08-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
+       marshalling. Fixes #416078.
+
+2008-08-08  Zoltan Varga  <vargaz@gmail.com>
+       
+       * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
+       it is set, looking up the icall address is deferred to the JIT, since 
+       in embedded scenarios, the icall might not be registered in the runtime
+       doing the AOT compilation. Backported from the 2.0 branch.
+
+2008-08-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
+       Fixes #415621.
+
+2008-08-05  Marek Habersack  <mhabersack@novell.com>
+
+       * Makefile.am: added support for cross-compilation.
+
+2008-08-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
+
+Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
+
+       * mono-perfcounters.c: jitted methods and jitted bytes counters.
+
+Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
+
+       * class-internals.h, icall-def.h, mono-perfcounters-def.h,
+       mono-perfcounters.c: performance counters implementation.
+
+2008-07-31  Zoltan Varga  <vargaz@gmail.com>
+
+       * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
+       to gpointer, letting the AOT code decide what to store in it.
+
+2008-07-31  Bill Holmes  <billholmes54@gmail.com>
+
+       * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
+         mono_class_setup_methods if the methods are not initialized.
+
+       Code is contributed under MIT/X11 license.
+
+2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Remove some debug code I commited by accident.
+
+       * verify.c (mono_method_is_valid_in_context): Change the return value
+       to make possible to distinguish between invalid and unverifiable.
+
+       * verify.c (verifier_load_method): Don't return NULL for unverifiable
+       methods.
+
+2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
+       constraints. Fixes regression in gtest-253.
+
+2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_verifier_verify_class): Don't allow generic types
+       with explicit layout.
+
+       * verify.c (mono_method_verify): Check locals and argument types.
+
+2008-07-29  Zoltan Varga  <vargaz@gmail.com>
+
+       * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
+       wait if the thread is in StopRequested state.
+
+       * class.c (mono_class_from_name): Refactor the module searching code into
+       a separate function so it can be reused in the AOT case too.
+
+2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (mono_type_is_valid_in_context): Improve the error message.
+       Check both the type and it's generic type definition for loader errors.
+       
+       * verify.c (mono_method_is_valid_in_context): Don't generate another
+       error when a type errors occur, this leads to the wrong exception been
+       thrown.
+
+2008-07-28  Dick Porter  <dick@ximian.com>
+
+       * icall-def.h
+       * process.c
+       (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
+       New internal calls to duplicate and close a process handle.
+
+2008-07-27  Andreas Färber  <andreas.faerber@web.de>
+
+       * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
+
+2008-07-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
+
+2008-07-27  Robert Jordan  <robertj@gmx.net>
+
+       * class.c (mono_class_init): Don't compute class.has_finalize for
+       valuetypes. Fixes #412477.
+
+2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c: Implement constraint equivalence checking.
+       This is required when a generic parameter is used as
+       argument to a constrained one.
+
+       Fixes #410637.
+
+2008-07-24  Zoltan Varga  <vargaz@gmail.com>
+
+       * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
+
+       * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
+
+       * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
+       synch with managed object layout.
+
+2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (do_branch_op): Handle valuetypes and generic
+       arguments properly.
+
+       * verify.c (do_cmp_op): Same.
+
+       Fixes #410383.
+
+2008-07-24  Mark Probst  <mark.probst@gmail.com>
+
+       * generic-sharing.c: Fix memory leaks.
+
+       * class.c, class-internals.h: Make
+       mono_class_inflate_generic_type_with_mempool() non-static.
+
+2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * pedump.c (dump_verify_info): Dump full class name.
+
+2008-07-24  Mark Probst  <mark.probst@gmail.com>
+
+       * generic-sharing.c: Removed some old code that didn't do anything.
+
+2008-07-24  Massimiliano Mantione  <massi@ximian.com>
+       * profiler.c: Added runtime_initialized_event,
+       mono_profiler_install_runtime_initialized and
+       mono_profiler_runtime_initialized. This new hook tells the profiler
+       when the runtime is sufficiently initialized to be able to call
+       mono_thread_attach on the root appdomain.
+       * profiler.h, profiler-private.h: Likewise.
+
+2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (do_cast): Do boxing for generic arguments as well.
+
+       * class.c (is_nesting_type): Drop generic instantiations before
+       checking for nesting.
+
+       * class.c (can_access_instantiation): Allow access to generic
+       arguments.
+
+2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * verify.c (verify_class_for_overlapping_reference_fields):
+       On some cases, the field size might be zero, guard against that.
+       Fix the explicit layout check to work as expected.
+
+2008-07-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
+       mono_thread_resume () during shutdown, since the thread we want to abort
+       might be suspended.
+
+2008-07-22  Zoltan Varga  <vargaz@gmail.com>
+
+       * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
+       warning.
+
+       * debug-mono-symfile.c: Fix a warning.
+
+       * mono-perfcounters.c (get_cpu_times): Fix a warning.
+
+       * object.c (mono_class_vtable): Check if exception_type is set, and return
+       NULL as defined by the function comments.
+
+2008-07-22  Mark Probst  <mark.probst@gmail.com>
+
+       * mempool.c: Use malloc for every single mempool allocation if the
+       configure option is set.  This makes it easier to track mempool
+       allocations with tools like Valgrind.
+
+2008-07-22  Jb Evain  <jbevain@novell.com>
+
+       * reflection.c (create_dynamic_mono_image): emit the same
+       metadata version that SL2 does when creating a SL2 image.
+
+2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * icall-def.h:
+       * icall.c: New icall System.Enum:get_hashcode. This function
+       avoids the overhead of boxing the enum to the underlying type.
+
+2008-07-21  Mark Probst  <mark.probst@gmail.com>
+
+       * reflection.c (mono_method_get_object): Don't let static RGCTX
+       invoke wrappers get into MonoReflectionMethods.
+
+2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object-internals.h:
+       * object.c: New mono_runtime_class_init_full function
+       that makes throwing the exception optinal.
+
+       * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
+       for the case where the exception object is supplied.
+
+2008-07-16  Kornél Pál  <kornelpal@gmail.com>
+
+       * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
+       old ld versions.
+
+       Contributed under MIT/X11 license.
+
+2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * string-icalls.c (ves_icall_System_String_InternalSplit):
+       Optimize array allocation by caching the MonoClass of the
+       array type.
+
+       * icall.c (ves_icall_Type_GetMethodsByName): Same.
+
+       * reflection.c (mono_param_get_objects): Same.
+
+2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * icall-def.h:
+       * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
+       It inflates the given type using the class context.
+
+2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * object.c (mono_class_try_get_vtable): New function. Tries to fetch
+       the vtable if it already exists.
+
+       * object-internals.h: Add mono_class_try_get_vtable as part of the
+       internal API.
+
+       * reflection.c (mono_type_get_object): Use the MonoObject from the
+       vtable when possible. Reduces locking contention on reflection heavy
+       code.
+
+2008-07-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
+       g_bit_nth_msf () since that macro is not implemented in eglib.
+
+2008-07-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
+       on platforms which do not support it.
+
+2008-07-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
+
+2008-07-11  Martin Baulig  <martin@ximian.com>
+
+       * mono-debug-debugger.h
+       (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
+
+       * mono-debug-debugger.c
+       (_mono_debugger_interruption_request): New global volatile variable.
+       (mono_debugger_check_interruption): New public function.
+
+       * threads.c
+       (mono_thread_current_check_pending_interrupt): Call
+       mono_debugger_check_interruption().
+       (mono_thread_interruption_checkpoint_request): Likewise.
+
 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * verify.c: Add more type checks for loaded types. Verify the result